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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • echarts 图表_ECHARTS

    echarts 图表_ECHARTS旭日图(Sunburst)由多层的环形图组成,在数据结构上,内圈是外圈的父节点。因此,它既能像饼图一样表现局部和整体的占比,又能像矩形树图一样表现层级关系。ECharts创建旭日图很简单,只需要在series配置项中声明类型为sunburst即可,data数据结构以树形结构声明,看下一个简单的实例:varoption={series:{type:’sunburst’,data:…

    2022年9月26日
    3
  • 服务器的文件不能修改器,荒野行动gg修改器脚本安装文件运行出错「建议收藏」

    服务器的文件不能修改器,荒野行动gg修改器脚本安装文件运行出错「建议收藏」PrivateDeclareFunctionCreateDirectoryLib”kernel32″Alias”CreateDirectoryA”(ByVallpPathNameAsString,lpSecurityAttributesAsSECURITY_ATTRIBUTES)AsLongPrivateTypeSECURITY_ATTRIBUTESnLengthAsLonglpSecurityD…

    2025年9月15日
    5
  • Apache配置虚拟主机_apache中配置虚拟主机的作用

    Apache配置虚拟主机_apache中配置虚拟主机的作用修改Apache的虚拟主机配置文件httpd-vhosts.conf,在文件的最后加上如下的代码:NameVirtualHost *:80    ServerNamea.com    DocumentRoot “E:\xampp\htdocs\a”    ServerName b.com    DocumentRoot “E:\xampp\

    2022年9月18日
    3
  • Spring中所使用的设计模式

    Spring中所使用的设计模式

    2021年4月10日
    145
  • 已知圆心及半径,通过MATLAB画圆「建议收藏」

    已知圆心及半径,通过MATLAB画圆「建议收藏」已知圆心及半径,使用MATLAB画圆文章目录已知圆心及半径,使用MATLAB画圆一、原理简介二、转换过程三、结果展示一、原理简介条件中已知圆的半径可以等价于极坐标系中的ρ,所以能根据已知的半径转换为直角坐标系中点的坐标来画圆。转换的原理是使用极坐标与直角坐标之间的转换公式来实现,公式如下:x=ρcosθy=ρsinθ二、转换过程主要分一下几步完成1.设置圆的一周由多少个点组成;2.设置圆周上点与点之间的间隔角度;3.设置圆心的坐标;4.读取半径值;5.求取X、Y轴坐标;6.画

    2022年6月19日
    40
  • 做网站-mysql表字段设计

    做网站-mysql表字段设计

    2021年10月31日
    37

发表回复

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

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