本帖最后由 痞孑 于 2018-6-18 22:37 编辑
前提摘要
1.Coco2d-x引擎是相对于Unity3D的又一实力派引擎。尽管随着3D游戏的热门,很多其它的厂商偏向于Unity3D。 2.可是Coco2d-x的普及量也不容小觑,特别是一些比較大的手游公司。比方触控科技仍然一直沿用着Coco2d-x的东西。 3.那么简单了解一下,我们就开始干吧!
准备工具
IDA Android killer arm_asm 010Editor
首先把包扔进Android killer反编译
随便浏览了一下发现这是用cocos2d-x游戏引擎制作的 那么它的很多数据初始化应该就是在 lib 文件夹里,那我们就着手试下,打开后缀名为.so文件所在的目录
先从比较大的文件开始看,因为游戏中初始化的东西多了,逻辑多了,那么它的so文件肯定也大
( 个人观点,猜的,我也没使用cocos2d-x开发过游戏,也不太懂,就靠推断和经验),那我们就从大的文件入手了,直接拖入ida中查看此文件
那么一般我都会在Exports栏下搜索关键字,因为Exports栏下都是一些方法的输出
因为游戏中一般要获取钻石啊,金币什么的 今天,我们来修改攻击(一击必杀的感觉贼鸡儿爽) 那么我们直接在此栏下面Ctrl+F搜索attack(攻击),得到一堆的结果
我们怎么判断哪个是真的获取攻击值呢,一般就直接找那种有“GetXXX”什么的,
当然可能也有别的情况,这里可能需要点英文基础,不懂的也可以在百度翻译, 这里我们可以看到有一个函数是“GetWeaponAttack”(获取武器攻击) 这个极有可能就是获取武器攻击力的方法,点进去看看,按空格键,切换到试图模式
大致浏览下整个方法,看起来不是很复杂,虽然也看不太懂,但是如果它要输出的话,肯定在最后获取一个值,最后就是给R0赋值了,
那我们就直接给它赋固定值吧,不管它上面的逻辑怎么处理,到最后一定是执行我们给的固定值。
我们找到关键点之后,点击,然后切换到“Hex-view-1”查看它的16进制码
这里说明一点,怎么直接给R0赋值,这里需要用到一个工具arm_asm.exe
这是一个汇编转16进制码的工具,此工具有些汇编是无法转换的
之后关闭ida之后,然后再使用“010Editor”打开刚才的那个so文件,可直接把so文件拖入“010Editor”
因为我们刚才已经知道那个最后获取攻击力的地址了,所以这里直接Ctrl+G跳转到那个地址
修改完之后,保存,然后重新再次编译生成apk,运行之后,杀怪伤害如下图
哎呀,人生真是寂寞如雪
Arm_Asm下载地址
https://pan.baidu.com/s/1H7XKQnLlxekWClNML7A3eg 密码:nc80 |