Немогу начать :)

Тема в разделе "WASM.BEGINNERS", создана пользователем Semiono, 16 июн 2009.

  1. SWR

    SWR New Member

    Публикаций:
    0
    Регистрация:
    11 май 2006
    Сообщения:
    226
    Адрес:
    Russia
    забыли сказать еще кто стек чистит. (cdecl, stdcall)
     
  2. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    Да, еще одну неточность заметил. Подразумевалась, естественно, не таблица экспорта, а таблица импорта.
     
  3. Semiono

    Semiono New Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    752
    Самый лучший "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
    Я знаю статья есть про стабы минимальные, но пока не пробовал...
     
  4. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    Секций нужно плодить поменьше, тогда размер бинарника будет компактнее, хотя для реальных программ издержки на это все равно незначительны. Я обычно использую стаб размером 72 байта. При этом в формате PE хватает места на описание трех секций так чтобы заголовок не превышал в размере 512 байт. Кстати, для таблицы импорта нет необходимости отводить отдельную секцию, т.к. она описывается в экзешнике совершенно другой структурой.
     
  5. murder

    murder Member

    Публикаций:
    0
    Регистрация:
    3 июн 2007
    Сообщения:
    628
    В качестве стаба можно использовать пустой файл.
     
  6. Semiono

    Semiono New Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    752
    Стоит только указать фасму Format PE..., как он тут же привинтит что-то своё, несмотря на "on 'stub.bin'" - это и понятно так как мы явно заявляем формат. Если бы можно не указывать.
    Но я уже пытался ему скормить такое Format on 'stub.bin' Не хочет :)
    Парни, а патч как написать? :derisive:
    Типа из команд строки чтоб вытирало файл на размер стаба и писало туда файл-стаб?
    # patch.exe c:\c0h.bin > C:\MyProg.exe
    Или такое есть уже? Я даже припоминаю Phantom-87 утилитой дебуг что-то умудрялся в сектор диска записать? )
    Влом как-то открывать WinHex и копировать визуально!
    ?
     
  7. Semiono

    Semiono New Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    752
    Я на самом деле проверял, даже когда указывал on 'stub.bin' всякие альтернативные,
    посли сборки визуально там какой-то изменённый заголовок, не тот что было в файле,
    хотя может быть и не тот что классик? Так что непонятно.

    murder, как это? Вообще без стаба, а как оно будет тогда в винде работать?
     
  8. Semiono

    Semiono New Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    752
    Моя фишка зато рулит :)
    Я вообще Format не использую, и получается ещё меньше )))
     
  9. murder

    murder Member

    Публикаций:
    0
    Регистрация:
    3 июн 2007
    Сообщения:
    628
    пот теме минимального стаба - http://www.wasm.ru/article.php?article=1005005

    и цитата от туда же
    То есть проблемы с запуском будут в DOS`е. Но это не важно т.к. программа всё равно написана под Windows.
     
  10. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    Не понял, у тебя что ли не получается в директиве format прописать стаб?
    Так и напиши. Только правильно будет прочитать новый стаб из одного файла и записать его поверх старого стаба в другой.

    P.S. Semiono, мой ник Phantom-84.
     
  11. Semiono

    Semiono New Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    752
    Изменения были, то-есть в файле был непохожий код, толи модифицыровный толи вообще другой.
    Ну я на глаз прикинул...
    Больше этого не повториться :)
     
  12. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    По идее изменения могут появиться в заголовке MZ (т.е. у самого стаба), чтобы туда вместить признак PE, а точнее смещение, определяющее начало PE-заголовка в файле. Сам код (т.е. программный образ) измениться не должен. Кстати по этой причине произвольный стаб может и не подойти.