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

Чтение машинного кода exe файла - C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 39, средняя оценка - 4.97
qvazar
1 / 1 / 0
Регистрация: 08.12.2010
Сообщений: 37
18.05.2014, 20:21     Чтение машинного кода exe файла #1
Я пытаюсь прочитать машинный код своего консольного Win32 приложения, написанного в MS Visual Studio:

C++
1
2
3
4
5
6
ifstream exeFile(filename, ios::in | ios::binary);
string line;
while (getline(exeFile, line))
{
...
}
Часть прочитанных строк являются осмысленными, но большая часть - мусор, среди которого, как я понимаю, должен быть и машинный код программы. Как правильно прочитать exe файл, чтобы получить из него машинный код?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2014, 20:21     Чтение машинного кода exe файла
Посмотрите здесь:

C++ Вставка кода в exe-ый файл
Чтение из файла. Повторное чтение файла C++
C++ Чтение файла exe на другом компьютере, где нет Visual
C++ Выявление кода .exe приложения
C++ Чтение бинарного кода из файла
Преобразование текстового файла в двоичный и чтение исходных данных из двоичного файла. C++
Загрузка исходного кода и компиляция *.exe C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TrueBit
 Аватар для TrueBit
95 / 95 / 12
Регистрация: 19.11.2012
Сообщений: 195
18.05.2014, 20:35     Чтение машинного кода exe файла #2
Откройте программу обычным блокнотом. Это и будет её машинный код представленный последовательностью печатных ASCII символов. Другое дело, что такое невозможно просто так прочитать и осмыслить. И нужно интерпретировать эту последовательность бит файла другим образом. В начале исполняемых файлов Windows идет структура PE, содержащая всю необходимую информацию и смещения для запуска программы, в Linux свой формат этой структуры - ELF. В любом случае это обширная тема, касающаяся дизассемблеров и кодов машинных команд, и нужно начать с этого. Еще очень желательно хорошо знать язык ассемблера.
paata1963
0 / 0 / 0
Регистрация: 16.07.2013
Сообщений: 51
03.09.2014, 13:23     Чтение машинного кода exe файла #3
Я попыталься сделать так, как тут указано. Однако, если щелкнуть правой мышкой на екзешник, то там не появляется пункт open with, а только - run as. И это не дает результат. Попробовал то же самое на йсходник, но там выдает код в том виде как я написал( т.е. По символике с++). Может я что то не понял?
КОП
348 / 280 / 86
Регистрация: 15.08.2010
Сообщений: 758
03.09.2014, 13:58     Чтение машинного кода exe файла #4
paata1963, говорят hex редакторы помогают. Открывать ехе можно из самого редактора кнопкой открыть файл. Или убрать разрешение ехе, тогда по даблклику появится окно выбора программы.
paata1963
0 / 0 / 0
Регистрация: 16.07.2013
Сообщений: 51
03.09.2014, 14:17     Чтение машинного кода exe файла #5
За это, спасибо, розумеется. Но чисто человеческим языком сказать лучше, что я хочу узнать. Вот есть какая та программа и мне надо посмотреть его код, и не только посмотреть но что то изменить в нем. Ну к примеру не нравиться мне мой paint или что то другое. Никак не могу добраться до исполняемого файла. Даже самым написанный екзешник не могу посмотреть. Есть конечно исходник, но если программу перенести на другой компьютер, там же не будет исходника. И если тот человек захочет посмотреть, как он должен поступить без всяких hex редакторов. Лежит же все таки где то в памяти это единство единиц и нолей. Наверное это у меня потому пройсходит, что не до конца довел изучение ассемблера.

