【梧桐学堂】格斗骑士团验证习题答案
====【课后习题】==== 

格斗骑士团,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,然后空格向下看代码 最后一个代码块即可定位到这里!
查看更多评论