bs001 无特征免杀NOD32 DLL免杀!
0092E8AF 60 PUSHAD 寄存器压入堆栈 0092E8B0 9C PUSHFD 0092E8B1 E8 00000000 CALL 1.0092E8B6 0092E8B6 90 NOP 0092E8B7 90 NOP 0092E8B8 58 POP EAX 将CALL的地址放入EAX寄存器 0092E8B9 90 NOP 0092E8BA 83C0 1C ADD EAX,1C 把CALL的地址加上1c 就是我们需要写数据的地方了! 0092E8BD 90 NOP 0092E8BE 90 NOP 0092E8BF 90 NOP 0092E8C0 B9 05000000 MOV ECX,5 ECX的值为5 表示我们要循环写5次数据 0092E8C5 8BFB MOV EDI,EBX EBX的值放入EDI 0092E8C7 8BF0 MOV ESI,EAX eax的值放入ESI 0092E8C9 F3:A4 REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI] 循环写数据 ESI地址的数据写到EDI地址处 共循环写5次 0092E8CB 9D POPFD 0092E8CC 61 POPAD 将寄存器弹出堆栈 这是寄存器恢复到压入堆栈前的值 0092E8CD ^ E9 2EFEFFFF JMP 1.<模块入口点> JMP到入口点 入口点的代码已经被我们写回去了 所以能正常执行代码 0092E8D2 807C24 08 01 CMP BYTE PTR SS:[ESP+8],1 这里就是EAX,1C指向的地址 也就是我们修改前程序的入口点代码!
|