HOOK api readprocessmemory and writeprocessmemory
编译环境: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 readprocessmemory and writeprocessmemory相关推荐
- Ring3下Inline Hook API
用CreateFile为例子,讲解一下Ring3下的Inline Hook API,基本原理很简单 1.获取CreateFile函数的地址 2.读取CreateFile函数的前8个字节 3.将Crea ...
- 汇编Ring 3下实现 HOOK API
[文章标题]汇编ring3下实现HOOK API [文章作者]nohacks(非安全,hacker0058) [作者主页]hacker0058.ys168.com [文章出处]看雪论坛(bbs.ped ...
- Windows下Hook API技术小结 (转)
1.基本概念 钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的.当消息到达后,在目标窗口处理函数之前 ...
- [检测过检测] 重写 ReadProcessMemory 、WriteProcessMemory
一.本文大纲 系统调用的两种方式:中断门和快速调用 _KUSER_SHARED_DATA 结构 使用 cpuid 指令判断当前CPU是否支持快速调用 3环进0环需要更改的4个寄存器 以 ReadPro ...
- Windows下Hook API技术
Windows下Hook API技术 什么叫Hook API?所谓Hook就是钩子的意思,而API是指Windows开放给程序员的编程接口,使得在用户级别下可以对操作系统进行控制,也就是一般的应用程序 ...
- 西裤哥的 Hook Api Lib 0.2 For C
标 题: [分享]西裤哥的 Hook Api Lib 0.2 For C 作 者: 海风月影 时 间: 2007-03-21,15:11:30 链 接: http://bbs.pediy.com/sh ...
- 关于HOOK API Lib 0.1 For Delphi
标 题: HOOK API Lib 0.1 For Delphi 作 者:xIkUg my周未一个朋友要求用Delphi做了一个东西,用到了API HOOK,于是写了个简单的 SetOnBefore把 ...
- 通过Hook API调用打造进程监控程序
*(收藏)http://hi.baidu.com/linuxetc/blog/item/1b91c813b017e4035baf53a7.html Hook(钩子)是Windows消息处理过程中的一个 ...
- 从龙之谷双开领悟出的——HOOK API
第一部分--限制程序多开方法 这里有一篇文章讲得很详细了,http://wenku.baidu.com/view/ac9d0215a2161479171128af.html 龙之谷使用的是互斥体方法, ...
最新文章
- 三维重建【二】————3D reconstruction 较为实用的算法资料整理(传统方式)
- java app上传图片接口_接口app 接口中上传 图片
- LP Wizard 10.5破解步骤
- matlab相语法,学会System Generator(10)——支持的MATLAB语法
- wdm设备驱动程序开发pdf_DWDM是什么 DWDM相关设备功能介绍【图文】
- bzoj2460 [BeiJing2011]元素 贪心+线性基
- python求立方尾不变_蓝桥杯—立方尾不变,有些数字的立方的末尾正好是该数字本身...
- 嵌入式系统——RS232和RS449
- 娱乐先锋点歌系统服务器,娱乐先锋 K-LIVE 单机版安装和加歌说明.doc
- 系统架构之服务器架构图
- 已在此计算机上安装相同或更高版本的 .NET Framework 4”安装报错问题
- 提交表单时,请求的资源[/222/getServlet]不可用(已解决)
- 云队友丨盘点,到底盘什么?
- 第四章 函数式编程(Lambda表达式Stream流)
- P、NP、NPC问题
- 手把手教你学AltiumDesigner之新建元件封装库
- 美国大学计算机专业排名2014,2014年USNews美国大学计算机专业研究生排名
- Python全局变量的隐藏“窍门”
- Source Insight 最新版本
- 数据结构自学笔记二、栈