首頁 >運維 >安全 >idaPro如何分析app解密lua腳本

idaPro如何分析app解密lua腳本

WBOY
WBOY轉載
2023-05-18 08:34:191524瀏覽

透過前面idaPro調試或hook,我們可以取得xxtea解密key,對於sign我們可以直接開啟原始檔:

idaPro如何分析app解密lua腳本        

可看到sign值:byds。因此,我們可以嘗試使用xxtea解密工具(透過在GitHub上取得原始碼並編譯)進行解密

idaPro如何分析app解密lua腳本        

#以index.luac為例,我們看index.luac解密前後變更:

idaPro如何分析app解密lua腳本

        我們看到經過xxtea解密後的lua腳本仍不是明文!我們之前根據cocos2d框架源碼及大神apk反編結果確定就是用的xxtea加密,而且app的lua腳本也有簽名值,這也印證了就是xxtea加密方式,但是我們解密出來的結果仍然不是明文,這說明我們解密可能不完全,到底是不是還得再回到idapro一探究竟。

        用idapro打開libgame.so,在export窗口中搜索byds,找到byds_d函數,雙擊進去:

idaPro如何分析app解密lua腳本        

直接F5會顯示反編代碼:

idaPro如何分析app解密lua腳本        

#這並沒有什麼特別的,而我們框架原始碼中的程式碼是等價的。如果是解密未完成的話,應該會再呼叫此函數的上一層繼續解密過程,我們jump xrefs追蹤此函數呼叫:

idaPro如何分析app解密lua腳本        

出來兩個,其中一個是got表,絕對不是,我們雙擊第一個:

idaPro如何分析app解密lua腳本        

只是包裝函數,我們繼續追蹤:

##      # idaPro如何分析app解密lua腳本雙擊進去:

        

idaPro如何分析app解密lua腳本我們看到這個函數名稱和原始碼中呼叫xxtea_decrypt是一樣的,我們一開始也將這個函數列入突破了。現在可以很清楚的看到腳本經過byds_d解密之後,又進行了一次uncompress解壓,到現在應該基本上清晰了,lua腳本應該是經過壓縮又進行加密,所以要想還原,應該是先xxtea解密,再解壓縮。在GitHub上可以找到一個解壓縮zlib的腳本,可用來對解密後的文字再進行解壓縮

#        

idaPro如何分析app解密lua腳本然後再看index.lua:

#        

idaPro如何分析app解密lua腳本#現在變成明文了。

以上是idaPro如何分析app解密lua腳本的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除