HOOK(易语言高级部分)
Hook
API_HOOK核心代码
这里时绝对跳转 FF,同进程不用修改内存属性?
没有修改内存属性,照样可行
HOOK同进程MessageBoxA
未HOOK前 MessageBoxA
HOOK后 MessageBoxA
我们正好把这7个字节改了.
mov eax,0x401A5F
jmp eax
类_InlineHook
这个类比先那个类要高级点,还可以调用原函数,和远程进程
整体思路
这个就是利用相对跳转。E9
修改被hook代码,执行相对跳转 到我们的代码,我们的代码也可通过私有_新函数地址继续执行原先代码,也可不执行。
下图中的jmp是是跳到我们的函数
这里是私有_新函数地址 保留的代码,从图中看可以继续跳到原先代码执行.
关于堆内存
例如建立一个文本变量A,你用HEAPALLOC申请内存,赋值给A后,当A进行下一次重新赋值时会自动调用HEAPFREE来释放之前的堆内存,易语言对文本、字节集等变量在堆上赋值时会自动调用HEAPFREE清空之前的堆内存,所以你不用管这个变量的堆内存,不管这个变量赋值多少次,在下次赋值时都会进行这个操作,所以不会有内存泄露。
http://bbs.eyuyan.com/read.php?tid=374658&page=3
关于函数参数
例如易语言在调用含自定义结构体的API时会先在堆上申请内存然后将自定义结构体转为字节集,然后再传入字节集的地址进栈里再调用这个API,调用完后再对着这个结构体将字节集的数据一个个填写进去。
还有一个更明显的例子就是易语言调用子程序时如果用的是“XXX子程序()”的形式来调用(我想大部分都是这样),那么当子程序里有文本、字节集、数组、自定义结构体之类的参数时,那么传入进栈里的是指针的指针,对于文本和字节集参数来说传入的就是“取变量地址()”而非“取变量数据地址”,用“&”取到的子程序地址并不是真正的子程序地址,而只是一个外壳地址,这个外壳地址在平时是不起作用的(你可以在OD里对这个地址下断,调用子程序时会发现OD根本不会断下来),一般是在做回调函数的时候才会起作用,例如APIHOOK的时候就会用到“&”取到得子程序外壳地址做回调函数,这个外壳的作用就是将传入的数据------数据的指针
变为指针的指针。
http://bbs.eyuyan.com/read.php?tid=374957&page=1
这也就解释了,因为多了一层中间指针
第一次eax 取的是中间指针,第二次取得才是实际地址,具体过程如下
主要在图中标记第二步骤
关于JMP
0xFF JMP 远跳 eax取值
0xE8 CALL 后面的四个字节是地址
0xE9 JMP 后面的四个字节是偏移 RVA = 目标地址-(指令所在地址+指令长度)
0xEB JMP 后面的二个字节是偏移 负数补码 比如F9是EIP向前移动7个字节
"减一取反"和"取反加一"等价
已知补码求源码也可取反 + 1,分正数和负数,负数的补码= 正数 取反 + 1
补码的补码是原码
总结
HOOK 很好很强大.
HOOK(易语言高级部分)相关推荐
- 易语言mysql清空一个表_易语言高级表格清空.doc
易语言高级表格清空 篇一:表格高级实用实解 1.编辑技巧 2.单元格内容的合并 3.条件显示 4.自定义格式 5.绘制函数图象 6.自定义函数 7.矩阵计算 8.自动切换输入法 9.批量删除空行 10 ...
- Windows Hook 易语言核心编程勾子基本理念
前言 以前我非常沉迷入黑客,每每看着高手们发到网上的攻击检测程序 心中那个羡慕啊,要是那天我也能写出这样的程序该多好啊 可是,我也就只有羡慕的份,谁叫自己不懂英语呢,又没有中文的编程语言 直到有 ...
- 易语言高级表格写入MYSQL_易语言数据库与高级表格思路分析.doc
易语言数据库与高级表格思路分析 篇一:易语言数据库操作指南 易语言数据库操作指南 一.易语言操作Access数据库 前面我们已经对比分析过易语言所支持的几种常见数据库,在这几种数据库中,我们先来学习一 ...
- 易语言反截图_易语言高级截图-无视遮拦源码
.版本 2 .子程序 窗口截图, 字节集, 公开, 截取指定窗口的24位图,可截取窗口中指定区域,最小化窗口或不可见窗口无法截取位图 .参数 窗口句柄, 整数型, , 欲截取窗口图片的窗口句柄 .参数 ...
- 易语言mysql怎么写字段值_易语言数据库怎么加字段 数据库添加字段说明
易语言将access数据库作为数据源怎么添加记录到access? .版本 2 .支持库 eDB 数据库连接1.连接Access (取运行目录 () + "数据库名称", " ...
- 易语言调试工具 code by:↖星空·之上↗ Ver:2.0 (2017/5/28更新)
目前测试了win7 32 64位可以使用,win10右键以管理员身份运行. 支持Hook易语言静态编译和非静态编译的程序! 注意:XP不兼容,不能用. Ver1.1 (17:12 2017/4/2 ...
- 易语言中文编程·从入门到精通
下载地址:网盘下载 内容简介: "易语言"功能强大,资源丰富,是广大编程爱好者的最理想的选择.书中全面.详细介绍了易语言的使用方法,内容详实.通俗易懂.结构清晰.循序渐进.图文并茂 ...
- python代替易语言_基于hook的python机器人,彻底取代itchat
本文档部分由itchat与wxpy的开发文档修改得出 禁止不规范转载 WechatBot WechatBot是一个半开源的微信个人号接口,使用python调用微信从未如此简单. 使用不到20行的代码, ...
- 易语言API Hook SetWindowTextA
我们知道SetWindowTextA这个API的作用是设置窗口标题,当我们调用这个接口的时候,换成我们的函数,本课没有做注入DLL调用,而是在一个测试文件里做了演示. SetWindowTextA . ...
最新文章
- Struts工作原理
- oracle 创建触发器_oracle创建触发器
- sql server cvs 导入
- Linux驱动模型解析bus之platform bus
- API章节--第四节包装类总结
- 控制理论个人学习笔记-非线性系统理论
- 抽帧定格动画如何制作?AE制作哈利波特定格动画教程
- django慢学日常
- IBM智慧商务 - IBM和SugarCRM携手提供全方位渠道客户体验
- VirtualBox下Windows和Ubuntu的文件夹共享
- 关于T51的25C°电池曲线合成(MTK)
- Windows系统文件类型大全
- 数学与计算机科学虎扑,北大数学系在国内是最顶级存在吗?
- Golang程序调试 -- 内存泄漏pprof工具
- (转载)使用Perl编写协议分析脚本
- Clojure CLR 入门
- 上海邮政EMS海关清关(个人) 流程
- 微信公众号用户授权登录逻辑
- 零基础怎样系统的学习Python
- ios 7 Launch Images改变屏幕尺寸
热门文章
- Android 微信分享图片(好友和朋友圈)
- 【冷收藏】那些我们不知道的超有趣网站
- 转一篇详细的pkt文件的说明文档
- 技术文档:航顺芯片,航顺MCU,电机驱动方案“冰箱变频控制板”,扫地机器人,吊扇灯控制板,电钻控制板,方案应用分享
- YUV转RGB--使用MMX和CUDA优化
- 基理科技 无法连接远程服务器,可远程监控的用于设备使用授权控制的网络终端设备专利_专利查询 - 天眼查...
- 蜻蜓Q旗舰-含蜻蜓Q开源版系列数据字典发布-一颗优雅草科技3月15日更新发布-本文持续更新
- uni-app入门:WXML数据绑定
- 企业如何规划直播带货?
- 数据库分区、分表、分库