首页
社区
课程
招聘
iat hook中hook函数跳回到被hook函数的方法 达人请进
发表于: 2010-12-11 15:52 4713

iat hook中hook函数跳回到被hook函数的方法 达人请进

2010-12-11 15:52
4713
目标进程b.exe
目标:IAT HOOK,并能使用被hook的原函数,不使用dll

1:通过写内存的方式,将一个函数写入目标进程
函数原型:
1
2
3
4
5
6
7
8
9
int WINAPI MessageBoxW_RemoteFunc(
                                        HWND hWnd,
                                        LPCWSTR lpText,
                                        LPCWSTR lpCaption,
                                        UINT uType
                                   )
{
 
}

2: 我定位b.exe的导入表,将正常的MessageBoxW替换为上面的函数地址,并将系统的MessageBox的地址保存下来。

    这两步已经实现。

碰到的问题在这里:

1:  MessageBoxW_RemoteFunc里我想调用系统的MessageBoxW怎么调用?

        MessageBoxW_RemoteFunc是在b.exe中的,而且参数要和系统的保持一致,我不知道怎么把已经保存下来的系统MessageBoxW的地址传给它。

2:  如果我要修改参数怎么修改,比如修改它的2,3参数,让它弹出不同的东西.
     但是MessageBoxW_RemoteFunc这个要写入目标进程的函数,是不能定义字符串指针的(至于为什么,大家都知道的吧),怎么办?

      我想声明一个字符串,硬编码怎么声明字符串呢,比如通过_emit?

求达人指点.....

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费
支持
分享
最新回复 (4)
雪    币: 442
活跃值: (43)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
1,先在自己进程里面取GetProcAddress地址,还有kernel32基址

2,然后把地址,还有函数名比如MessageBoxA,跟基址一起传到目标进程

3,
push  xxx
push   xxx
call eax                 ;eax为GetProcAddress指针

4,GetProcAddress可以自行编程实现,具体翻阅论坛帖子
2010-12-11 16:16
0
雪    币: 458
活跃值: (421)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
3
读了好几遍  有点不只所云的感觉  
1.既然原本的系统MessageBoxW的地址已经保存下来了  直接调不就行了吗?
2.函数你都能写如目标进程  字符串你不会写?
2010-12-11 16:16
0
雪    币: 2
活跃值: (209)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
-----------------------------------------------------------------------

我的进程是a.exe 目标是b.exe

1:a.exe写内存,写一个替代函数fun2()到b.exe中

2:  a.exe注入一个函数fun1到b.exe中,并以fun1为线程函数启动这个线程,这个线程将做一个IAT hook,用fun2()替换MessageBoxW,然后远程线程返回被替换的MessageBoxW的真实入口,这时候,b.exe的MessageBoxW被写入的fun2替换了,a.exe和b.exe没有任何关系,甚至我可以关闭a.exe.
3: 那么,b.exe调用MessageBoxW的时候,就会转入fun2中。

我的问题是,fun2被调用了以后,如果我想调用修改前的MessgeBoxW怎么调用?

还有,fun2接受的参数列表跟IAT HOOK前的MessageBoxW是一样的,如果我想修改接收来的参数,怎么修改呢,用_emit硬编码一个字符串吗?
2010-12-11 16:31
0
雪    币: 1149
活跃值: (923)
能力值: ( LV13,RANK:260 )
在线值:
发帖
回帖
粉丝
5
你这样说: 很多人以为是另一种 情况 ,想说清楚 你还是得 把 源码 上一下。。附带说明。。。。
2010-12-11 16:40
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册
// // 统计代码