error at hooking api ntprotect_read,match and write

error at hooking api ntprotect_read,match and write 编译环境:delphi2010+windows7u,用途读取其他程序中readprocessmemory和writeprocessmemory的参数,但不知读取偏移即a+($b),b是怎么读的  一、用hook全局钩子线程钩子:已实现使用INLINEhookapi,CriticalSection临界区,dll分为动态loadlibry和静态加载问题1:对多线程目标

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

 编译环境:delphi 2010+windows 7 u ,用途读取其他程序中readprocessmemory和writeprocessmemory的参数,但不知读取偏移即a+($b),b是怎么读的

 

 一 、用hook全局钩子 线程钩子:已实现 使用INLINE hookapi,CriticalSection临界区,dll分为动态loadlibry和静态加载

问题1:对多线程目标程序HOOK 卸载时会出现错误,应该是线程不断读写内存函数READPROCESSMEMORY,但钩子正在卸载没有改回正确的地址就被目标程序读取,导致目标程序处理错误的API地址而出错,如果不是不停读写 卸载不会出现错误?不知是不是

问题2:使用INLINE HOOK目标程序多线程读取内存,程序在卸载钩子时有时会出错,可能跟问题一 一样。使用CreateRemoteThread远程注入是否会有此问题,应该没有吧!

问题3:自己的替代函数中使用记录日志可能不响应,为什么?

问题4:使用临界区后没出现EXPLORER的问题,也可能是逻辑代码问题,有待研究。

 

 

备注:

windows核心编程中的 IAT Hook 是否存在线程问题??

1 : Hook LoadLibrary*后, 若两线程同时调用LoadLibrary, 可能同时修改同一个模块的IAT表, 可能存在访问冲突(此问题可以用临界区解决)
2 : Hook LoadLibrary*后, 他对本进程所有模块的的IAT表都进行修改(使用WriteProcessMemory), 某线程可能此时访问正在被修改中的IAT表, 可能call 到其它地址去。(若真存在多线程问题, 此问题就有点麻烦)。似乎是说多线程下同时写入读写东西时,还没修复回IAI就被其他线程调用,程序会出错。

2009-10-0515:14:29

hook api

源码在此 !

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/194475.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • MQTTnet 实现MQTT 客户端和服务端「建议收藏」

    MQTTnet 实现MQTT 客户端和服务端「建议收藏」服务端:classProgram{privatestaticMqttServermqttServer=null;staticvoidMain(string[]args){MqttNetTrace.TraceMessagePublished+=MqttNetTrace_Trace…

    2022年6月25日
    80
  • hexo博客搭建及主题优化(二)

    hexo博客搭建及主题优化(二)crystalBlog上篇hexo博客搭建及主题优化(一)主题优化二21.网站log设置主题目录下的_config.yml配置文件中:#配置网站favicon和网站LOGO##本地#favicon:/favicon.png#logo:/medias/logo.png#此处我用的CDN,也可以使用本地文件favicon:https://cdn.jsdelivr.net/gh/guixinchn/image/blog/favicon.pnglogo:https://cdn

    2022年9月20日
    4
  • 在pycharm中导入torch_pycharm导入numpy出错

    在pycharm中导入torch_pycharm导入numpy出错安装好numpy之后,在pycharm运行以下程序importnumpyasnpa=np.arange(10)print(a)”出现运行程序出现错误:ImportError:Nomodulenamednumpy如图所示:解决方法:首先打开pycharm菜单栏File>>Settings…然后单击Project>>Project…

    2022年8月29日
    5
  • 成果被他人窃取_工作窃取模式

    成果被他人窃取_工作窃取模式什么是ForkJoin、ForkJoin分支合并、ForkJoin工作窃取、ForkJoin大数据求和计算什么是ForkJoin?ForkJoin:分支合并ForkJoin特点:工作窃取如何让使用ForkJoinForkJoin求和计算Demo什么是ForkJoin?ForkJoin(分支合并)是jdk1.7之后出来的,并行执行任务,提高效率,用在大数据量场景下。大数据:MapReduce(把大任务拆分成多个小任务,怎么拆分用到了二分算法),每个小任务得出自己的结果,之后再把结果汇总,汇总的过程就是

    2022年9月13日
    3
  • vue 高德地图标记_如何在vue里面调用高德地图「建议收藏」

    vue 高德地图标记_如何在vue里面调用高德地图「建议收藏」1.修改webpac.base.conf.js文件与module同一级添加externals:{‘AMap‘:‘AMap‘,‘AMapUI‘:‘AMapUI‘}配置。然后在index页面引入文件接着下载包vue-amap,然后在vue页面中importAMapfrom‘AMap‘//在使用地图的页面引入该组件varmapexportdefault{mounted:functio…

    2022年5月21日
    40
  • 简述vue和jquery的区别「建议收藏」

    简述vue和jquery的区别「建议收藏」⾸先呢jquery他是⽤js封装的⼀个类库,主要是为了⽅便操作dom元素,⽽vue他是⼀个框架,并且呢,他会从真实dom构建出⼀个虚拟的dom树,通过di!算法渲染只发⽣改变的dom元素,其他的相同的dom元素不⽤在重新渲染.⽽使⽤jquery去改变dom元素的时候,即使有相同的dom元素也会重新渲染,jq重点操作dom,而vue重点操作数据;简单的来说就是:jquery是通过使用选择器($)选取dom对象,进行dom对象的操作,实现数据操作;它

    2022年10月16日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号