====【课后习题】====
格斗骑士团,http://pan.baidu.com/s/1eQZuE7C
====【注意事项】====
没有任何人可以保证一次就修改成功
只有经过一次次的失败,才能成长
【答案一】:这个视频操作非常的快,不妨先看其他答案 http://pan.baidu.com/s/1jHdqdQA
【答案二】:用notepad工具搜索:signature
找到libcocos2dcpp.so
将这个so拖到ida中加载,加载完毕后
按shift+F12 进入 strings window 页面
ctrl+f搜索signature
找到:signature 双击进入
跳到如下代码 双击getSignatureCode即可跳到对应代码块
"signatures",0 ; DATA XREF: GameJniHelper::getSignatureCode(void)+FCo
然后空格,向上拉,找到开头getSignatureCode函数头
单击
ZN13GameJniHelper16getSignatureCodeEv
_ZN13GameJniHelper16getSignatureCodeEv
点X,选择第一个
再次单击ZN13GameJniHelper16getSignatureCodeEv类,按X这个步骤一共重复4次
往下看:
"check success" 检查成功
; "check fail" 检查失败
修改(BNE loc_27B7BE)
loc_27B7AA
CMP R4, #1
BNE loc_27B7BE
机器码:07 D1 42 48 78 44 42 49
改成:07 D0 42 48 78 44 42 49
如上看来
将这个so拖到ida中加载,加载完毕后
按shift+F12 进入 strings window 页面
ctrl+f搜索check success,即可定位到这里!
【答案三】
signature 双击进入
跳到如下代码 双击getSignatureCode即可跳到对应代码块
"signatures",0 ; DATA XREF: GameJniHelper::getSignatureCode(void)+FCo
然后空格,向上拉,找到开头getSignatureCode函数头
单击
ZN13GameJniHelper16getSignatureCodeEv
_ZN13GameJniHelper16getSignatureCodeEv
点X,选择第一个
再次单击ZN13GameJniHelper16getSignatureCodeEv类,按X这个步骤一共重复4次
往下看最下面这段代码
loc_27B804
MOVS R0, #4
ADD SP, SP, #0x8C
POP {R4-R7,PC}
; End of function HqCheckHelper::checkPackage(void)
20 46 23 B0 F0 BD 04 46
00 20 23 B0 F0 BD 04 46
修改后MOVS R0, #0
1是真
0是假
将这个so拖到ida中加载,加载完毕后
按shift+F12 进入 strings window 页面
ctrl+f搜索check success,然后空格向下看代码 最后一个代码块即可定位到这里!
5