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


相关推荐

  • XGBOOST + LR 模型融合 python 代码

    XGBOOST + LR 模型融合 python 代码XGBOOST+LR(XGBOOSTgridsearch)先留个广告,最近做一个数据挖掘的比赛,主要用的就是xgboost,等比赛完后年前好好整理代码开源,到时候代码会比下面整份完整。XGBOOST+LR是CTR常用的一种方式。下面是实现XGBOOST+LR的代码,具体的原理不做细说。有了下面的代码框架,你可以对xgboost进行参数优化搜索,同时可以利用

    2022年10月13日
    2
  • connectionStrings 配置

    connectionStrings 配置DataSource=192.168.1.1;InitialCatalog=room;PersistSecurityInfo=True;UserID=root;Password=***;Pooling=False;charset=utf8;MAXPoolSize=2000;MinPoolSize=1;ConnectionLifetime=30;转载于:https://www….

    2022年5月11日
    37
  • 手把手包教会_手把手地教是什么意思

    手把手包教会_手把手地教是什么意思文章目录前言?往期知识点Selenium简介1.1,组件1.2,特点前言Selenium是一个用于web自动化测试的框架,在使用Ajax请求数据的页面中,会出现sign,token等密钥,如果考虑去激活成功教程可能花费的精力较多,所以考虑借助使用Selenium框架来实现数据爬取。?往期知识点?往期内容回顾?python教程】保姆版教使用pymysql模块连接MySQL实现增删改查?python+requests+BeautifulSoup实现对数据保存到mysql数据库?sele

    2022年10月20日
    3
  • SSM整合案例(超详细)「建议收藏」

    SSM整合案例(超详细)「建议收藏」SSM整合案例(超详细)环境准备前提须知创建数据库和表结构创建Maven工程ssm导入坐标并建立依赖编写实体类编写持久层接口编写业务层接口编写业务层实现类编写Controller整合步骤保证Spring框架在web工程中独立运行第一步:编写spring配置文件并导入约束第二步:使用注解配置业务层第三步:导入log4j.properties配置文件第四步:测试spring能否独立运行保证SpringMVC在web工程中独立运行第一步:在web.xml中配置核心控制器(Dis

    2022年4月28日
    103
  • PAT乙级题目答案汇总 PAT (Basic Level) Practice (中文)[通俗易懂]

    PAT乙级题目答案汇总 PAT (Basic Level) Practice (中文)[通俗易懂]题目列表:标号题目链接分数博客链接完成时间1001害死人不偿命的(3n+1)猜想151001害死人不偿命的(3n+1)猜想(15分)2020/8/01

    2022年5月29日
    38
  • Android与服务端使用Https加密通信

    Android与服务端使用Https加密通信

    2022年3月7日
    47

发表回复

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

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