如何得到目标进程中加载的DLL的函数地址并远程调用
展开全部
要在目标进程中找到DLL的函数地址,就要在目标进程中调用GetModuleHandle和GetProcAddress函数,要把以下代码放到目标进程中执行。
Pushad
pushfd
Mov EBX ,ls //ls是注入的模块路径在目标进程中的指针
Push EBX
Mov ECX ,GetModuleHandle //这两个函数地址可以在本地进程中得到。
Call ECX
Mov EBX,ls2 //要调用函数的导出名在目标进程中的地址
Push EBX
Push EAX
Mov ECX,GetProcAddress
Call ECX
Call EAX //GetProcAddress返回的地址在eax中,这里只是调用无参数的函数,如果有参数就很麻烦了。
popfd
Popad
Ret
这样处理了以后,DLL中要执行的无参数函数就可以不用放在DLLMAIN中了,DLL中可以做很多函数进去,放便在不同的目标进程中注入,可以让DLL更具有灵活性。
Pushad
pushfd
Mov EBX ,ls //ls是注入的模块路径在目标进程中的指针
Push EBX
Mov ECX ,GetModuleHandle //这两个函数地址可以在本地进程中得到。
Call ECX
Mov EBX,ls2 //要调用函数的导出名在目标进程中的地址
Push EBX
Push EAX
Mov ECX,GetProcAddress
Call ECX
Call EAX //GetProcAddress返回的地址在eax中,这里只是调用无参数的函数,如果有参数就很麻烦了。
popfd
Popad
Ret
这样处理了以后,DLL中要执行的无参数函数就可以不用放在DLLMAIN中了,DLL中可以做很多函数进去,放便在不同的目标进程中注入,可以让DLL更具有灵活性。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询