|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Апр 15, 2003 11:44:26 Возможно ли и как прочитать свою загруженную прогу под винду (PE формат) из памяти и сохранить её в виде нового exe-шника, возможно с min модификациями? Для com- формата есть старая демка, компилятор FASM. Если запустить вновь созданный файл, она создаст ещё один и ещё, до бесконечности: org 100h use16 my_head: inc [namef+3] mov dx, namef mov cx,0 mov ah,3Ch int 21h mov [f_number],ax mov bx,ax mov dx,my_head mov cx,my_end - my_head mov ah,40h int 21h mov bx,[f_number] mov ah,3Eh int 21h ret namef db 'new1.com',0 f_number dw 0 my_end: Т.е. сделать аналогичное для PE. |
|
|
Дата: Июн 22, 2003 00:38:45 · Поправил: DEMON84 А ты ваще чё, червя-размножальщика решил написать? |
|
|
Дата: Июн 22, 2003 02:01:25 Можно PE и из памяти - Пишем с начала 400000h (=GetModuleHandle()) по размеру IMAGE_NT_HEADERS.OptionalHeader.SizeOfImage. Ну там ещё секции двигать придётса, и так далее. Процесс такой же как дамп любой другой программы - только себя. |
|
|
Дата: Июн 22, 2003 03:25:36 Помню, как-то по дурости писал простенького червячка-размножалку (в универе сервак забить решил, на учёбу ломы были :-)) и юзал винапишную функцию CopyFile(OldName,NewName,True). Так ваще ничё получилось: размножение было приятным, но недолгим – место на серваке закончилось :-) |
|
|
Дата: Июл 1, 2003 23:53:36 Решение: Используй две функции GetModuleFileName и Copy File |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.064 |