能力值:
( LV2,RANK:10 )
|
-
-
2 楼
真NB,哈哈哈
|
能力值:
( LV15,RANK:520 )
|
-
-
3 楼
膜拜,膜拜大神.
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
鄙视那些高分族....嘿嘿....
|
能力值:
(RANK:210 )
|
-
-
5 楼
有用的工具!建议讲讲原理。或上传代码给新手学习。
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
这不是威锋论坛制作的补丁吗?
|
能力值:
( LV12,RANK:530 )
|
-
-
7 楼
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
坐等andorid版的上传
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
支持一下,不错哦
|
能力值:
( LV3,RANK:30 )
|
-
-
10 楼
膜拜下大神们,没钱玩ios。
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
开源吧...............
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
坐等技术更新
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
lz是iOsHack?
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
分享原理啊 大神
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
原理很简单,就是用的Hook
解开楼主提供的压缩包,发现两个文件都放在\Library\MobileSubstrate\DynamicLibraries\,这里面是干什么的就不多说了
打开dafeijiPatch.dylib,查看Imports栏,会发现000052C4 _MSHookMessageEx /Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate
查看该导入函数的引用,进入_logosLocalInit(void)
PUSH {R4,R5,R7,LR}
MOVW R0, #(:lower16:(aMainlooplayer - 0xE78)) ; "MainLoopLayer"
ADD R7, SP, #8
MOVT.W R0, #(:upper16:(aMainlooplayer - 0xE78)) ; "MainLoopLayer"
ADD R0, PC ; " MainLoopLayer"
BLX _objc_getClass
...
LDR R1, [R0] ; " gamePause"
MOV R0, R4
MOV R3, R5
BLX _MSHookMessageEx
...
LDR R1, [R0] ; " gameOver"
MOV R0, R4
BLX _MSHookMessageEx
POP {R4,R5,R7,PC}
很明显,在MainLoopLayer这class上挂了2个钩子,一个是gamePause,一个是gameOver
打开MicroMessenger,会发现有的确有一个MainLoopLayer类,里面有gameOver、gamePause两函数
进入比较关心的_logos_method$_ungrouped$MainLoopLayer$gameOver(MainLoopLayer *, objc_selector *),该函数挂在MainLoopLayer.gameOver,当飞机中弹时执行
PUSH {R7,LR}
MOVW R2, #(:lower16:(__ZL5bWudi.b - 0xFAC))
MOV R7, SP
MOVT.W R2, #(:upper16:(__ZL5bWudi.b - 0xFAC))
ADD R2, PC ; __ZL5bWudi.b
LDRB R2, [R2]
CMP R2, #0
IT NE
POPNE {R7,PC}
MOV R2, #(__MergedGlobals_0 - 0xFBE) ; __MergedGlobals_0
ADD R2, PC ; __MergedGlobals_0
LDR R2, [R2,#( dword_25D8 - 0x25D4)]
BLX R2
POP {R7,PC}
代码很简单,判断全局变量_ZL5bWudi.b是否为0,不为0则直接return,为0则执行MainLoopLayer.gameOver(dword_25D8),该全局变量在_logos_method$_ungrouped$MainLoopLayer$gamePause(MainLoopLayer *, objc_selector *)里设置
OK,分析到这,很明朗了
如果想要自己也写一个无敌插件,参考 http://www.cnblogs.com/ydhliphonedev/archive/2011/12/01/2270020.html,指定要Hook的函数即可。。
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
我来看看啦
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
收教了!
|
|
|