能力值:
( LV2,RANK:10 )
|
-
-
2 楼
看反汇编代码
把ADD的opcode改为 MUL的opcode
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
可以的 VirtualAllocEx修改代码段的保护属性 再用WriteProcessMemory搜索到Opcode地址修改即可。
不过要考虑保证修改该函数必须是独占的。否则会引起歧义。
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
谢谢啊。我举例没说太清楚,我的本意是说远程加载一个全新的函数(除了函数名不变,函数体全部修改),以替换旧函数,不仅是改变一个符号。
场景和需求:
自己编写一个MFC的A进程,里面包含了一个定时一秒反复调用的函数fun:
int fun()
{
int a,b;
a=1;
b=2;
return a+b;
}
在A程序运行期间,外部编写全新的fun(示例如下,函数名不变,函数体全部替换)通过外部进程B注入到A的进程空间,使A在收到B注入的新函数后的下一个秒周期,调用新的函数,而不中断进程。
int fun()
{
int cc,dd;
cc=9;
dd=3;
return cc/dd;
}
是不是可以申请一段内存,加载新函数,然后改变指令跳转地址调用新的函数?
|
能力值:
( LV12,RANK:470 )
|
-
-
5 楼
完全正确
VirtualAllocEx分配一片内存
WriteProcessMemory修改函数代码即可
你去看看apihook的实现代码吧
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
可以的,在内存中找到函数的地址,改成你现在函数的地址就可以了.这种方法在外挂中介绍的比较多
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
收到
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
能给点更详细的信息么,最好vc下的
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
大哥阿,找不到apihook 2.0 的源代码。看过一个hookapi.cpp,在xp下运行不了。。。
|
|
|