Да, еще одну неточность заметил. Подразумевалась, естественно, не таблица экспорта, а таблица импорта.
Самый лучший "man", что я случайно набрёл вообще. Очень скупо, но всё поделу, прямо шпаргалка по фасму любому новичку! forum.antichat.ru/thread80832.html Правда я стаб оттуда прикрутил и у меня вместо 1,50 KB (1 536 bytes) стало 2,00 KB (2 048 bytes) 8-) Мой код -> wasm.ru/forum/viewtopic.php?id=30803#12 Я знаю статья есть про стабы минимальные, но пока не пробовал...
Секций нужно плодить поменьше, тогда размер бинарника будет компактнее, хотя для реальных программ издержки на это все равно незначительны. Я обычно использую стаб размером 72 байта. При этом в формате PE хватает места на описание трех секций так чтобы заголовок не превышал в размере 512 байт. Кстати, для таблицы импорта нет необходимости отводить отдельную секцию, т.к. она описывается в экзешнике совершенно другой структурой.
Стоит только указать фасму Format PE..., как он тут же привинтит что-то своё, несмотря на "on 'stub.bin'" - это и понятно так как мы явно заявляем формат. Если бы можно не указывать. Но я уже пытался ему скормить такое Format on 'stub.bin' Не хочет Парни, а патч как написать? Типа из команд строки чтоб вытирало файл на размер стаба и писало туда файл-стаб? # patch.exe c:\c0h.bin > C:\MyProg.exe Или такое есть уже? Я даже припоминаю Phantom-87 утилитой дебуг что-то умудрялся в сектор диска записать? ) Влом как-то открывать WinHex и копировать визуально! ?
Я на самом деле проверял, даже когда указывал on 'stub.bin' всякие альтернативные, посли сборки визуально там какой-то изменённый заголовок, не тот что было в файле, хотя может быть и не тот что классик? Так что непонятно. murder, как это? Вообще без стаба, а как оно будет тогда в винде работать?
пот теме минимального стаба - http://www.wasm.ru/article.php?article=1005005 и цитата от туда же То есть проблемы с запуском будут в DOS`е. Но это не важно т.к. программа всё равно написана под Windows.
Не понял, у тебя что ли не получается в директиве format прописать стаб? Так и напиши. Только правильно будет прочитать новый стаб из одного файла и записать его поверх старого стаба в другой. P.S. Semiono, мой ник Phantom-84.
Изменения были, то-есть в файле был непохожий код, толи модифицыровный толи вообще другой. Ну я на глаз прикинул... Больше этого не повториться
По идее изменения могут появиться в заголовке MZ (т.е. у самого стаба), чтобы туда вместить признак PE, а точнее смещение, определяющее начало PE-заголовка в файле. Сам код (т.е. программный образ) измениться не должен. Кстати по этой причине произвольный стаб может и не подойти.