Добавлено через 3 минуты
И еще; когда я щелкну " открыть файл: просто запускается программа.
DrOffset
6795 / 4006 / 920
Регистрация: 30.01.2014
Сообщений: 6,830
03.09.2014, 14:27     Чтение машинного кода exe файла #6
Цитата Сообщение от paata1963 Посмотреть сообщение
Даже самым написанный екзешник не могу посмотреть.
А вот это "не могу посмотреть" как выражается? Что ты хочешь увидеть, набор нулей и единиц?
paata1963
0 / 0 / 0
Регистрация: 16.07.2013
Сообщений: 51
03.09.2014, 14:32     Чтение машинного кода exe файла #7
Ну в первую очередь, хоть каким то образом добраться до кода программы, не имеет значение; будет это бинарник, некс или пусть даже с++. Допустим, скачал какую то программу и хочу посмотрет и исправлять.
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5534 / 2568 / 234
Регистрация: 01.11.2011
Сообщений: 6,346
Завершенные тесты: 1
03.09.2014, 14:57     Чтение машинного кода exe файла #8
Цитата Сообщение от paata1963 Посмотреть сообщение
Однако, если щелкнуть правой мышкой на екзешник, то там не появляется пункт open with, а только - run a
Выход есть - используйте технологию drug and drop. Откройте блокнот, не на столе, а на обычном компьютере, и перетащите туда exe-файл.
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4248 / 2780 / 219
Регистрация: 12.12.2009
Сообщений: 7,109
Записей в блоге: 1
Завершенные тесты: 1
03.09.2014, 15:04     Чтение машинного кода exe файла #9
Я для таких целей IDA Pro использую, удобно.

Не по теме:

Цитата Сообщение от SatanaXIII Посмотреть сообщение
Выход есть - используйте технологию drug and drop. Откройте блокнот, не на столе, а на обычном компьютере, и перетащите туда exe-файл.
MacOS way

DrOffset
6795 / 4006 / 920
Регистрация: 30.01.2014
Сообщений: 6,830
03.09.2014, 15:11     Чтение машинного кода exe файла #10
Цитата Сообщение от paata1963 Посмотреть сообщение
пусть даже с++
C++ в общем случае нельзя получить. Декомпиляторы бывают, но чаще всего они гегенируют С-код с множеством ассемблерных вставок. Т.е. это весьма условная декомпиляция, и это явно совсем не то, что было изначально

Цитата Сообщение от paata1963 Посмотреть сообщение
Допустим, скачал какую то программу и хочу посмотрет и исправлять.
HEX-редактор.
Дизассемблер.
krv
72 / 52 / 11
Регистрация: 10.07.2014
Сообщений: 328
03.09.2014, 15:15     Чтение машинного кода exe файла #11
Выше уже написали.
Exe файл глазами (в обычном текстовом, символьном редакторе) не прочтешь.
Это код программы.
Получение исходника из кода называется дизассемблированием. И то потом полученный ассемблерный код назад скомпилировать не всегда получается
А уж получить исходный код на языке более высокого уровня (типа С++)....
Эх.
ValeryS
Модератор
6413 / 4879 / 448
Регистрация: 14.02.2011
Сообщений: 16,182
03.09.2014, 15:17     Чтение машинного кода exe файла #12
Цитата Сообщение от paata1963 Посмотреть сообщение
Вот есть какая та программа и мне надо посмотреть его код, и не только посмотреть но что то изменить в нем. Ну к примеру не нравиться мне мой paint или что то другое. Никак не могу добраться до исполняемого файла.
Для начала прочитай что нибудь
например К. Касперски
"Искусство дизасемблирования"
"Техника отладки программ без исходных кодов"
"Фундаментальные основы хакерства"
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4248 / 2780 / 219
Регистрация: 12.12.2009
Сообщений: 7,109
Записей в блоге: 1
Завершенные тесты: 1
03.09.2014, 15:19     Чтение машинного кода exe файла #13
Цитата Сообщение от ValeryS Посмотреть сообщение
например К. Касперски
Помнится у него еще была статья, что-то типа "дизассемблируем в уме", полезное чтиво.
ValeryS
Модератор
6413 / 4879 / 448
Регистрация: 14.02.2011
Сообщений: 16,182
03.09.2014, 15:27     Чтение машинного кода exe файла #14
Цитата Сообщение от Kastaneda Посмотреть сообщение
Помнится у него еще была статья,
Да у него куча статей была в "Хакере" да и книг немеряно
Но недостаток из книги в книгу кочуют целые главы, открываешь и понимаешь это уже читал
кстати нигде не могу скачать/купить книгу про ИДА (не помню как точно называется)
все что видел в интернете, все черновики, без правки да и только первая часть
в какой то книге, описывал как он ломал компилятор Харона(разумеется с разрешения)
во где ловушек было
paata1963
0 / 0 / 0
Регистрация: 16.07.2013
Сообщений: 51
03.09.2014, 15:36     Чтение машинного кода exe файла #15
В с++ это я гиперболически сказал, образно. Я знаю, что код можно получить максимум в h формате

