Приветик... )) Вопрос возможно Вам покажется ламерским, но я в асме совсем новичок... ))) Вообщем, "Путеводитель по написанию вирусов под Win32"...--> "Ring-3 программирование на уровне пользователя..." Проблема на этом участке кода: Code (Text): ;---[ CUT HERE ]---------------------------- .586p .model flat extrn ExitProcess:PROC .data limit equ 5 db 0 ;-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·- ·-·-·; ;.... ;-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·- ·-·-·; .code test: call delta delta: pop ebp sub ebp,offset delta ; <--ПРОБЛЕМА ТУТ.. при прогонке под отладчиком EBP после этой стр. равен 0х00000000 ;почему..? судя по дальнейшему коду, нулю он никак не должен быть равен... mov esi,[esp] and esi,0FFFF0000h call GetK32 push 00000000h call ExitProcess ;-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·- ·-·-·; ;...... comments ;-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·- ·-·-·; 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 ;.......продолжение кода
Code (Text): test: call delta ;= push offset delta ; jmp delta; delta: pop ebp ;ebp<-offset delta sub ebp offset delta ; offset delta- offset delta = 0 так что всё правильно
Code (Text): call delta ;= push offset delta ; jmp delta; Млин.. ну конечно же... Спасибо! staier`у РЕСПЕКТ!