我试图在运行时和远程启动驻留在另一个程序中的函数。远程调用函数设置EAX和ECX
使用ollydbg我得到了函数地址和即时通讯使用CreateRemoteThread来启动这个函数,它实际上运行这个函数,但它收回两个参数,没有这些参数程序崩溃。
的问题是,这种机能的研究得到的参数/从EAX和ECX参数都推到这个功能,它被称为前(这两个值是去从1到576这两个矩阵coordenates ~~)
Createremotethread没有为inseting参数工作,我试图使用结构使用多个(2)参数,但寄存器的值不会改变。
我该如何通过从另一个不同的程序启动并设置这两个寄存器来使其他程序运行此功能?
这就是我所说的线程0x01003084
struct tagRemoteThreadParams //didnt worked
{
int Param1;
int Param2;
} RemoteThreadParams, *PRemoteThreadParams;
RemoteThreadParams.Param1 = 0x00000001;//didnt worked
RemoteThreadParams.Param2 = 0x00000001;//didnt worked
int address=0x010038B1; // 0x01003084 -- 0x01002FE0 -- 0x01003512 //Some addresses
RedrawWindow(Find,NULL,NULL,RDW_ERASE|RDW_INVALIDATE|RDW_INTERNALPAINT|RDW_FRAME); //my program stuff
DWORD rc;
//this is where i call the function
CreateRemoteThread(hProcess,NULL,NULL,(LPTHREAD_START_ROUTINE)address,&RemoteThreadParams,0,&rc);
rc = WaitForSingleObject(hProcess, 30000);
CloseHandle(hProcess);
VirtualFreeEx(hProcess, (LPVOID)address, 0, MEM_RELEASE | MEM_DECOMMIT);
记住,我不希望使用DLL注入到执行该功能具有代码(这不是什么即时搜索),我实际上只想用一个代码来做这件事。 谢谢。
直接处理寄存器是OS /目标特定?您是否错过了指定缩小的标签? – 2014-11-06 20:24:01
这是在Windows,IA32 – Ollegn 2014-11-06 20:31:02
许多编译器允许在C/C++代码中嵌入汇编指令,但不同编译器之间的语法差别很大。你使用什么编译器?你有没有阅读过文档? – Paulo1205 2014-11-06 21:08:55