Добавлено через 5 минут
Касперского я читал. И дезасамблировать нет никаких проблем. А то зачем мне исполняемый файл , если не смогу разабрать что там. Но там ничего нет про то что я спрашиваю.

Добавлено через 2 минуты
Все таки, никто не хочет ответить именно на вопрос и сказать просто: зайди вот здесь и щелкни вот здесь. или как то так
ValeryS
Модератор
6413 / 4879 / 448
Регистрация: 14.02.2011
Сообщений: 16,182
03.09.2014, 15:40     Чтение машинного кода exe файла #16
Цитата Сообщение от paata1963 Посмотреть сообщение
И дезасамблировать нет никаких проблем.
как это стыкуется с этим
Цитата Сообщение от paata1963 Посмотреть сообщение
если не смогу разабрать что там.
в исполняемом файле лежит все что нужно для исполнения программы
Цитата Сообщение от paata1963 Посмотреть сообщение
Касперского я читал
что ты читал?
Евгений Касперский это автор антивируса
а Крис Касперски это хакер
разные люди

Добавлено через 2 минуты
Цитата Сообщение от paata1963 Посмотреть сообщение
Все таки, никто не хочет ответить именно на вопрос и сказать просто: зайди вот здесь и щелкни вот здесь. или как то так
Наверно потому что нет такого простого пути
paata1963
0 / 0 / 0
Регистрация: 16.07.2013
Сообщений: 51
03.09.2014, 15:48     Чтение машинного кода exe файла #17
Я говорил про крисс касперски. А смысл того предложения я могу розяснить; если бы а не мог разбираться с дезассамблированием, то какой же смысл мне было смотреть на код исполняемого файла. Не любоваться же?
Пожалуйста не надо стараться ставить меня в роли оправдываюшегося, если знаете - ответ е по вопроссу, если нет - прекратим эту бесполезную дискуссию, кто что должен прочитать. Надеюсь, понятен смысл этого условного опператора.
DrOffset
6795 / 4006 / 920
Регистрация: 30.01.2014
Сообщений: 6,830
03.09.2014, 15:54     Чтение машинного кода exe файла #18
Цитата Сообщение от paata1963 Посмотреть сообщение
никто не хочет ответить именно на вопрос и сказать просто: зайди вот здесь и щелкни вот здесь.
Зайди здесь , скачай, открой нужный файл, посмотри. Или это опять не то?
gazlan
3089 / 1864 / 278
Регистрация: 27.08.2010
Сообщений: 5,023
Записей в блоге: 1
03.09.2014, 18:39     Чтение машинного кода exe файла #19
Цитата Сообщение от qvazar Посмотреть сообщение
Как правильно прочитать exe файл
Установить FAR
Найти файл в каталоге и установить на него курсор
Нажать Ctrl-PgDn
Машинный код будет в секции .text (для MSVC)

Для редактирования лучше всего использовать Hiew, на любителя - отладчики и/или IDA.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.09.2014, 19:04     Чтение машинного кода exe файла
Еще ссылки по теме:

Чтение кода в библиотеках C++
C++ Создание .exe файла из hex кода
Удаление лишнего кода из EXE файла C++
Некорректное чтение исходного кода C++
Переделать в коде чтение из файла в чтение с клавиатуры C++

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

Или воспользуйтесь поиском по форуму:
WhiteP
606 / 204 / 23
Регистрация: 20.11.2012
Сообщений: 425
03.09.2014, 19:04     Чтение машинного кода exe файла #20
В студии можно сказать компилятору генерировать файл листинга с асмовыми командами, машинными кодами и т.д. После сборки проекта в папке проекта будет файл с расширением cod, который можно открыть самой студией и смотреть на здоровье.
Миниатюры
Чтение машинного кода exe файла   Чтение машинного кода exe файла   Чтение машинного кода exe файла  

Yandex
Объявления
03.09.2014, 19:04     Чтение машинного кода exe файла
Ответ Создать тему
Опции темы

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