目前在用detours做hook,遇到两个问题请教。
环境如下:
我自己开发的主程序:A,我自己开发的用来注入hook的dll:B,被hook的程序:C问题1:
B里hook的api很多,我自己写的函数也很多,所以会遇到我自己写的函数里会调用那些已经被hook的api。假设我hook了CreateFile,我自己有个函数叫做WriteLog,那么在WriteLog里就会调用CreateFile,但是我并不希望在WriteLog里调用被Hook的CreateFile,我希望调用hook前的CreateFile;换个说法就是,在这个dll里的自定义函数调用的API都不是hook后的,这该怎么实现?我知道可以声明hook前函数的指针,然后调用那个指针就行。但是这有个问题:假如有两个API m和n,在m里会调用n,在B里我都对m和n都做了hook,那么如果我在writelog里调用m,我call被hook前的m,但是因为m会调用n,由于我没法让m强制调用hook前的n,所以最后还是会调用到hook后的n,但是我想调用的是hook前的n,这又该怎么解决?
问题2:
回调问题。A把B注入到C里进行hook,B在C的进程空间里。B对C的hook函数,会有一些信息记录一下,比如简单地记录调用参数等等,然后我希望把这些信息传给A,让A打印出来。这该怎么实现?我知道有个笨一点的方法是查找窗口,但是A最小化之后这个方法就失效了。所以,只能out以上两个,请帮忙。顺祝国庆假期快乐~
环境如下:
我自己开发的主程序:A,我自己开发的用来注入hook的dll:B,被hook的程序:C问题1:
B里hook的api很多,我自己写的函数也很多,所以会遇到我自己写的函数里会调用那些已经被hook的api。假设我hook了CreateFile,我自己有个函数叫做WriteLog,那么在WriteLog里就会调用CreateFile,但是我并不希望在WriteLog里调用被Hook的CreateFile,我希望调用hook前的CreateFile;换个说法就是,在这个dll里的自定义函数调用的API都不是hook后的,这该怎么实现?我知道可以声明hook前函数的指针,然后调用那个指针就行。但是这有个问题:假如有两个API m和n,在m里会调用n,在B里我都对m和n都做了hook,那么如果我在writelog里调用m,我call被hook前的m,但是因为m会调用n,由于我没法让m强制调用hook前的n,所以最后还是会调用到hook后的n,但是我想调用的是hook前的n,这又该怎么解决?
问题2:
回调问题。A把B注入到C里进行hook,B在C的进程空间里。B对C的hook函数,会有一些信息记录一下,比如简单地记录调用参数等等,然后我希望把这些信息传给A,让A打印出来。这该怎么实现?我知道有个笨一点的方法是查找窗口,但是A最小化之后这个方法就失效了。所以,只能out以上两个,请帮忙。顺祝国庆假期快乐~
解决方案 »
- 第二次读取cookies读取不到
- 求助 ComboBox无法添加项?? 小弟先谢过了
- 谁有工具条制作工具 Visual Toolbar 的注册码?
- 工程上的问题,请学力学的兄弟帮一下!
- post数据时特殊字符如何处理?急用,在线等待!!
- fatal error C1010: unexpected end of file 这个错误怎么解决啊?
- 文件格式问题
- 谁知道“打印控制中心”应该如何来实现啊????还有不同文档的打印拼图怎么做哦???谢谢大家
- 关于印刷体汉字识别中特征库的建立
- 关于SSDT HOOK后通过事件通知应用程序问题
- 我HOOK了某个类的构造函数,想得到其对象地址,并用这个地址调用其成员函数,请帮我看看错在何处。
- (((CBUTTON*)(GetDlgItem(IDC_CHECK1)))->GetCheck()&1)?"1.EXE":";什么意思
建议去哪里讨论,谢谢