![]() |
|
![]() 初级会员
|
我把修改后的文件运行后,用od附加,发现代码又不一样: 01EB2852 C74424 28 3278A>MOV DWORD PTR SS:[ESP+28],57AE7832 01EB285A C64424 3A 64 MOV BYTE PTR SS:[ESP+3A],64 01EB285F 0FB64424 3A MOVZX EAX,BYTE PTR SS:[ESP+3A] 01EB2864 A3 B8800310 MOV DWORD PTR DS:[100380B8],EAX 01EB2869 8D4424 2C LEA EAX,DWORD PTR SS:[ESP+2C] 01EB286D BA 35353138 MOV EDX,38313535 01EB2872 8910 MOV DWORD PTR DS:[EAX],EDX 01EB2874 C64424 3B 07 MOV BYTE PTR SS:[ESP+3B],7 01EB2879 0FB63F MOVZX EDI,BYTE PTR DS:[EDI] 01EB287C 16 PUSH SS 01EB287D 3B90 90908915 CMP EDX,DWORD PTR DS:[EAX+15899090] 01EB2883 B4 80 MOV AH,80 01EB2885 EE OUT DX,AL ; I/O command 01EB2886 018D 50018D9B ADD DWORD PTR SS:[EBP+9B8D0150],ECX 从01EB2879开始就不对了,请高手指点一下,该如何修改?
|
||
|
![]() 初级会员
|
再完整地把修改代码发一遍。 修改前: 10002852 > \8A4424 2A MOV AL,BYTE PTR SS:[ESP+2A] 10002856 . 8A4C24 28 MOV CL,BYTE PTR SS:[ESP+28] 1000285A . 0FB65424 3B MOVZX EDX,BYTE PTR SS:[ESP+3B] 1000285F . 32C8 XOR CL,AL 10002861 . 8A4424 29 MOV AL,BYTE PTR SS:[ESP+29] 10002865 . 884C24 28 MOV BYTE PTR SS:[ESP+28],CL 10002869 . 8A4C24 2B MOV CL,BYTE PTR SS:[ESP+2B] 1000286D . 32C1 XOR AL,CL 1000286F . 884424 29 MOV BYTE PTR SS:[ESP+29],AL 10002873 . 0FB64424 3A MOVZX EAX,BYTE PTR SS:[ESP+3A] 10002878 . A3 B8800310 MOV DWORD PTR DS:[100380B8],EAX 1000287D . 8D4424 2C LEA EAX,DWORD PTR SS:[ESP+2C] 10002881 . 8915 B4800310 MOV DWORD PTR DS:[100380B4],EDX 修改后: 10002852 C74424 28 327>MOV DWORD PTR SS:[ESP+28],57AE7832 1000285A C64424 3A 64 MOV BYTE PTR SS:[ESP+3A],64 1000285F 0FB64424 3A MOVZX EAX,BYTE PTR SS:[ESP+3A] 10002864 A3 B8800310 MOV DWORD PTR DS:[100380B8],EAX 10002869 8D4424 2C LEA EAX,DWORD PTR SS:[ESP+2C] 1000286D BA 35353138 MOV EDX,38313535 10002872 8910 MOV DWORD PTR DS:[EAX],EDX 10002874 C64424 3B 07 MOV BYTE PTR SS:[ESP+3B],7 10002879 0FB65424 3B MOVZX EDX,BYTE PTR SS:[ESP+3B] 1000287E 90 NOP 1000287F 90 NOP 10002880 90 NOP 重定向后的: 01EB2852 C74424 28 3278A>MOV DWORD PTR SS:[ESP+28],57AE7832 01EB285A C64424 3A 64 MOV BYTE PTR SS:[ESP+3A],64 01EB285F 0FB64424 3A MOVZX EAX,BYTE PTR SS:[ESP+3A] 01EB2864 A3 B8800310 MOV DWORD PTR DS:[100380B8],EAX 01EB2869 8D4424 2C LEA EAX,DWORD PTR SS:[ESP+2C] 01EB286D BA 35353138 MOV EDX,38313535 01EB2872 8910 MOV DWORD PTR DS:[EAX],EDX 01EB2874 C64424 3B 07 MOV BYTE PTR SS:[ESP+3B],7 01EB2879 0FB63F MOVZX EDI,BYTE PTR DS:[EDI] 01EB287C 16 PUSH SS 01EB287D 3B90 90908915 CMP EDX,DWORD PTR DS:[EAX+15899090] 01EB2883 B4 80 MOV AH,80 01EB2885 EE OUT DX,AL ; I/O command 01EB2886 018D 50018D9B ADD DWORD PTR SS:[EBP+9B8D0150],ECX 跟踪到这里的时候发生存取异常(这是肯定的,地址越界了) 01EB2864 A3 B8800310 MOV DWORD PTR DS:[100380B8],EAX 这个地址应该怎么写? 另外为什么代码会和汇编时修改的不一样?是和这个重定向地址有关吗?
|
||
|