ce教程

很久之前整过,有作业要求,顺带整理到博客了,有生之年去研究研究外挂病毒

关一

添加注入进程,初次扫描,100 精确数值 四字节或所有类型一步步缩小范围
触发后再次精确扫描,修改目标值

关二

初始0-500扫描
减少的数值或数值减少缩小范围

关三

字节变浮点数,方法不变

关四

定位,选择改写地址,ce注入进程分析
nop掉复制语句,替换

关五

依旧定位,查找改写

新扫描寻找提示指针数值,根据找到的数值确定指针地址
找到后手动添加地址



右键锁定地址改变指针即可

关六

注入代码修改目标变化预期
先定位,可以看到sub

显示反汇编程序
菜单栏->工具->自动汇编->模板->代码注入

此处sub用于对比,报错可删除

关七

多级指针,32位程序使用CE基本还是通过偏移寻找基准地址
依旧定位,找到第一层指针

指针数值存储在ESI,对应偏移量18
扫指针数值,预期结果是对应一个搜索结果,这里凭经验选了地址最接近的一个

指针2->指针1->目标值,此处选择访问地址而非改写
第二处对应二级指针对一级指针的访问

分析cmp处

依旧黑色,继续查找访问寻找上级
此处结果类似

继续扫描

next,找到基址

总共四级,手动添加指针

修改值,锁定地址,下一步

关八

确定一个玩家地址对应数值

反汇编程序,找出指令返回地址

全选右键,打开选中地址分析数据,锁定并添加到结构分析,一路默认

对应指针,血量,阵容,名字
此处四名玩家调用的为同一函数,所以回到先前的 mov [ ebx + 04], eax 处,自动汇编注入代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here

mov eax,0
cmp [ebx+10],1
jne originalcode
mov eax,42C80000 //100对应的单浮点数16进制

originalcode:

mov [ebx+04],eax
fldz

exit:
jmp returnhere

"Tutorial-i386.exe"+28E89:
jmp newmem
returnhere:

ce教程
https://alenirving.github.io/2025/12/19/ce教程/
作者
Ma5k
许可协议
CC-BY-NC-SA