Windows Hook Api
2017-12-14 21:25
316 查看
今天在写Hook ws2_32 的函数send的时候,发现总是让程序崩溃,
崩溃的时候程序的崩溃点总是在ws2_32的模块中,最后发现在调用Hook函数时候,我进行了还原,
还原的保护代码是PAGE_READWRITE,这样子导致其他线程在执行对应的地址代码产生了一个执行错误的代码!
哎,太久没有使用逆向了,导致就生疏了!
具体原因是:
VirtualProtect ( pOldFunEntry, 5, PAGE_READWRITE, &dwProtect ); //这里程序调用了还原模块的代码,因为这里PAGE_READWRITE调用修改了页面地址的属性,
//如果这个地址有其他地方需要执行会导致产生一个执行页面中断错误
...........进行一些的执行
VirtualProtect ( pOldFunEntry, 5, dwProtect, NULL ) ;//最后还原原来的地址代码属性
//改成如下即可:
VirtualProtect ( pOldFunEntry, 5, PAGE_EXECUTE_READWRITE, &dwProtect );
VirtualProtect ( pOldFunEntry, 5, dwProtect, NULL ) ;
崩溃的时候程序的崩溃点总是在ws2_32的模块中,最后发现在调用Hook函数时候,我进行了还原,
还原的保护代码是PAGE_READWRITE,这样子导致其他线程在执行对应的地址代码产生了一个执行错误的代码!
哎,太久没有使用逆向了,导致就生疏了!
具体原因是:
VirtualProtect ( pOldFunEntry, 5, PAGE_READWRITE, &dwProtect ); //这里程序调用了还原模块的代码,因为这里PAGE_READWRITE调用修改了页面地址的属性,
//如果这个地址有其他地方需要执行会导致产生一个执行页面中断错误
...........进行一些的执行
VirtualProtect ( pOldFunEntry, 5, dwProtect, NULL ) ;//最后还原原来的地址代码属性
//改成如下即可:
VirtualProtect ( pOldFunEntry, 5, PAGE_EXECUTE_READWRITE, &dwProtect );
VirtualProtect ( pOldFunEntry, 5, dwProtect, NULL ) ;
相关文章推荐
- HOOK WINDOWS API 一例
- Windows 平台下 Api的拦截(hook)
- Windows API Hook
- 关于windows下hook api的思考
- 有关Windows平台下Hook一些系统API技术方案的考虑
- Windows HOOK API (二)
- Windows HOOK API (二)
- windows api hook
- WINDOWS API HOOK
- WindowsHookApi实例
- Windows下Hook API技术 inline hook
- Windows API HOOK
- windows下面hook系统api实现禁止任务管理器关闭程序
- Windows下Hook API技术 inline hook
- Windows API Hook
- 好书推荐:《Windows API HOOK & Rootkits资料大全》补充1
- WindowsHookApi实例
- Windows API Hook
- Windows API Hook 的一些小细节
- windows-API劫持(API-HOOK)