本文纯粹是和想学习这方面知识的新手做简单的技术讨论(咱也算和软件逆向工程沾边了)。
作为一个文科生,“基址”到底是个什么东西,这个概念我就折腾了很久,做培训的老师们不会详细讲,网上的视频不会多解释。视频教程,往往是拿一个游戏演示一下找基址的过程。
我就用自己的理解来举个例子吧。
用CE找基址的过程,感觉就像你去参加一个寻宝真人秀综艺节目,节目组给一点点线索,要你在一栋超级大楼里找到一个房间,就是反推获得这个“目标房号”。这栋超级大楼可能有几万个甚至几十万个房间……获得“目标房号”后,你退出大楼,然后重新进去。这时候线索全变,但是“目标房号”不变。你通过“目标房号”里放的小纸条,根据指引,顺推,最终找到宝物。
“目标房号”里的小纸条,比如写了个数字16,你就去找16号房间,然后16号房间里,也许有块牌子,上面写了个257。然后你又去257号房间,发现宝物就在257号房间里。当然,我这里只是为了方便理解举的例子。实际上,顺推的过程比这还复杂一点,但是基本上知道了“目标房号”就能找到宝物了。
反推的过程中,节目组可能给你一张残缺的地图啥的,让你去某些房间碰运气。在那些房间里又能得到一点别的线索,这些线索,都是为了找出“目标房号”。
有时候还有意外事件,才根据线索找了一会儿,你就被工作人员赶出大楼一段时间。再进大楼,线索全变,“目标房号”不变,好吧,重新来吧,这不仅仅是脑力活。
基址就是“目标房号”。
宝物就是我们想要知道的数据。比如说,游戏人物当前HP。