· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› Как лучьше внести изменения в EXEшник?!

Посл.отвђт Сообщенiе


Дата: Сен 12, 2004 13:01:40

Прочитал несколько статей по работе дизассемблер(ов) и разочаровался:(

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

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

Так же попалась информация о возможности добавить в файл ОпКод, что то типа вируса.
Как это сделать посредством редактора?
Обьясните по шагам ПЛИZZZZZZZZ!
Есть вероятность, что AV выкинит такой код при проверке?


Дата: Сен 12, 2004 14:16:35 · Поправил: DimaS

Уточню задачу. Нужно добавить в программу несколько команд(вызов подпрограммы и выход по условию).


Дата: Сен 12, 2004 14:25:35

Понял так, что при "exe"->"исходник"->"exe" нет гарантий что прога будет работать корректно. Так ли это?!
какой исходник ты имеешь в виду то ?
тот, который получишь в результате дизассемблирования ?
т.е. ассемблерный листинг .exe файла ?
ну, тот же самый .ехе ты уже никогда, конечно же, не получишь, да и вообще, столько придется подгонять, чтобы все скомпилировалось допустим в том же MASMе.. неделя работы для какого-нибудь блокнота :)
и зачем тебе это вообще ? хочешь добавить что-нибудь в
уже существующую программу ? тогда придется разбираться
с ассемблером и дописывать на ассемблере. по другому никак.
чуть легче - можно подцепить дллку к этому .exeшнику, написанную на любом языке, и каким-нибудь образом организовать процесс её взаимодействия с .ехе файлом...

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

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

Обьясните по шагам ПЛИZZZZZZZZ!
по-моему ты слишком широко поставил вопрос. какая у тебя цель то ?


Дата: Сен 12, 2004 14:58:47

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

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

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

А что ты имееш в виду "придется разбираться
с ассемблером и дописывать на ассемблере"
, поясни подробней куда и как дописывать!
С асМоМ чуть чуть дружу, EXEшник учусь модифицировать, задачка 8)


Дата: Сен 12, 2004 15:19:07 · Поправил: Funbit

цель ты указал во втором ответе, а я начал писать еще до его появления :)

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

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

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


Дата: Сен 12, 2004 15:28:18 · Поправил: DimaS

Ненадо мне сложной защиты, достаточно защиты от простых юзверей!
Хочю "просто"(мне не просто:(, чтоб при несоответствии сарий ника HDD(непример) был переход на точку выхода из программы.
Серийник получать уже могу, пытаюсь добавить сие в прогу.
А какие "готовые навесные средстава" есть??!!!!!
Очень интересно!!!! Де их можно взять, хоть кусочек исходника глянуть?????
Чето поиск не дает ниче :((((((

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


Дата: Сен 12, 2004 16:32:16

ну если для простых, тогда тебе лучше будет
написать DLLку, в которой организуешь проверку
HDD iD, если iD плохой - сделаешь прямо там ExitProcess...
проверку можешь вставить в какую-нибудь эскпортируемую ф-цию,
а потом где-нибудь около EP .ехешника сделать прыжок на
эту ф-цию. (на адрес в импорте).

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

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


Дата: Сен 12, 2004 17:55:29

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

jmp 0

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

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

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

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


Дата: Сен 12, 2004 18:02:35

Так. Подумал.

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

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

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


Дата: Сен 12, 2004 18:06:57 · Поправил: DimaS

Вникаю здорово :)))))
Разрушений не несет...
Дето так и хотелось!
ЗЫ
Я щас пытаюсь конструкторы для вирусов под енто дело приспособить, шОбЫ поменьше вникать...


Дата: Сен 12, 2004 18:12:03

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


Дата: Сен 12, 2004 18:14:38

Прочитал что вроде есть такие, которые исходники выдают.
Качну и посмотрю исходник как пример.....


Дата: Сен 16, 2004 21:57:53

Хех.... трояна/бэкдооор лепим наверное? :)


Дата: Сен 16, 2004 21:59:36

Помоему лучше в таком случае писать свой код, вшивать в него этот ЕХЕшник как "полезную" нагрузку :)


Дата: Сен 16, 2004 22:03:03

Нет, я в поиске был!) Хоть бы кто прикалол, что есть "Wiew32" ..
Щас тема топика не актуальна .


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.109