- 注册时间
- 2011-3-6
- 最后登录
- 1970-1-1
该用户从未签到
|
DWORD WINAPI TestFun(PAsmPara lpPara) //这是所有需要注入的汇编函数书写格式
{
//MessageBoxA(NULL,lpPara->strPara,NULL,NULL);
CHAR * Str = lpPara->strPara;
DWORD FunAddr = lpPara->;Para1;
__asm{
xor eax,eax
push eax
push eax
mov eax,Str
push eax
xor eax,eax
push eax
mov eax,FunAddr
call eax
}
return 0;
}
void CMyDlg::OnAsminjiect() //汇编注入测试
{
Dream a;
AsmPara MyPara;
strcpy(MyPara.strPara,"测试字符串");
a.ImproveProcessPrivilege();//因为要用到读写内存 所以需要事先提升进程权限
HWND hwnd = ::FindWindowA("SciCalc","计算器");
if(!hwnd){
AfxMessageBox("进行汇编测试,请先打开一个计算器");
}
DWORD Addr;
HMODULE had;
had=GetModuleHandleA("user32.dll");
MyPara.Para1=(DWORD)GetProcAddress(had,"MessageBoxA"); //获取函数地址
a.InjectAsmPrcess(hwnd,TestFun,&MyPara); //注入函数
}
//以下是封装好的几个函数原型
//注入失败会 调试输出具体错误
BOOL InjectAsmPrcess(HANDLE hProcess,PVOID CallFun,PAsmPara Para); //通过 进程句柄注入
BOOL InjectAsmPrcess(DWORD ProcessID,PVOID CallFun,PAsmPara Para);//通过进程PID 注入
BOOL InjectAsmPrcess(HWND hwnd,PVOID CallFun,PAsmPara Para);//通过窗口句柄注入
其他函数未作修改
http://pan.baidu.com/share/link?shareid=515769&uk=3895950538 |
|