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


相关推荐

  • 我的世界全自动刷矿机_我的世界服务器刷物资

    我的世界全自动刷矿机_我的世界服务器刷物资我的世界游戏中玩家可以操作一个建筑工人通过各种方块的摆放和破坏,来建造一个自己的世界,其中矿石的作用在游戏中是非常重要的,本次带来的我的世界刷矿机MOD就可以帮助玩家刷出的石头的同时有一定的几率变为各种矿石,助您轻松获取矿石资源!MOD功能当刷石机刷出石头后,石头有一定几率变成钻石、青金石、黄金、铁、红石矿石。使用方法MOD适用于游戏版本v1.12.2,需要Forge14.23.5.2768安装…

    2022年9月30日
  • android performClick使用

    android performClick使用performClick是使用代码主动去调用控件的点击事件(模拟人手去触摸控件)—————————————–booleanandroid.vi

    2022年7月4日
  • linux iostat 命令详解

    linux iostat 命令详解iostat主要用于监控系统设备的IO负载情况,iostat提供了丰富的参数给我们查询各种维度的io数据,iostat首次运行时显示自系统启动开始的各项统计信息,之后运行iostat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。一、命令相关参数命令使用:iostat[-c][-d][-N][-n][-h][-k|-m][-t][-V][-x][-y][-z][-j{ID|L

    2022年10月6日
  • python进制转换函数

    python进制转换函数一:二,八,十六进制转十进制注意2进制对应的数值范围只能是0和1,超过范围会报错,8进制和16进制同理。print(int(‘100′,2))#二进制转十进制,int(’20’,2)会报错print(int(’30’,8))#八进制转十进制,int(’80’,8)会报错print(int(‘f0’,16))#十六进制转十进制,int(‘g0’,16)会报错二:十进制转二进制、八进制、十六进制。内置函数bin、oct、hex得到的进制前面会分别带有’0b’,‘0o’,’0x’字符。

    2022年5月12日
  • python获取股票历史数据_量化交易之如何获取股票历史数据并存为csv

    python获取股票历史数据_量化交易之如何获取股票历史数据并存为csv量化研究尤其是进行基于价值投资的量化研究,需要上市公司的历史估值数据,如市盈率PE,市净率PB,或者市销率PS,市现率PCF。而有的人喜欢用exce或者csv文件的格式存放数据并且分析。我这里介绍一个网站,BaoStock,既支持直接下载历史数据为csv,也支持用程序下载数据并生成csv格式。网站地址是www.baostock.com,如果要下载历史估值数据,进入首页后,选择“沪深A股估值指标(日…

    2022年6月24日
  • webstorm 激活码【中文破解版】

    (webstorm 激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月21日

发表回复

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

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