12558网页游戏私服论坛

 找回密码
 立即注册
游戏开服表 申请开服
游戏名称 游戏描述 开服状态 游戏福利 运营商 游戏链接
攻城掠地-仿官 全新玩法,觉醒武将,觉醒技能 每周新区 经典复古版本,长久稳定 进入游戏
巅峰新版攻 攻城掠地公益服 攻城掠地SF 新兵种、新武将(兵种) 进入游戏
攻城掠地公 散人玩家的天堂 新开 进入游戏
改版攻城掠 上线即可国战PK 稳定新区 全新改版,功能强大 进入游戏
少年江山 高福利高爆率 刚开一秒 江湖水落潜蛟龙 进入游戏
太古封魔录 开服送10亿钻石 福利多多 不用充钱也可升级 进入游戏
神魔之道 签到送元宝 稳定开新区 送豪华签到奖励 进入游戏
神奇三国 统帅三军,招揽名将 免费玩新区 激情国战,征战四方 进入游戏
龙符 三日豪礼领到爽 天天开新区 助你征战无双 进入游戏
王者之师 免费领豪华奖励 免费玩新区 6元送6888元宝 进入游戏
三国霸业 战车-珍宝-觉醒-攻城掠地SF-全新玩法 免费玩新区 攻城掠地私服 进入游戏
手游私服盒子 各类免费游戏 0.1折送海量资源 各类手游私服 进入游戏
皇家MU2 《奇迹 2:传奇》韩国网禅公司《奇迹》正统续作。 3D锁视角Mmrpg 暗黑3+传奇+流放之路+奇迹 进入游戏
查看: 488|回复: 0

【原创】一个使用CE自动汇编的例子

[复制链接]

345

主题

345

帖子

700

积分

实习版主

Rank: 7Rank: 7Rank: 7

积分
700
发表于 2019-8-23 14:12:16 | 显示全部楼层 |阅读模式
一个使用CE 自动汇编的例子

工具说明:
Cheat Engine 6.8
MingW(gcc)
程序源码

说明:
程序分为两个部分,第一部分为CE获取变量地址,第二部分是将要注入代码的地方
#include int main(){        int index = 0;        char key  = 0;        printf("addr: 0x%x\n", &index);    // CE 获取变量地址        for (;;) {                printf("Test OutPut: %d\n", index);                key = getchar();                if (key == 'c') {                        break;                }                index++;        }        index = 0;    // 将要注入代码的地方        for (;;) {                Sleep(1000);                printf("Program OutPut: %d\n", index++);        }        return 0;}期待注入的效果

原程序的输出
Program OutPut 1Program OutPut 2Program OutPut 3..我期望它的输出
hello 4hello 5hello 6..调试过程

0x00

执行程序 test.exe

0x01

在CE中打开进程 test.exe

0x02

在CE输入0,点击新的扫描

0x03

程序中执行回车一次,并在CE中输入1,点击再次扫描,这个会得到变量index内存地址,应该与程序中的输出一致

0x04

在程序中输入 c 并执行回车,则会进入我们将要注入代码的地方。
0x05

将地址0x60FF1C,添加到地址列表中,并在其上右击选择找出是什么访问了这个地方,很快我们就会看到CE捕获到了对这个内存的读写操作,点击显示反汇编程序。

0x06

绿色那一行,便是我们要注入的地方(这块需要懂汇编)
选中绿色这行代码,在菜单中选择工具->自动汇编
在自动汇编窗口的菜单选择模板->代码注入,然后点击OK,CE会帮助我们自动生成一些代码


0x07

在原有的代码基础上更改将要注入的代码
alloc(newmem,2048)alloc(newstr,2048)label(returnhere)label(originalcode)label(exit)// 申请一段新的内存, 放置一个新的字符串newstr:db 'h'db 'e'db 'l'db 'l'db 'o'db ' 'db '%'db 'd'db 0Anewmem: //this is allocated memory, you have read,write,execute access// place your code here// 修改之后的代码push edx     // 参数二不进行修改push newstr  // 修改参数一, 字符串为"hello %d\n"call printforiginalcode:// 注释原代码//push edx//push test.exe+3041exit:jmp returnhere"test.exe"+13BF:// 修改代码注入的汇编, 主要是执行跳转, 去掉不必要的代码// jmp 5 byte, E9 [addr]jmp newmem// nop 1 byte, 0x90nopnopnopnopnopnopreturnhere:0x08

改完代码之后,点击执行,执行成功后,程序便会输出预计的效果

相关的文件在这里下载

链接: https://pan.baidu.com/s/1YrJ4KXbQzKn6k15kvuZK6g
提取码: 17q3

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

本帖子中包含更多资源

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

x
楼主热帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 22:09 , Processed in 0.093750 second(s), 32 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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