12558网页游戏私服论坛

 找回密码
 立即注册
游戏开服表 申请开服
游戏名称 游戏描述 开服状态 游戏福利 运营商 游戏链接
攻城掠地-仿官 全新玩法,觉醒武将,觉醒技能 每周新区 经典复古版本,长久稳定 进入游戏
巅峰新版攻 攻城掠地公益服 攻城掠地SF 新兵种、新武将(兵种) 进入游戏
攻城掠地公 散人玩家的天堂 新开 进入游戏
改版攻城掠 上线即可国战PK 稳定新区 全新改版,功能强大 进入游戏
少年江山 高福利高爆率 刚开一秒 江湖水落潜蛟龙 进入游戏
太古封魔录 开服送10亿钻石 福利多多 不用充钱也可升级 进入游戏
神魔之道 签到送元宝 稳定开新区 送豪华签到奖励 进入游戏
神奇三国 统帅三军,招揽名将 免费玩新区 激情国战,征战四方 进入游戏
龙符 三日豪礼领到爽 天天开新区 助你征战无双 进入游戏
王者之师 免费领豪华奖励 免费玩新区 6元送6888元宝 进入游戏
查看: 266|回复: 0

修改EIP过游戏内存完整性检查

[复制链接]

312

主题

312

帖子

634

积分

实习版主

Rank: 7Rank: 7Rank: 7

积分
634
发表于 2021-2-19 17:01:55 | 显示全部楼层 |阅读模式
在修改某游戏的时间碰到一修改游戏代码就崩溃的情况,缘故原由是游戏有完整性检测(integrity checks),找到一个过检测的方法, 给大家分享下.

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

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


这里使用CRC算法来举例子

.
1.先看下常用的hook方式怎样触发检测,
直接跳到第二关,用CE找到修改health值的代码是Tutorial-i386.exe+2578F - 29 83 AC040000        - sub [ebx+000004AC],eax
用ce的自动汇编举行代码注入天生脚本来尝试修改 [ebx+000004AC]的值



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


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


手动修改EIP


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


2.手动在 Tutorial-i386.exe+2578F 下断点, 修改EIP到申请到的地点(newmem, 我这里是 `001a0000` )



修改完执行, [ebx+000004AC] 的值成功被修改为 9999。并且未触发检测
明白了思路, 每次手动操作显然不方便, 下面看下自动化

自动化


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


2.在Tutorial-i386.exe+2578F 地点上右键 -> Change register at this location -> 把EIP的值修改成上面申请的地点(001A0000)


这里自动化了手动修改EIP的操作, ce会在此处下断点,然后修改EIP的值到目标地点, 也可改变其他寄存器和标志位的值,
这样功能实现了, 但每次重开还是要手动操作一遍步骤

方法二、使用自动汇编脚本实现整个流程
1.  先看下几个用到的CEAA函数, 在资助文档或wiki可以找到具体使用方法

  • getAddress - 获取符号(使用registersymbol注册)地点
  • reinitializeSymbolhandler - 重新加载符号, 可以避免一些符号找不到的错误
  • debugProcess - 启动调试器
  • debug_setBreakpoint - 设置断点
  • debug_removeBreakpoint - 移除断点
  • autoAssemble - 执行一段自动汇编文本


2.上码,


来源:http://www.12558.net
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
楼主热帖
回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|12558网页游戏私服论坛 |网站地图

GMT+8, 2024-5-20 03:52 , Processed in 0.138672 second(s), 31 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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