Форум программистов, компьютерный форум CyberForum.ru

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

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

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

27.03.2014, 20:21. Просмотров 248. Ответов 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 и вывести их в десятеричной системе
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2014, 20:21     Чтение исполняемого PE файла
Посмотрите здесь:

версия исполняемого файла C++
Исходный код исполняемого файла C++... C++
Подключения заголовочного и исполняемого файла C++
C++ Как побайтно считать информацию из исполняемого файла
C++ Как изменить иконку исполняемого файла
C++ Система обновления софта. Как обновить главный исполняемый модуль без дополнительного исполняемого файла?
C++ Ошибка при запуске исполняемого файла
Чтение файла с несколькими знаками конца файла C++
C++ Размер исполняемого файла при статической и динамической линковке
Поиск файлов, относительно исполняемого файла программы C++
C++ Запуск исполняемого файла
Как узнать директорию расположения исполняемого файла? C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Wlk
49 / 49 / 13
Регистрация: 07.12.2011
Сообщений: 133
27.03.2014, 20:47     Чтение исполняемого PE файла #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
int num = (i_byte[0] << 8) + i_byte[1];
 
        cout << dec << num << endl;
Root_user
0 / 0 / 0
Регистрация: 03.07.2013
Сообщений: 56
27.03.2014, 21:00  [ТС]     Чтение исполняемого PE файла #3
Спасибо тебе огромное заработало только не совсем понял что это означает (i_byte[0] << 8)
Wlk
49 / 49 / 13
Регистрация: 07.12.2011
Сообщений: 133
27.03.2014, 21:09     Чтение исполняемого PE файла #4
Это побитовый сдвиг на 8 битов влево.
Yandex
Объявления
27.03.2014, 21:09     Чтение исполняемого PE файла
Ответ Создать тему
Опции темы

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