三国赵云传1---辅助研究

前阵子去网吧的时候突然发现了一款小时候玩的很入迷的单机游戏,怀旧,再玩玩。

游戏玩的多了,第一件事就是想的什么作弊……囧。

用CE找血量,很容易就找出来一个唯一的地址,但是这个地址不是静态的,每次运行游戏都是在变。

找基址吧,可惜,没有。不是找不到,是真的没有,不信你可以自己尝试一下。

后来又玩了玩,刚开始第三个任务,就是杀完兔子后那个,传送到一个新地图里。

地图中有一个井水,点击之后血量全满,灵感一现,我为啥不找CALL呢?

于是先确定当前游戏的血量地址,用CE找出来"谁写入了这个地址",点井水后,发现一个记录。

不多绕弯子,贴上这一部分的反汇编。

 

00441700    0FBF0D 40415D00        MOVSX ECX,WORD PTR DS:[5D4140]
00441707    6A 00                  PUSH 0
00441709    6A 00                  PUSH 0
0044170B    8D0489                 LEA EAX,DWORD PTR DS:[ECX+ECX*4]
0044170E    6A 00                  PUSH 0
00441710    68 EA030000            PUSH 3EA
00441715    6A 00                  PUSH 0
00441717    8D0480                 LEA EAX,DWORD PTR DS:[EAX+EAX*4]
0044171A    8D0480                 LEA EAX,DWORD PTR DS:[EAX+EAX*4]
0044171D    C1E0 04                SHL EAX,4
00441720    03C1                   ADD EAX,ECX
00441722    D1E0                   SHL EAX,1
00441724    8B88 FCA35D00          MOV ECX,DWORD PTR DS:[EAX+5DA3FC]
0044172A    8988 F8A35D00          MOV DWORD PTR DS:[EAX+5DA3F8],ECX//这一句执行之后血量就满了
00441730    B9 40425000            MOV ECX,fuck.00504240
00441735    E8 563CFCFF            CALL fuck.00405390
0044173A    C3                     RETN

新建一个线程,起始地址就是0x441700,血量果然满了,而且根据其代码,这是一个无参函数。

直接写一个DLL注入进去,CALL这个地址即可。

---

可见,基址还是有的,只是被隐藏了,经过一系列的运算是可以得出的。

进而可以获取体力值,杀气值等等等等。。。。。。

你可能感兴趣的:(游戏,c,汇编,dll,任务,单机游戏)