Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
20 / 20 / 11
Регистрация: 12.07.2015
Сообщений: 350
1

Вывести "начинку" EXE как в hex редакторе

24.11.2015, 19:26. Показов 319. Ответов 0
Метки нет (Все метки)

Нужно вывести EXE как в hex редакторе, используя для записи переменные типа string. Можно даже просто одной строкой выводить все байты. Код, выводящий байты потоком есть, на форуме подсказали. Но сколько я ни пытался менять, не выходит изменить на string так, чтобы работало. Код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include<iomanip>
using namespace std;
 
int main(int argc, char ** argv)
{
    //открываем бинарный файл
    std::ifstream ifs("C:\\WarThunder\\launcher.exe", std::ios::binary);
 
    //формируем буфер из 512 байт
    PBYTE buf = new BYTE[512];
 
    //читаем 512 байт в буфер
    ifs.read((char*)buf, 512);
    
    //заливка нулями (чтобы было 01, а не 1)
    std::cout.fill('0');
 
    //отступ для выравнивания таблицы
    std::cout << "     ";
 
    //шапка с номерами байт
    for (int i = 0; i < 16; i++)
        //вывод в 16м формате, прописными символами, шириной мин 2 символа (остальное заливается 0 (см. выше)
        std::cout << "  " << std::hex << std::setw(2) << std::uppercase << i;
 
    //отступ
    std::cout << '\n' << std::endl;
 
    //выводим по 16 байт на строку
    for (int i = 0; i < 512; i += 16)
    {
        //номер строки
        std::cout << std::hex << std::setw(3) << std::uppercase << i << "  ";
        for (int c = 0; c < 16; c++)
        {
            //вывод потока байт в 16м формате, прописными символами, шириной мин 2 символа (остальное заливается 0 (см. выше)
            std::cout << "  " << std::hex << std::setw(2) << std::uppercase << (int)buf[i + c];
        }
        std::cout << std::endl;
    }
 
    delete[] buf;
    system("pause");
    ifs.close();
}
Добавлено через 1 час 5 минут
Пытался делать через ostringstream, но не выходило, выдавал неверные числа
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.11.2015, 19:26
Ответы с готовыми решениями:

Необработанное исключение в "0x775e15de" в "laba3.exe": 0xC0000005: Нарушение прав доступа при чтении "0xfdfdfdf9".
вылезает ошибка Необработанное исключение в &quot;0x775e15de&quot; в &quot;laba3.exe&quot;: 0xC0000005: Нарушение прав...

Необработанное исключение в "0x01082855" в "sort.exe": 0xC0000005: Нарушение прав доступа при записи "0xcccccccc"
Всем привет! помогите мне понять в чём дело. написал программу: #include &quot;stdafx.h&quot; #include...

Необработанное исключение в "0x00414558" в "467.exe": 0xC0000005: Нарушение прав доступа при чтении "0xabababbb"
При выполнении этого кода #include &lt;iostream&gt; #include&lt;conio.h&gt; using namespace std; int...

Необработанное исключение в "0x778e15de" в "dir-3.exe": 0xC0000005: Нарушение прав доступа при чтении "0x00000000"
#include &lt;windows.h&gt; #include &lt;d3d9.h&gt; LRESULT __stdcall WndProc(HWND hWnd, UINT msg, WPARAM...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.11.2015, 19:26

Необработанное исключение в "0x013f2b22" в "123.exe": 0xC0000005: Нарушение прав доступа при записи "0xfdfdfdfd"
Вот функция для удаления столбца: #pragma once #include &lt;iostream&gt; using namespace std; int...

Необработанное исключение в "0x00412b4a" в "kursovik.exe": 0xC0000005: Нарушение прав доступа при чтении "0x00000004".
Программа компилируется нормально но потом на строчке MoveToEx(hdc,Mas.a]-&gt;x*20,Mas.a]-&gt;y*20,0);...

Необработанное исключение в "0x0fc1d484 (msvcr100d.dll)" в "1.exe": 0xC0000005: Нарушение прав доступа при чтении "0x00aee0af"
помогите разобраться в чем ошибка? необходимо, чтобы ввод массива осуществлялся с клавиатуры...

Необработанное исключение в "0x76f015de" в "контрольная 1 задача 2.exe": 0xC0000005: Нарушение прав доступа при чтении "0x334e2c64"
доброго времени суток. Необработанное исключение в &quot;0x76f015de&quot; в &quot;контрольная 1 задача 2.exe&quot;:...


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

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

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