本人初学hookapi,问题多多,请指教。
问题1:《windows核心编程》中介绍了修改输入节来替换函数,我想问的是在1个线程中调用了installhook(注:我写的函数,修改输入节),整个进程的该函数是不是都替换了?
问题2:如果问题1的答案是肯定的,那么下面的代码(伪代码)怎么解释(installhook 中用MyTextOutA替换了TextOutA):
Button1单击事件: onButton1()
{
installhook(currentThreadID);
}
Button1单击事件:onButton2()
{
TextOutA();//按下Button1后,这里能跳转到MyTextOutA,也就是说真正替换了
} 替换函数的实现: MyTextOutA()
{
MessageBox();
TextOutA();//但是在这里,为什么调用的是未修改的函数?
}
谢谢大家帮忙!
问题1:《windows核心编程》中介绍了修改输入节来替换函数,我想问的是在1个线程中调用了installhook(注:我写的函数,修改输入节),整个进程的该函数是不是都替换了?
问题2:如果问题1的答案是肯定的,那么下面的代码(伪代码)怎么解释(installhook 中用MyTextOutA替换了TextOutA):
Button1单击事件: onButton1()
{
installhook(currentThreadID);
}
Button1单击事件:onButton2()
{
TextOutA();//按下Button1后,这里能跳转到MyTextOutA,也就是说真正替换了
} 替换函数的实现: MyTextOutA()
{
MessageBox();
TextOutA();//但是在这里,为什么调用的是未修改的函数?
}
谢谢大家帮忙!
解决方案 »
- 关于MapVirtualKey的问题
- 在DLL中怎样调用EXEmainFrame中的一个函数
- 初学者简单问题,占用高手一分钟。
- 重叠I/O,完成端口发送问题
- 谁有用vc作文本型数据库用于pda的,支持inner join的
- 远程访问的问题
- 请问P2P的程序是如何做的?原理是什么,为什么不在统一网段里的机器可以直接用TCP直接连接,是否中间有一个中转服务器?
- 请问vc中如何设置应用程序的输入参数?
- 请问,我如何向VC添加自己的库文件
- 怎样让对话框显示的时候隐藏掉下面一部分
- CEdit::GetWindowText无法获取文本框输入,文本框里面有数据,但获取的是空字符串
- 同样的OpenGL程序代码,换了台电脑就不显示纹理了...
2、如果是不同程序,必须修改目标进程的IAT表。
3、如果上述情况没有出现,可以单步调试代码查看具体原因。
你HOOK这个API 修改了本DLL符号表中TextOutA的地址 定向到MyTextOutA
如果MyTextOutA也在这个DLL中 你想调用原来TextOutA
应用GetProcAddress来得到真实地址来调用.
如我说的不对,请指正..