- UID
 - 55012
 
 注册时间2008-9-1
阅读权限90
最后登录1970-1-1
版主 
    
 
 
 
TA的每日心情  | 奋斗 2015-10-29 08:08 | 
|---|
 
  签到天数: 3 天 [LV.2]偶尔看看I  
 | 
 
 本帖最后由 creantan 于 2015-6-10 21:42 编辑  
 
By: creantan/ChinaPYG 
 
破解TexturePacker加密资源的方式有好多种。。最多的是hook uncompress然后获取到内容,加入ccz的文件头写入文件。 
例如: 
 
http://blog.csdn.net/ynnmnm/article/details/38392795 
http://bbs.pediy.com/showthread.php?t=187332 
 
今天我用最直接的方法搞定,直接找到用户设置的秘钥。 
 
void ZipUtils::ccSetPvrEncryptionKeyPart(int index, unsigned int value)// 设置密钥的接口    
上appstore上随便找个cocos2dx写的游戏,看看是否有加密的pvr.ccz文件。 
 
拖入Hopper,搜索ccSetPvrEncryptionKeyPart,没有找到。然后搜索ZipUtils,如下图: 
 
 
 
 
 
ccDecodeEncodedPvr用来解密pvr.ccz文件,没有找到ccSetPvrEncryptionKeyPart,那么我们在ccDecodeEncodedPvr上下代码块里面试试运气 
 
 
 
 
int sub_444200(int arg0, int arg1) { 
    r1 = arg1; 
    r0 = arg0; 
    r3 = *(0x7d79d0 + r0 * 0x4); 
    asm{ it         eq }; 
    if (r3 == r1) { 
            return r0; 
    } 
    *(0x7d79d0 + r0 * 0x4) = r1; 
    *(int8_t *)0x7d89e0 = 0x0; 
    return 0x0; 
}  
这个有点像。。猜测arg0为index  arg1为value 
写tweak验证: 
int(*orgccSetPvrEncryptionKey)(int index,unsigned int key); 
int myccSetPvrEncryptionKey(int index,unsigned int key); 
int myccSetPvrEncryptionKey(int index,unsigned int key){ 
  NSLog(@"\n\n=====  keys: %d-%u    ======\n\n",index,key); 
  orgccSetPvrEncryptionKey(index,key); 
} 
%ctor{ 
  NSLog(@"====== HOOKED ======"); 
  intptr_t module_vmaddr = _dyld_get_image_vmaddr_slide(0); 
  intptr_t ccSetPvrEncryptionKey = module_vmaddr + 0x444200 + 1; 
  MSHookFunction((void *)ccSetPvrEncryptionKey, (void*)myccSetPvrEncryptionKey, (void**)&orgccSetPvrEncryptionKey); 
}  
测试log 
Jun  1 11:57:43 crean XXX[73393]: 
 
        =====  keys: 0-405172683    ====== 
Jun  1 11:57:43 crean XXX[73393]: 
 
        =====  keys: 1-1270815801    ====== 
Jun  1 11:57:43 crean XXX[73393]: 
 
        =====  keys: 2-3663874658    ====== 
Jun  1 11:57:43 crean XXX[73393]: 
 
        =====  keys: 3-2333226975    ======  
将这4个Key转为16进制拼接为 
182671CB4BBF1C39DA624A628B1237DF  
用TexturePacker打开加密的pvr.ccz的文件,它会提示你输入加密的KEY,输入直接解密验证: 
 
 
 
 
 
我想,看了这篇教程学到的不紧紧是破解TexturePacker加密资源哦。。自己动手验证试试。。只随机了一个游戏测试。。有兴趣的朋友可以找个游戏验证验证是否通用。。 
 
转载请注明出处:creantan/ChinaPYG 
 
 
 
 |   
 
评分
- 
查看全部评分
 
 
 
 
 
 |