吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8959|回复: 18
收起左侧

[调试逆向] 修改EIP过游戏内存完整性检查

  [复制链接]
yyltwin 发表于 2020-5-28 16:54
本帖最后由 yyltwin 于 2020-5-28 17:05 编辑

在修改某游戏的时候遇到一修改游戏代码就崩溃的情况,原因是游戏有完整性检测(integrity checks),找到一个过检测的方法, 给大家分享下.

思路: hook时修改EIP寄存器的值来执行自己的代码

例子程序:CE自带的新手教程程序

这里使用CRC算法来举例子
.
1.先看下常用的hook方式如何触发检测,
直接跳到第二关,用CE找到修改health值的代码是Tutorial-i386.exe+2578F - 29 83 AC040000        - sub [ebx+000004AC],eax
用ce的自动汇编进行代码注入生成脚本来尝试修改 [ebx+000004AC]的值
q.png

1

1


2.在论坛找了一段crc检测的代码, 来检查 Tutorial-i386.exe+2578F 开始,向后20个字节的内存

2

2


3.启动第一步的脚本, 发现脚本会修改 Tutorial-i386.exe+2578F 处的字节码 , jmp到自己申请的内存, 执行后再跳回被hook地址的下一条,
因为这里修改了被检测的处的内存, 所以会触发检测,控制台输出;
q.png

手动修改EIP

1. 我们先将自己的汇编代码注入到进程中, 但是不改变 Tutorial-i386.exe+2578F 地址处的字节码, 将脚本稍作修改;
q.png

2.手动在 Tutorial-i386.exe+2578F 下断点, 修改EIP到申请到的地址(newmem, 我这里是 `001a0000` )
q.png
q.png
q.png
修改完执行, [ebx+000004AC] 的值成功被修改为 9999。并且未触发检测
明白了思路, 每次手动操作显然不方便, 下面看下自动化

自动化


方法一、
1.首先还是要将自己的代码注入到进程中, 不修改Tutorial-i386.exe+2578F 地址处的字节码, 直接执行这段脚本申请地址
153709hvmzoxzyby7gcgkl.png

2.在Tutorial-i386.exe+2578F 地址上右键 -> Change register at this location -> 把EIP的值修改成上面申请的地址(001A0000)
q.png
q.png
这里自动化了手动修改EIP的操作, ce会在此处下断点,然后修改EIP的值到目标地址, 也可改变其他寄存器和标志位的值,
这样功能实现了, 但每次重开还是要手动操作一遍步骤

方法二、使用自动汇编脚本实现整个流程
1.  先看下几个用到的CEAA函数, 在帮助文档或wiki可以找到具体使用方法
  • getAddress - 获取符号(使用registersymbol注册)地址
  • reinitializeSymbolhandler - 重新加载符号, 可以避免一些符号找不到的错误
  • debugProcess - 启动调试器
  • debug_setBreakpoint - 设置断点
  • debug_removeBreakpoint - 移除断点
  • autoAssemble - 执行一段自动汇编文本


2.上码,
q.png

免费评分

参与人数 5威望 +1 吾爱币 +23 热心值 +4 收起 理由
Hmily + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
冥界3大法王 + 1 良心教程
编程破解员 + 1 + 1 谢谢@Thanks!
laodan + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
tony198911 + 1 + 1 鼓励转贴优秀软件安全工具和文档!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Avenshy 发表于 2020-5-28 17:54
学习就完事了
编程破解员 发表于 2020-5-28 18:36
嘿尼玛 发表于 2020-5-28 19:45
 楼主| yyltwin 发表于 2020-5-28 20:08
嘿尼玛 发表于 2020-5-28 19:45
就是用硬断来修改寄存器吗?

是的.....
MC阿虎 发表于 2020-5-28 22:19
打卡学习中
65302666 发表于 2020-5-29 03:52
没法处理CRC前提下 只好使用4个硬断了
黄河大鲤鱼 发表于 2020-5-29 09:52
每个字和字母我都认得,就是合起来看不懂
HY928 发表于 2020-5-29 10:17
感谢分享 很有帮助
langren425 发表于 2020-5-29 10:20
感谢大神分享经验
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-3-28 18:16

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表