CE学习1

CE学习

用CE找到变化的数值之后,把他拉到下面,右键看看是到底是什么指令写入了这个数值image-20260129103230373

image-20260129103305090

我们找到了一个指令,mov [esi+00000180], edx 这个指令在内存中位于地址618F3E93,具体意思是把edx的值写道esi+0x180地址的字节上,

image-20260129103425978

这里计算一下ESI+0x180正好就是刚刚找到的拉下去分析的那个变化值在内存中的地址了image-20260129104059995

指令本质上相当于一行代码,如果右键把这个指令替换为空(nop),相当于把这行代码删掉了,那么以后这个代码就失效了,不会有东西会导致之前那个被我们拉下去分析的量改变了image-20260129104315238

反编译分析指令

到时候我们可以通过反编译器比如ida中找到这条指令,然后反编译出它相应的代码进行分析,我们可以先在CE的内存区域中,发现刚刚那条指令(代码)所属于哪个dll,

image-20260129103853204

我们可以用比如Ghidra的反编译工具,打开那个dll文件,

但是由于每次打开一个进程它在内存中的地址会改变,所以我们需要对Ghidra的dll的地址重映射为CE中的地址,

image-20260129104554089

在CE中这个dll的起始地址是618C000

image-20260129104702617

之后地址就可以对上了,这样就方便从CE中的地址直接可以在反编译器中寻找到对应的地址了。

image-20260129104742331

一开始我们找到的那个指令在内存中位于地址618F3E93然后可以试着在Ghidra跳转到这里了,然后就可以定位到那一行指令对应的反编译的代码了

image-20260129104950342

接下来可以根据你对这行代码功能的推测,重命名它的变量名

image-20260129105306477

然后让Ghidra根据这行代码对内存的使用方式,帮我自动定义一个结构体原型image-20260129105340642

然后这行代码变成了这样

image-20260129105431587

它自动假设了这个偏移量 0x180 实际上是 Player 结构体中的一个成员变量。

然后你可以自己把这个变量重命名image-20260129105552630


CE学习1
https://blog.zinho.top/2026/01/28/CE学习1/
作者
Zinho
发布于
2026年1月29日
许可协议