Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.09;
Скачать: CL | DM;

Вниз

Самомодификация exe-файла   Найти похожие ветки 

 
Izyum ©   (2003-09-26 14:19) [0]

Привет всем!
Задача такая: заставить exe-шник переписать часть кода в себе. Например, последним байтом в нем идет "1", при определенных условиях он должен затереть эту единичку нулем.


 
[lamer]Barmaglot ©   (2003-09-26 14:22) [1]

Создаешь второй файл в памяти, который начнет работать после завершения программы, после чего откроет файл exe породивший его программы и заменит 1 или 0


 
Izyum ©   (2003-09-26 14:34) [2]

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


 
[lamer]Barmaglot ©   (2003-09-26 14:38) [3]

Во время работы программы переписать само себя нельзя.
Кстати чем не устраивает стандартный вариант сохранение данных о запуске - на диск, в реестр, в ini файл и т.д.?


 
Digitman ©   (2003-09-26 14:40) [4]

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

не проще ли пометить флаг-триггер не в EXE , а в DLL (в е ресурс) ? модификация ресурса вполне устойчива для NT-платформы и документирована


 
Izyum ©   (2003-09-26 15:01) [5]

В принципе, меня устраивают ВСЕ варианты хранения счетчика во внешних файлах (реестр, ini, dll, ...) Но вот захотелось все запихать в один файл. Где-то встречал описание работы упаковщика exe-файлов (в файле идет сначало код декомпрессора, а затем основной исполняемый код), го вот теперь не могу найти.

Можно было бы пойти таким путем: пишем небольшую прожку, задачей которой будет обеспечивать нужную функциональность. В конец этому файлу дописываем основной exe-шник. При старте полученого бутерброда, первая буудет вычленять код основной проги и создавать на диске файл, после чего его и запускать, а сама завершаться. Тогда второй прогой можно будет менять код первой. Файл второй проги можно создавать где-нибудь в укромном месте (v:\windows\temp), от глаз подальше, да еще и имя ему генерить случайным образом. А при старте "бутерброда", можно еще и хвосты подчищать от предыдущих запусков.

Может не совсем понятно, но... По свободе попробую реализовать такой алгоритм, если не обламает:-)


 
Reindeer Moss Eater ©   (2003-09-26 15:07) [6]

Баловство все это.
Достаточно иметь исходные версии самомодифицирующихся файлов что бы обойти всю эту премудрость.


 
panov ©   (2003-09-26 15:07) [7]

ни один из трюков не будет работать, если EXE-файл защищен системой от записи (Security)...


 
Anatoly Podgoretsky ©   (2003-09-26 15:09) [8]

Izyum © (26.09.03 15:01) [5]
Предмет пристального внимания для антивирусов.
Реестр не прибавляет тебе файлов


 
Izyum ©   (2003-09-26 15:58) [9]

Reindeer Moss Eater © (26.09.03 15:07) [6]

А я и не говорил, что это серьезный комерческий проект:-)
Иногда что-то делается просто так, ради удовольствия. Вот придумалась мне задачка - и сижу ее решаю. Если нет красивых и простых решений - это не значит, что их нет вообще.

Было время, когда никто (или почти никто) не мог и помыслить о том, что трояна можно засунуть в хинты к МП3, или отформатировать себе диски открыв какую-то web-страничку.

Не поймите меня привратно, вирей плодить в задачи себе я не записывал, просто сижу обдумываю [i]Anatoly Podgoretsky © (26.09.03 15:09) [8][/i], вот и пришло на ум сравнение с вирями.



Страницы: 1 вся ветка

Текущий архив: 2003.10.09;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.018 c
1-27443
Sergp
2003-09-27 19:28
2003.10.09
Можно ли объявить новый класс вместо старого...


3-27396
Дмитрий К.
2003-09-18 14:58
2003.10.09
Регистр символов и таблица в памяти


1-27476
Julia
2003-09-26 23:13
2003.10.09
переключение раскладки клавиатуры


3-27362
Виталий Панасенко
2003-09-19 10:47
2003.10.09
Создание композитного отчета в pReport


1-27428
Triny
2003-09-28 16:52
2003.10.09
Шрифт кнопки