DLL已经注入exe,但修改其代码流程失败
【求助】DLL已经注入exe,但修改其代码流程失败。
程序代码一小段:
0040240F . 0F88 BC000000 js 004024D1
00402415 . 8B85 C0FEFFFF mov eax, [ebp-140]
我想在 0040240F 的地方跳转到我DLL的函数,处理完再跳转回去,我网上看到一个汇编写的例子,我只是修改成c++的
把0040240f跳转到自己的函数(地址为ProcAddr),他是这样修改的,
__asm{
pushad
mov edx,0040240fh //要修改 0040240F 处
mov al,0e9h //0e9h = jmp near 的指令码
mov byte ptr [edx],al //(问题1)写入 jmp near ,但之后用od attach,发现还是原来的,并没有被修改
sub ProcAddr,0040240fh
sub ProcAddr,5
mov eax,ProcAddr
mov dword ptr [edx+1],eax //(问题2)写入跳转到的地址, 这里ProcAddr-0040240f-5是什么作用呢?
mov dwAddress,005609f0h//修改005609EB 地方的指令为跳转指令
popad
}
还请大家帮忙~
谢谢!
------解决方案--------------------
0 直接用 writeprocessmemory 修改
1 mem 属性有没有改
程序代码一小段:
0040240F . 0F88 BC000000 js 004024D1
00402415 . 8B85 C0FEFFFF mov eax, [ebp-140]
我想在 0040240F 的地方跳转到我DLL的函数,处理完再跳转回去,我网上看到一个汇编写的例子,我只是修改成c++的
把0040240f跳转到自己的函数(地址为ProcAddr),他是这样修改的,
__asm{
pushad
mov edx,0040240fh //要修改 0040240F 处
mov al,0e9h //0e9h = jmp near 的指令码
mov byte ptr [edx],al //(问题1)写入 jmp near ,但之后用od attach,发现还是原来的,并没有被修改
sub ProcAddr,0040240fh
sub ProcAddr,5
mov eax,ProcAddr
mov dword ptr [edx+1],eax //(问题2)写入跳转到的地址, 这里ProcAddr-0040240f-5是什么作用呢?
mov dwAddress,005609f0h//修改005609EB 地方的指令为跳转指令
popad
}
还请大家帮忙~
谢谢!
------解决方案--------------------
0 直接用 writeprocessmemory 修改
1 mem 属性有没有改