Код (Text): .586p .model flat extrn ExitProcess:PROC .data limit equ 5 db 0 .code test: call delta delta: pop ebp sub ebp,offset delta mov esi,[esp] and esi,0FFFF0000h call GetK32 push 00000000h call ExitProcess GetK32: __1: cmp byte ptr [ebp+K32_Limit],00h jz WeFailed cmp word ptr [esi],"ZM" jz CheckPE __2: sub esi,10000h dec byte ptr [ebp+K32_Limit] jmp __1 CheckPE: mov edi,[esi+3Ch] add edi,esi cmp dword ptr [edi],"EP" jz WeGotK32 jmp __2 WeFailed: mov esi,0BFF70000h WeGotK32: xchg eax,esi ret K32_Limit dw limit end test в отладчике останавливается код на: cmp byte ptr [ebp+K32_Limit],00h и все. Думаю сделать так: .586p .model flat extrn ExitProcess:PROC .data limit equ 5 db 0 .code test: ; call delta ;delta: pop ebp ; sub ebp,offset delta mov esi,[esp] and esi,0FFFF0000h call GetK32 push 00000000h call ExitProcess GetK32: __1: cmp byte ptr [ebp+K32_Limit],00h jz WeFailed cmp word ptr [esi],"ZM" jz CheckPE __2: sub esi,10000h dec byte ptr [ebp+K32_Limit] jmp __1 CheckPE: mov edi,[esi+3Ch] add edi,esi cmp dword ptr [edi],"EP" jz WeGotK32 jmp __2 WeFailed: mov esi,0BFF70000h WeGotK32: xchg eax,esi ret K32_Limit dw limit end test и у нас выталкнется в ebp адресс возврата на кернел так что же делать с: cmp byte ptr [ebp+K32_Limit],00h ? [ebp+K32_Limit]=значение регистра+что ? у нас получается limit equ 5 K32_Limit dw limit это вообще как ? но дело в том, что Оля останавливается и ничего не делает.
это короче пример: путиводитель по написанию вирусов ring3 --на уровне кодинга пример взят без изминений, во сижу и думаю что делать. как открыть сегмент кода доступным для записи ?
n1kt0 это короче пример: путиводитель по написанию вирусов ring3 Afaik там есть упоминание, что после линковки (tlink не поймет rain'а) использовать pewrsec.
n1kt0 Если ты ее читал на wasm'е, то в разделе "Пример вируса" в листинге есть Код (Text): ... ; Компилирование: TASM 5.0 и TLINK 5.0 ; tasm32 /ml /m3 aztec,,; ; tlink32 /Tpe /aa /c /v aztec,aztec,,import32.lib, ; pewrsec aztec.exe ... + коментарии к статье посвещаны именно проблеме доступности сегмента кода на запись.