破解TexturePacker加密資源,尋找解密Key之旅

作者:creantan 小葡萄爸爸
QQ:865130685

破解TexturePacker加密資源的方式有好多種。。最多的是hook uncompress然后獲取到內(nèi)容,加入ccz的文件頭寫入文件。
例如:

http://blog.csdn.net/ynnmnm/article/details/38392795
http://bbs.pediy.com/showthread.php?t=187332

今天我用最直接的方法搞定,直接找到用戶設(shè)置的秘鑰。

void ZipUtils::ccSetPvrEncryptionKeyPart(int index, unsigned int value)// 設(shè)置密鑰的接口  

上appstore上隨便找個(gè)cocos2d的游戲,拖入Hopper,搜索ccSetPvrEncryptionKeyPart,沒有找到。然后搜索ZipUtils,如下圖:

04E5BC6A-B738-473A-B184-82620C3C66C8.png

ccDecodeEncodedPvr用來解密pvr.ccz文件,沒有找到ccSetPvrEncryptionKeyPart,那么我們?cè)赾cDecodeEncodedPvr上下代碼塊里面試試運(yùn)氣

E023B78F-3D67-4D35-8613-E610F6F36D1A.png
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;
}

這個(gè)有點(diǎn)像。。猜測arg0為index arg1為value
寫tweak驗(yàn)證:

int(*orgccSetPvrEncryptionKey)(int index,unsigned int key);
int myccSetPvrEncryptionKey(int index,unsigned int key);
int myccSetPvrEncryptionKey(int index,unsigned int key2key{
  NSLog(@"\n\n=====  keys: %d-%u    ======\n\n",index,key);
  orgccSetPvrEncryptionKey(key1,key2);
}
%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個(gè)Key轉(zhuǎn)為16進(jìn)制為

182671CB4BBF1C39DA624A628B1237DF

用TexturePacker打開加密的pvr.ccz的文件,它會(huì)提示你輸入128位加密的KEY,輸入直接解密驗(yàn)證:

5B26E15B-9F72-4166-B1C7-6438C0076623.png

我想,看了這篇教程學(xué)到的不緊緊是破解TexturePacker加密資源哦。。自己動(dòng)手驗(yàn)證試試。。只隨機(jī)了一個(gè)游戲測試。。有興趣的朋友可以找個(gè)游戲驗(yàn)證驗(yàn)證是否通用。。當(dāng)然還有很多種方法自己發(fā)掘吧~~

轉(zhuǎn)載請(qǐng)注明出處: http://www.itdecent.cn/p/9562bc1cab72 by creantan

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 作者:creantan 小葡萄爸爸QQ:865130685 破解TexturePacker加密資源的方式有好多種。...
    crean閱讀 3,089評(píng)論 0 0
  • 轉(zhuǎn)發(fā)自 2016-07-07何兆林騰訊Bugly 如果您有耐心看完這篇文章,您將懂得如何著手進(jìn)行app的分析、追蹤...
    樹懶啊樹懶閱讀 10,863評(píng)論 5 63
  • 背景 ? 隨著移動(dòng)互聯(lián)網(wǎng)的普及,被越來越多的心懷不軌的人覬覦,也越來越多的安全問題暴露了出來。開發(fā)者開發(fā)出來的應(yīng)用...
    陵無山閱讀 3,112評(píng)論 1 13
  • 昨天上午的課,五歲半,使用膠槍,湯到手,起了水泡。 我就在思考近段時(shí)間我所宣揚(yáng)的話,在安全措施下給與孩子充分的體驗(yàn)...
    Pan潘閱讀 276評(píng)論 0 0
  • 風(fēng)信子花兒朵朵開,馨香撲鼻,粉色花瓣兒給冬天添了些許的歡喜,在一夜之間全部盛開,根部已經(jīng)無法撐住它的嬌艷和肆意綻放...
    田萍閱讀 226評(píng)論 0 2

友情鏈接更多精彩內(nèi)容