Detours hook C库函数的问题(在线等) 我现在可以实现对win32 api的hook但是对于C语言的库函数的hook 比如 strcpy scanf 等等的hook出现了问题还是像hook api 那样子写么?还是有些别的写法??? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 strcpy,scanf是在msvcrt.dll里的,你的代码是怎么写的。 我觉得不能hook住C库中的函数。API提供被hook的功能是因为API在设计之初已经这样做了,留了被hook的功能。除非你自己重新修改一下C库,加入可以被hook的功能,再重新编译。 我是把hook的代码封装成dll然后char *(__cdecl *Sysstrcpy)( char *strDestination, const char *strSource )=strcpy;char * __cdecl Hookstrcpy( char *strDestination, const char *strSource ){ LPVOID check = TlsGetValue(id); if(check==false) { TlsSetValue(id,(LPVOID)true); fprintf(p,"strcpy\n"); fprintf(q,"(char *,char *)=(%s,%s)\n",strDestination,strSource); TlsSetValue(id,(LPVOID)false); } return Sysstrcpy(strDestination,strSource);}在函数入口和出口分别DetourAttach(&(PVOID &)Sysstrcpy,Hookstrcpy);DetourDetach(&(PVOID &)Sysstrcpy,Hookstrcpy);再添头文件<string.h>再主程序里面用DetourCreateProcessWithDll打开并注入dll的你说strcpy是msvcrt.dll里的,那能不能先LoadLibrary(msvcrt.dll);然后通过GetProcAddress获得strcpy的地址,然后硬编码实现? 可是Detours库可以hook自己写的函数。 如何开始学习网页制作? 声音延时问题 CSOCKET的UDP框架如何获得客户端的IP和端口 招聘C++/VC专、兼职培训教师,感兴趣者请进-- 如果实现利用鼠标拖动图形进行平移? CComboBox怎么实现item的width的autosize? 急!!!判断消息响应函数结束的方法???谢谢 求急! 请教一个动态连接库的问题? 程序执行时,如何得到他自己的路径,GetCurrentDirectory不行(此程序由其他程序启动) 怎么在CDOC类里画带颜色的图? Windows程序设计 获取环境变量字符串问题
API提供被hook的功能是因为API在设计之初已经这样做了,留了被hook的功能。
除非你自己重新修改一下C库,加入可以被hook的功能,再重新编译。
char *(__cdecl *Sysstrcpy)( char *strDestination, const char *strSource )=strcpy;char * __cdecl Hookstrcpy( char *strDestination, const char *strSource )
{
LPVOID check = TlsGetValue(id);
if(check==false)
{
TlsSetValue(id,(LPVOID)true);
fprintf(p,"strcpy\n");
fprintf(q,"(char *,char *)=(%s,%s)\n",strDestination,strSource);
TlsSetValue(id,(LPVOID)false);
} return Sysstrcpy(strDestination,strSource);
}在函数入口和出口分别
DetourAttach(&(PVOID &)Sysstrcpy,Hookstrcpy);
DetourDetach(&(PVOID &)Sysstrcpy,Hookstrcpy);
再添头文件<string.h>
再主程序里面用DetourCreateProcessWithDll打开并注入dll的你说strcpy是msvcrt.dll里的,那能不能先LoadLibrary(msvcrt.dll);
然后通过GetProcAddress获得strcpy的地址,然后硬编码实现?
可是Detours库可以hook自己写的函数。