Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Root_user
0 / 0 / 0
Регистрация: 03.07.2013
Сообщений: 56
#1

Чтение исполняемого PE файла - C++

27.03.2014, 20:21. Просмотров 293. Ответов 3
Метки нет (Все метки)

Здравствуйте программисты. Недавно увлекся исследованием PE файлов и решил написать небольшую программку для чтения из них

Проблема вот в чем: например когда я пытаюсь считать смещение PE заголовка

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void main()
{
    setlocale(0,"");
    int i_byte[2];
    int res = 0;
 
    ifstream file("sw.dll",ios::binary);
    file.seekg(60);
    i_byte[0] = file.get();
    i_byte[1] = file.get();
 
    swap(i_byte[0],i_byte[1]);
 
 
 
    cout <<hex<<"Смещение PE равно "<<i_byte[0]<<i_byte[1]<<endl;
 
    system("pause");
 
}
Этот код выводит правильный результат но если убрать "hex" то результат не будет верным поскольку в шестнадцатеричной системе после считывания они имеют значения

i_byte[0] - 0x30
i_byte[1] - 0x1

а в десятеричной

i_byte[0] - 48
i_byte[1] - 1

Тоесть выведет 148 что не является верным

Вобщем цель считать два байта по смещению 60 и вывести их в десятеричной системе
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2014, 20:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Чтение исполняемого PE файла (C++):

версия исполняемого файла - C++
В большенстве файлов *.exe в свойствах имеется вкладка &quot;Версия&quot; в которой Имена элементов &quot;Версия продукта&quot;, &quot;Версия файла&quot;, &quot;Внутреннее...

Запуск исполняемого файла - C++
Как запустить исполняемый exe файл с параметрами в командной строке чтобы исполняемый файл отрабатывал по пути указанному в командной строке

Размер исполняемого файла - C++
почему при не особо больших изменениях размер ИФ не увеличивается и не уменьшается?

Исходный код исполняемого файла C++... - C++
Искал в инете декомпилятор, нашёл OLLYDBG, но ничего, похожего на исходный код он мне не выдал... Помогите плиз вытащить исходник из...

Подключения заголовочного и исполняемого файла - C++
Есть 3 файла: Main.cpp: #include &lt;iostream&gt; using namespace std; #include &quot;example.h&quot; int main() { example&lt;int&gt; *A =...

Как изменить иконку исполняемого файла - C++
Добрый день. Написал игру маленькую, консольную. Решил послать её другу. Но у экзешника не красивая иконка. Долго ползал на форуме...

3
Wlk
49 / 49 / 13
Регистрация: 07.12.2011
Сообщений: 133
27.03.2014, 20:47 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
int num = (i_byte[0] << 8) + i_byte[1];
 
        cout << dec << num << endl;
1
Root_user
0 / 0 / 0
Регистрация: 03.07.2013
Сообщений: 56
27.03.2014, 21:00  [ТС] #3
Спасибо тебе огромное заработало только не совсем понял что это означает (i_byte[0] << 8)
0
Wlk
49 / 49 / 13
Регистрация: 07.12.2011
Сообщений: 133
27.03.2014, 21:09 #4
Это побитовый сдвиг на 8 битов влево.
1
27.03.2014, 21:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.03.2014, 21:09
Привет! Вот еще темы с ответами:

Ошибка при запуске исполняемого файла - C++
Требование к разработке: Разработать программы для генерации и проверки подписей по ГОСТ Р34.10-94. Рекомендуемые значения общих открытых...

Как побайтно считать информацию из исполняемого файла - C++
вы не смотрите на убогий код, который не юзает стринг, потому что я тогда еще не знал про стринг итак, мое задание - считать бинарник...

Поиск файлов, относительно исполняемого файла программы - C++
я новичок в программировании. да и плохо владею английским. потому здесь мой последний шанс. делаю игру через SFML и использую Tiled для...

Как узнать директорию расположения исполняемого файла? - C++
Мне нужна именно папка расположения исполняемого файла, без имени файла. GetCurrentDirectory выдает не верный путь. Хотелось бы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru