首页
社区
课程
招聘
进程注入的问题。到底毛病出在那了呢?
发表于: 2006-11-3 23:16 3675

进程注入的问题。到底毛病出在那了呢?

2006-11-3 23:16
3675
我的全部代码想要实现的功能为:
已知某程序运行后用OD调试得到以下语句。
0x0045097f   mov mov [esi+254],ecx (6字节)
0x00450985   ..................
然后欲修改这语句为:
0x0045097f  NOP               (一字节)
0X00450980  jmp  xxxxxxxx (转跳到执行我们自己的函数DispFunc ) (5字节)
执行完我们自己的函数在跳回原程序继续向下执行。

我的源码为:
const DWORD conaddress=0x450985;
const DWORD A1=0xE9;
DWORD  hp;
_declspec(naked)DispFunc()
{
_asm
{
                mov [esi+254],ecx
                mov hp,ecx
                jmp conaddress   (跳回原程序代码继续往下执行)
}
}
void my5::OnButton2()
{
HWND hwnd;
DWORD pid;
hwnd =::FindWindow(NULL, "xxxx程序");
if(hwnd)
{
GetWindowThreadProcessId(hwnd,&pid);
HANDLE hProcess=::OpenProcess(PROCESS_ALL_ACCESS, false, pid);
WriteProcessMemory(hProcess,(LPVOID)0x0045097f,(LPVOID)0x90,1,NULL);
WriteProcessMemory(hProcess,(LPVOID)0x00450980,(LPVOID)&A1,1,NULL);
FARPROC p=(FARPROC)DispFunc;(这个地方是否也会出问题?)
  DWORD dwOldFlag;
VirtualProtect((void*)0x450981,4,PAGE_READWRITE,&dwOldFlag);
  *((DWORD*)0x450981)=(DWORD)p;  //经调程序运行到这出错450981内存不能为写。。
VirtualProtect((void*)0x450981,4,dwOldFlag,&dwOldFlag);
  }
else
{
AfxMessageBox("程序没有运行");
}

此源码编译没有问题但是运行后出现“遇到问题,需要关闭“

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
怎么没人回呀。。帮帮吧大哥大姐们
2006-11-4 11:03
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
不用回了已经解决
2006-11-4 12:53
0
游客
登录 | 注册 方可回帖
返回
//