好友
阅读权限20
听众
最后登录1970-1-1
|
最近刚刚学了CE和OD,想找个游戏来练手,正好古3也挺好玩的,就想找找一些游戏call,比如说添加物品什么的
但是上手后才发现我太天真了。
首先这游戏是64位,OD已经没戏了,X64DBG只要一附加直接崩溃,只有CE的veh模式能用。
但最关键的是,当我查找改写物品数量的代码,并且下断点的时候,发现该断点会不停的触发。
经过我的一些分析,我发现这游戏的代码真牛逼,物品加减从同一段代码走,金钱加减也从这里走,甚至血量加减也从这里走,还有各种杂七杂八根本不知道来源何处的运算都从这里走。
在这种大杂烩的情况下该怎么找call?
先说下我的尝试吧,我设置过断点条件,也尝试过注入代码,然后进行下断
确实这样做的话在指定物品加减的情况可以断下来,但是断下来了以后并没有卵用,返回地址是这样的
我也一个一个追上去尝试过,但上层所有的函数都是一个尿性,全都在奔跑着永不停息。一直到最上层,终于停下来了,但是加减物品也不会触发断点了
虽然加减物品的代码我能断下,但是后面的这些函数,根本分不清究竟是干什么的。我没有办法在加减物品的时候断下这个call→无法得知call的参数→没有参数不知道call干什么的→没有参数无法设定条件断不了call,就这样进入一个无限的死循环。
然后我祭出了ultimap,顶着卡顿完成了搜索和过滤,然而还是没有用,过滤出来的call我都一一尝试过,确实有些按钮的事件我能断下,但是问题是中间夹杂着杂七杂八的指令都在访问里面的代码。
举个最简单的例子。买物品的时候,加减购买数量会触发一段代码,先读取物品ID,然后经过一段运算出这个物品的地址然后读取数量。
问题是读ID和读数量在同一个子函数里,而且间隔甚远,中间还有大段的循环完全看不懂在干啥,物品ID要获取两次,然后整整循环47次!!!!也就是经过这个读取数量代码47次,然后才真正是读取指定ID的物品数量。
我觉得我脑子已经不够用了
有没有大神能指导下,像这种多个指令访问同一段代码或者call的,要怎么样才能反追回去找到我想要的call |
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|