Существует ли возможность создания простого патча .exe файла

Тема в разделе "WASM.BEGINNERS", создана пользователем booma, 19 авг 2006.

  1. booma

    booma New Member

    Публикаций:
    0
    Регистрация:
    19 авг 2006
    Сообщения:
    2
    Существует ли возможность создания простого патча .exe файла желательно любого, к примеру есть некоторая программа (и не важно какой у неё заголовок) поставить jmp куда нить на самый конец программы а там приписать инструкции по вызову messageBox с нужным текстом (т.е не трогая и не позволяя выполниться основной программе) ?
     
  2. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.347
    да
     
  3. booma

    booma New Member

    Публикаций:
    0
    Регистрация:
    19 авг 2006
    Сообщения:
    2
    это уже радует:) можно будет пробовать...
    а как хоть это будет выглядеть...?
     
  4. asmfan

    asmfan New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2006
    Сообщения:
    1.004
    Адрес:
    Abaddon
  5. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.347
    1. Добавление новой секции
    2. Запись кода в эту секцию
    3. Изменение AddressOfEntryPoint на новый код
     
  6. PaCHER

    PaCHER New Member

    Публикаций:
    0
    Регистрация:
    25 мар 2006
    Сообщения:
    852
    Необязательно добавлять секцию. Достаточно увеличить последнюю секцию (увеличить в хидере последней секции RawSize VirtualSize, а потом дописать в конец секции количество 0 на которое учеличил хидер)
     
  7. SiruS

    SiruS Алекс

    Публикаций:
    0
    Регистрация:
    19 фев 2005
    Сообщения:
    145
    Адрес:
    Львов
    PaCHER

    А как это реализовать? Последовательность действий приведи пожалуйста.
     
  8. SnugForce

    SnugForce New Member

    Публикаций:
    0
    Регистрация:
    2 май 2005
    Сообщения:
    373
    Адрес:
    Из домУ
    PE формат. В целом последовательность получения из образа exe идет так:
    IMAGE_DOS_HEADER ->
    IMAGE_NT_HEADERS ->
    AR_IMAGE_SECTION_HEADER: array of _IMAGE_SECTION_HEADER; перебираешь этот массив точнее ищешь последную секцию и меняешь. В полях структуры все смещения указанны...