Как лучьше внести изменения в EXEшник?!

Тема в разделе "WASM.WIN32", создана пользователем DimaS, 12 сен 2004.

  1. DimaS

    DimaS New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2004
    Сообщения:
    17
    Прочитал несколько статей по работе дизассемблер(ов) и разочаровался:dntknw:



    Пишут следующее:

    "Что касается дизассемблирования вообще, то тут четко необходимо уяснить для себя одну вещь: вследствие того, что ассемблирование - это однонаправленный процесс с потерями, автоматическое восстановление исходного текста невозможно"



    Понял так, что при "exe"->"исходник"->"exe" нет гарантий что прога будет работать корректно. Так ли это?!



    Так же попалась информация о возможности добавить в файл ОпКод, что то типа вируса.

    Как это сделать посредством редактора?

    Обьясните по шагам ПЛИZZZZZZZZ!

    Есть вероятность, что AV выкинит такой код при проверке?
     
  2. DimaS

    DimaS New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2004
    Сообщения:
    17
    Уточню задачу. Нужно добавить в программу несколько команд(вызов подпрограммы и выход по условию).
     
  3. Funbit

    Funbit Member

    Публикаций:
    0
    Регистрация:
    13 апр 2003
    Сообщения:
    92
    Адрес:
    Russia
    Понял так, что при "exe"->"исходник"->"exe" нет гарантий что прога будет работать корректно. Так ли это?!

    какой исходник ты имеешь в виду то ?

    тот, который получишь в результате дизассемблирования ?

    т.е. ассемблерный листинг .exe файла ?

    ну, тот же самый .ехе ты уже никогда, конечно же, не получишь, да и вообще, столько придется подгонять, чтобы все скомпилировалось допустим в том же MASMе.. неделя работы для какого-нибудь блокнота :)

    и зачем тебе это вообще ? хочешь добавить что-нибудь в

    уже существующую программу ? тогда придется разбираться

    с ассемблером и дописывать на ассемблере. по другому никак.

    чуть легче - можно подцепить дллку к этому .exeшнику, написанную на любом языке, и каким-нибудь образом организовать процесс её взаимодействия с .ехе файлом...



    Так же попалась информация о возможности добавить в файл ОпКод, что то типа вируса.

    можешь добавить. только куда и какой?



    Как это сделать посредством редактора?

    открой программу в любом бинарном редакторе файлов и добавь/измени нужный байт. удобнее в hiew.



    Обьясните по шагам ПЛИZZZZZZZZ!

    по-моему ты слишком широко поставил вопрос. какая у тебя цель то ?
     
  4. DimaS

    DimaS New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2004
    Сообщения:
    17
    2Funbit

    Под исходником подразумевался ассемблерный листинг.



    Цель я указал канкретно! Если конкретней: надо привязать прогу(исходники ёхтер:) к железу.



    Вопросов для одного топика много, NR новечек в этом. Я сюда и обратился в надежде, что гуру поможАт!



    А что ты имееш в виду "придется разбираться

    с ассемблером и дописывать на ассемблере"
    , поясни подробней куда и как дописывать!

    С асМоМ чуть чуть дружу, EXEшник учусь модифицировать, задачка 8)
     
  5. Funbit

    Funbit Member

    Публикаций:
    0
    Регистрация:
    13 апр 2003
    Сообщения:
    92
    Адрес:
    Russia
    цель ты указал во втором ответе, а я начал писать еще до его появления :)



    перед тем, как давать рекомендации, хотелось бы узнать, какого уровня защиту ты хочешь сделать? т.к. любую защиту можно сломать, какую степень сложности ты хочешь ? от обычных юзеров, или от всех, даже от крякеров ?



    может быть лучше воспользоваться готовыми навесными средставми и не парить мозги ? или ты именно сам хочешь эту защиту написать ?



    p.s> с этим английским.. уже разучился формулировать русские предложения =\
     
  6. DimaS

    DimaS New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2004
    Сообщения:
    17
    Ненадо мне сложной защиты, достаточно защиты от простых юзверей!

    Хочю "просто"(мне не просто:dntknw:, чтоб при несоответствии сарий ника HDD(непример) был переход на точку выхода из программы.

    Серийник получать уже могу, пытаюсь добавить сие в прогу.

    А какие "готовые навесные средстава" есть??!!!!!

    Очень интересно!!!! Де их можно взять, хоть кусочек исходника глянуть?????

    Чето поиск не дает ниче :dntknw:(((((



    ЗЫ

    Конечно хотелось бы и самому написать, но щАс надо хоть какнитЬ сделатЬ!
     
  7. Funbit

    Funbit Member

    Публикаций:
    0
    Регистрация:
    13 апр 2003
    Сообщения:
    92
    Адрес:
    Russia
    ну если для простых, тогда тебе лучше будет

    написать DLLку, в которой организуешь проверку

    HDD iD, если iD плохой - сделаешь прямо там ExitProcess...

    проверку можешь вставить в какую-нибудь эскпортируемую ф-цию,

    а потом где-нибудь около EP .ехешника сделать прыжок на

    эту ф-цию. (на адрес в импорте).



    как дллку подцепить?

    подцепить можно вручную, можно с помощью тулзы,

    для примера LordPE или StudPE.



    более подробно сейчас написать пока не могу, уходить надо. может кто еще другой поможет :)
     
  8. n0p

    n0p 10010000b

    Публикаций:
    0
    Регистрация:
    7 май 2003
    Сообщения:
    256
    Адрес:
    Новосиbeerск
    Значит так.

    Необходимо написать и скомпилить нужный код. Там должно высчитываться дельта-смещение и должна присутствовать корректировка адресов. Завершаться этот код должен инструкцией



    jmp 0



    Зачем? Надо. Потом объясню.



    Далее.

    Читаешь доку по PE-файлам. Харда Виздома должно хватить. Находишь в файле, который будешь модифицировать точку входа, а точнее ее адрес.

    Также необходимо обнаружить секцию кода и пустое место в ней. Пустого места должно быть достаточно, чтобы засунуть туда код. В принципе, можно этот самый код туда засовывать.



    Ну а теперь начинается самая интересная часть марлезонского балета: корректировка адресов. :)

    Необходимо узнать, по какому адресу лежит вставленый код и записать это значение в поле EntryPoint заголовка.

    Для этого берешь значение EntryPoint и прибавляешь к нему смещение вставленного кода (смещение относительно начала секции кода).

    Теперь при запуске проги будет выполняться вставленный код. Но ведь и старый код должен выполняться! Для этого в хвосте вставленного кода ищешь тот самый jmp 0. Вот вместо этого нуля (надеюсь, это дворд, а не байт :)) надо вписать адрес начала кода. Но надо понимать, что прыжки в коде относительные, а значит число после инструкции jmp последует прыжок на указаное число байт вперед (или назад, если число отрицательное). Вот это число и надо рассчитать. И тут надо подумать, т.к. я уже не помню.. :dntknw:



    Щас подумаю, а ты пока вникай. :)
     
  9. n0p

    n0p 10010000b

    Публикаций:
    0
    Регистрация:
    7 май 2003
    Сообщения:
    256
    Адрес:
    Новосиbeerск
    Так. Подумал.



    Берешь старый Entry Point (надеюсь, ты его записал :)), вычитаешь из него размер вставленного кода в байтах и вычитаешь новый EntryPoint. Должно получиться отрицательное число. Вот оно-то и будет значением для jmp.



    Вроде так. Должно работать.



    Таким манером работают вирусы-инфекторы, но аверы на твой код ругаться не будут, потому что он не несет разрушения (ведь не несет?), а такая техника вроде как частенько используется в защитах.
     
  10. DimaS

    DimaS New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2004
    Сообщения:
    17
    Вникаю здорово :)))))

    Разрушений не несет...

    Дето так и хотелось!

    ЗЫ

    Я щас пытаюсь конструкторы для вирусов под енто дело приспособить, шОбЫ поменьше вникать...
     
  11. n0p

    n0p 10010000b

    Публикаций:
    0
    Регистрация:
    7 май 2003
    Сообщения:
    256
    Адрес:
    Новосиbeerск
    Не уверен, что конструкторы помогут, но попробуй. Но существует вероятность, что конструктор еще добавит всякой хрени и авер может косо на нее смотреть.
     
  12. DimaS

    DimaS New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2004
    Сообщения:
    17
    Прочитал что вроде есть такие, которые исходники выдают.

    Качну и посмотрю исходник как пример.....
     
  13. Inked Wedge

    Inked Wedge New Member

    Публикаций:
    0
    Регистрация:
    15 авг 2004
    Сообщения:
    33
    Адрес:
    Ukraine
    Хех.... трояна/бэкдооор лепим наверное? :)
     
  14. Inked Wedge

    Inked Wedge New Member

    Публикаций:
    0
    Регистрация:
    15 авг 2004
    Сообщения:
    33
    Адрес:
    Ukraine
    Помоему лучше в таком случае писать свой код, вшивать в него этот ЕХЕшник как "полезную" нагрузку :)
     
  15. DimaS

    DimaS New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2004
    Сообщения:
    17
    Нет, я в поиске был!) Хоть бы кто прикалол, что есть "Wiew32" ..

    Щас тема топика не актуальна .