FARPROC pfnOrig=GetProcAddress(GetModuleHandle("hello.dll"),"HelloWorld");
FARPROC pfnOrig2=GetProcAddress(GetModuleHandle("hook.dll"),"great");
知道了函数的地址
VirtualProtect修改了属性 用WriteProcessMemory改写了地址
但是为什么调用dll时 还是HelloWorld 而不是great???
FARPROC pfnOrig2=GetProcAddress(GetModuleHandle("hook.dll"),"great");
知道了函数的地址
VirtualProtect修改了属性 用WriteProcessMemory改写了地址
但是为什么调用dll时 还是HelloWorld 而不是great???
解决方案 »
- 有懂的没?帮我看看
- 【给 颦儿 拉票】-- 颦儿参加天涯社区09年月历天使拉票贴
- 如何为自己开发的Activex控件添加许可证啊?
- 为何我下载的WTL源代码,用vc7.1编译都会 提示“无法打开包含文件:atlapp.h”这类的错,是否使用WTL还得下载额外的库?
- 需要按下和弹起两种状态的按钮,怎样做?
- 在向DHTML中加入flash文件时,如何取得其大小?
- 在vc中怎么把wav转换成MP3格式
- 调试vc程序时,能够在watch框中看见当前变量的值,请问这是怎样做的,谢谢!
- boost::thread 添加后程序无法正常启动
- 请问诸如oicq之类的客房户端软件在登录到服务器之后socket是保持常连接吗?
- 位图转矢量图
- 非模态对话框 toolbar的状态怎么更新
FARPROC pfnOrig=GetProcAddress(GetModuleHandle("hello.dll"),"HelloWorld");
FARPROC pfnOrig2=GetProcAddress(GetModuleHandle("fuck.dll"),"great");
DWORD dwOldProtect;
if (VirtualProtect(pfnOrig, sizeof(pfnOrig2), PAGE_WRITECOPY,
&dwOldProtect)) { WriteProcessMemory(GetCurrentProcess(), pfnOrig, pfnOrig2,
sizeof( pfnOrig2), NULL);
VirtualProtect( pfnOrig,sizeof( pfnOrig2), dwOldProtect,
&dwOldProtect);
}
这种函数“替换”可以使用detours来完成。
那么这个如何改呢?
detours 知道但是我想自己学一下啊
昨天的问题谢谢了 结贴了
微软的叫detours