; org <baseaddr> if needs
; use32 if needs
jmp $
db "чистый кусок кода в файле. Зы)", 0
Точка входа в программу
Если программа начинает выполнение не с первого байта, то как процессор определяет точку входа и смещение. Может метка где записана? Например дизассемблер выдаёт точку входа по адресу 0040116С, а этот же код в файле лежит по адресу 0000116C. Какая информация обычно хранится в интервале (1-EP). Почему смещение 00400000 и программа не начинается с 1?
За ссылочку на литературу буду благодарен
Далеко не любой. Только файла com - формата состоят исключительно из куска кода. Ехешники венды например включают в себя (упрощённо) заголовок, таблицу секций, собственно секции кода и данных, таблицу импорта и ресурсы.
По описанию PE - например эта статья http://www.wasm.ru/article.php?article=1002001
Также рекомендую goooogle по фразе -> <название желаемого формата> формат
00400000 это стандарт. Перед ней расположен стек. Хотя почти все можно поменять, но там тогда будут свои заморочки.
Цитата: Pavia
MSDN читай. Описание формата исполняемых файлов.
00400000 это стандарт. Перед ней расположен стек. Хотя почти все можно поменять, но там тогда будут свои заморочки.
00400000 это стандарт. Перед ней расположен стек. Хотя почти все можно поменять, но там тогда будут свои заморочки.
Это ImageBase, наверно. Там вообще может не быть исполняемого кода, а точка входа (EntryPoint) распологается где угодно (в пешках, тобишь в PE, по крайней мере). Кстати у компилятора что есть в Borland Delphi точка входа всегда почти в конце кодовой секции, которая у них называется .code (у компилеров Microsoft она называется .text, и ImageBase у них разный, кстати), за которой следует код инициализации, вызовы пользовательских алгоритмов через CALL (которые располагаются в середине) и код завершения (если файлик протом каким нить не подточили или вирус его не схавал).
Цитата: Vov4ick
Любой исполняемый файл - это последовательность команд
Далеко не любой. Только файла com - формата состоят исключительно из куска кода. Ехешники венды например включают в себя (упрощённо) заголовок, таблицу секций, собственно секции кода и данных, таблицу импорта и ресурсы.
По описанию PE - например эта статья http://www.wasm.ru/article.php?article=1002001
Также рекомендую goooogle по фразе -> <название желаемого формата> формат
Далеко не любой. Только файла com - формата состоят исключительно из куска кода. Ехешники венды например включают в себя (упрощённо) заголовок, таблицу секций, собственно секции кода и данных, таблицу импорта и ресурсы.
По описанию PE - например эта статья http://www.wasm.ru/article.php?article=1002001
Также рекомендую goooogle по фразе -> <название желаемого формата> формат
Вот спасиба! А я дурак ломал голову о том как получь чистый кусок кода в файле :D
Код: