用od修改了dll里一个函数的部分代码,保存。但可执行程序导入此dll文件,定位到修改位置,发现代码与修改的不一样。请有修改dll代码经验的朋友指点一下。
原代码:
00ACBCA1 33C9 xor ecx,ecx
00ACBCA3 B2 01 mov dl,1
00ACBCA5 A1 FCE1CE00 mov eax,dword ptr ds:[CEE1FC]
00ACBCAA E8 19492300 call fastrepo.00D005C8
00ACBCAF 8945 EC mov dword ptr ss:[ebp-14],eax
00ACBCB2 33C0 xor eax,eax
00ACBCB4 55 push ebp
00ACBCB5 68 96BDAC00 push fastrepo.00ACBD96
00ACBCBA 64:FF30 push dword ptr fs:[eax]
00ACBCBD 64:8920 mov dword ptr fs:[eax],esp
修改后:
00ACBCA1 53 push ebx
00ACBCA2 33C0 xor eax,eax
00ACBCA4 64:8920 mov dword ptr fs:[eax],esp
00ACBCA7 8B45 08 mov eax,dword ptr ss:[ebp+8]
00ACBCAA 8B40 FC mov eax,dword ptr ds:[eax-4]
00ACBCAD 8B10 mov edx,dword ptr ds:[eax]
00ACBCAF FF52 24 call dword ptr ds:[edx+24]
00ACBCB2 5B pop ebx
00ACBCB3 3BD8 cmp ebx,eax
00ACBCB5 0F85 15030000 jnz fastrepo.00ACBFD0
00ACBCBB E9 40030000 jmp fastrepo.00ACC000
修改后的DLL被EXE程序导入:
0111BCA1 53 push ebx
0111BCA2 33C0 xor eax,eax
0111BCA4 64:8920 mov dword ptr fs:[eax],esp
0111BCA7 8BAA 088B40FC mov ebp,dword ptr ds:[edx+FC408B08]
<-------出现问题
0111BCAD 8B10 mov edx,dword ptr ds:[eax]
0111BCAF FF52 24 call dword ptr ds:[edx+24]
0111BCB2 5B pop ebx
0111BCB3 3BD8 cmp ebx,eax
0111BCB5 0F85 15680000 jnz fastrepo.011224D0
0111BCBB E9 40030000 jmp fastrepo.0111C000
发现有一行代码在dll导入后被修改了
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!