本文主要是介绍三国赵云传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这个地址即可。
---
可见,基址还是有的,只是被隐藏了,经过一系列的运算是可以得出的。
进而可以获取体力值,杀气值等等等等。。。。。。
这篇关于三国赵云传1---辅助研究的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!