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(易语言高级部分)相关推荐

  1. 易语言mysql清空一个表_易语言高级表格清空.doc

    易语言高级表格清空 篇一:表格高级实用实解 1.编辑技巧 2.单元格内容的合并 3.条件显示 4.自定义格式 5.绘制函数图象 6.自定义函数 7.矩阵计算 8.自动切换输入法 9.批量删除空行 10 ...

  2. Windows Hook 易语言核心编程勾子基本理念

    前言    以前我非常沉迷入黑客,每每看着高手们发到网上的攻击检测程序 心中那个羡慕啊,要是那天我也能写出这样的程序该多好啊 可是,我也就只有羡慕的份,谁叫自己不懂英语呢,又没有中文的编程语言 直到有 ...

  3. 易语言高级表格写入MYSQL_易语言数据库与高级表格思路分析.doc

    易语言数据库与高级表格思路分析 篇一:易语言数据库操作指南 易语言数据库操作指南 一.易语言操作Access数据库 前面我们已经对比分析过易语言所支持的几种常见数据库,在这几种数据库中,我们先来学习一 ...

  4. 易语言反截图_易语言高级截图-无视遮拦源码

    .版本 2 .子程序 窗口截图, 字节集, 公开, 截取指定窗口的24位图,可截取窗口中指定区域,最小化窗口或不可见窗口无法截取位图 .参数 窗口句柄, 整数型, , 欲截取窗口图片的窗口句柄 .参数 ...

  5. 易语言mysql怎么写字段值_易语言数据库怎么加字段 数据库添加字段说明

    易语言将access数据库作为数据源怎么添加记录到access? .版本 2 .支持库 eDB 数据库连接1.连接Access (取运行目录 () + "数据库名称", " ...

  6. 易语言调试工具 code by:↖星空·之上↗ Ver:2.0 (2017/5/28更新)

    目前测试了win7 32 64位可以使用,win10右键以管理员身份运行. 支持Hook易语言静态编译和非静态编译的程序! 注意:XP不兼容,不能用.   Ver1.1 (17:12 2017/4/2 ...

  7. 易语言中文编程·从入门到精通

    下载地址:网盘下载 内容简介: "易语言"功能强大,资源丰富,是广大编程爱好者的最理想的选择.书中全面.详细介绍了易语言的使用方法,内容详实.通俗易懂.结构清晰.循序渐进.图文并茂 ...

  8. python代替易语言_基于hook的python机器人,彻底取代itchat

    本文档部分由itchat与wxpy的开发文档修改得出 禁止不规范转载 WechatBot WechatBot是一个半开源的微信个人号接口,使用python调用微信从未如此简单. 使用不到20行的代码, ...

  9. 易语言API Hook SetWindowTextA

    我们知道SetWindowTextA这个API的作用是设置窗口标题,当我们调用这个接口的时候,换成我们的函数,本课没有做注入DLL调用,而是在一个测试文件里做了演示. SetWindowTextA . ...

最新文章

  1. Struts工作原理
  2. oracle 创建触发器_oracle创建触发器
  3. sql server cvs 导入
  4. Linux驱动模型解析bus之platform bus
  5. API章节--第四节包装类总结
  6. 控制理论个人学习笔记-非线性系统理论
  7. 抽帧定格动画如何制作?AE制作哈利波特定格动画教程
  8. django慢学日常
  9. IBM智慧商务 - IBM和SugarCRM携手提供全方位渠道客户体验
  10. VirtualBox下Windows和Ubuntu的文件夹共享
  11. 关于T51的25C°电池曲线合成(MTK)
  12. Windows系统文件类型大全
  13. 数学与计算机科学虎扑,北大数学系在国内是最顶级存在吗?
  14. Golang程序调试 -- 内存泄漏pprof工具
  15. (转载)使用Perl编写协议分析脚本
  16. Clojure CLR 入门
  17. 上海邮政EMS海关清关(个人) 流程
  18. 微信公众号用户授权登录逻辑
  19. 零基础怎样系统的学习Python
  20. ios 7 Launch Images改变屏幕尺寸

热门文章

  1. Android 微信分享图片(好友和朋友圈)
  2. 【冷收藏】那些我们不知道的超有趣网站
  3. 转一篇详细的pkt文件的说明文档
  4. 技术文档:航顺芯片,航顺MCU,电机驱动方案“冰箱变频控制板”,扫地机器人,吊扇灯控制板,电钻控制板,方案应用分享
  5. YUV转RGB--使用MMX和CUDA优化
  6. 基理科技 无法连接远程服务器,可远程监控的用于设备使用授权控制的网络终端设备专利_专利查询 - 天眼查...
  7. 蜻蜓Q旗舰-含蜻蜓Q开源版系列数据字典发布-一颗优雅草科技3月15日更新发布-本文持续更新
  8. uni-app入门:WXML数据绑定
  9. 企业如何规划直播带货?
  10. 数据库分区、分表、分库