如何系統的學習安卓逆向分析?

時間 2021-05-30 19:30:28

1樓:網路滲透技術哥

隨著手遊的發展,越來越多的Cocos-lua端遊開發者轉移到手遊平台。Lua指令碼編寫邏輯的手遊也是越來越多,如夢幻西遊、刀塔傳奇、開心消消樂、遊龍英雄、奇蹟暖暖、疾風獵人、萬萬沒想到等手遊。隨著Lua手遊的增加,其安全性更值得關注,在此歸納一些常用的分析方法,同時介紹一些輔助工具。

識別Lua遊戲

Android平台的apk包可以直接解壓,找到./lib目錄下的so邏輯模組,乙個個分析其so,尋找是否內嵌lua引擎(一般情況下,最大的so最有可能內嵌lua引擎)。如果有libcocos2dlua、libhellolua字樣,其內嵌lua引擎的可能性極大。

將可疑so拖入IDA,檢視lua引擎字串,找到如圖1所示的lua引擎內字串,那該手遊基本就可以確定是內嵌了乙個lua引擎,有極大可能是用lua編寫遊戲邏輯。

圖1. Lua引擎相關字串

也可以配合留意下解壓出來的assets目錄下,是否包含指令碼資訊。這類資訊一般是加密的(也有很多安全意識薄弱的是直接lua指令碼明文存放的),但有個明顯特徵是:有多個檔案存放。

如圖2和圖3所示,分別是兩款非常火熱的Lua手遊的assets目錄下的lua指令碼資訊。其中D手遊僅是對luac進行加密,而M手遊則是連名字也弄個雜湊加密。

圖2. Lua手遊asserts下可疑指令碼資訊案例手遊D

圖3. Lua手遊asserts下可疑指令碼資訊案例手遊M

破解思路

Lua手遊的破解主要分成兩步,一步是能獲取遊戲lua指令碼;第二步是替換lua指令碼。核心是找到lua指令碼,然後修改生效。不同安全級別的手遊,相應的lua指令碼獲取時機點會有所不同。

(本質是沿著Lua引擎載入lua指令碼的整條載入鏈,如圖4所示,去不斷分析找到合適時機點dump和替換。)

另一類思路,是輔助工具常用的方法,比如叉叉的lua手遊輔助。只需要獲取遊戲lua指令碼資訊,然後無需替換,而是直接載入自身的乙個lua指令碼(該指令碼和遊戲指令碼在同乙個命名空間,可直接修改遊戲指令碼資料,呼叫函式)。

一、 直接assets資源可獲取lua指令碼

這模擬較初級,在assets目錄下可獲得lua或者luac原始碼。

針對lua原始碼型別,直接修改然後apktool重打包即可。

針對luac原始碼型別(luac是lua編譯的lua位元組碼檔案,包含lua指令碼所有資訊,具體可搜尋lua位元組碼檔案結構),可以使用unluac等開源專案/工具反編譯回lua原始碼。然後修改直接替換回修改後的lua原始碼檔案即可(lua引擎載入指令碼的時候,會識別luac magic number判斷是lua原始碼還是luac,直接替換原始碼下去是不會影響指令碼載入執行的)。

二、 在luaL_loadbuffer函式處獲取

luaL_loadbuffer是乙個走得比較頻繁的載入點。Cocos引擎的lua載入器為cocos2dx_lua_loader,如圖4所示,最終都是呼叫luaL_loadbuffer函式來載入。一般廠商會在這層上面對lua指令碼進行解密,既是在luaL_loadbuffer函式獲取buff引數可得到解密後的lua指令碼。

修改邏輯後可以直接在這個點替換回去。

圖4. cocos2dx_lua_loader函式

三、 更底層的reader函式處獲取

lua引擎載入lua指令碼最底層是到lua_reader函式。該函式負責最底層的指令碼buff遍歷,因此在此處dump出來的lua指令碼是最純正的lua指令碼,所有加密都已經被去除(修改lua opcode或者引擎邏輯除外)。

不過這個點的獲取不到足夠的檔案資訊(檔名、buff index等),需要配合上層函式拼湊lua指令碼。

2樓:

匿了做遊戲逆向破解的話,需要懂得更多的語言,.net,lua,什麼流行就要懂什麼。

1. 遊戲的破解與外掛程式,

2. 系統漏洞與挖掘,

3. 木馬病毒原理分析

3種主流的逆向工作,應該屬於不同的分支,側重點是不一樣的。

隨便寫下,手機打字太痛苦,就不多說了

問哈CTF逆向大佬,如何才能系統的學習逆向

首先要做到的是相信自己。然後要有打破砂鍋問到底的精神。最後做好筆記。下面開始找CTF別人寫好的writeup,一行一行的除錯。堅持就是勝利。遇到不會就去看書 查資料。你也能成為CTF RE大佬。 紫金校尉 別天天系統系統的掛在嘴邊,再系統,你整不出來東西,你什麼都白搭動手問題就解決了一半 給你舉個小...

Windows for PC加入安卓系統的一些功能會不會更加好用呢?

android的通知欄和快捷設定 那不windows10都給你加進去了麼 通知中心 簡潔明快的設定選單 那不也有了麼 home鍵和後台任務 windows10難道不比android更詳盡好用麼 就不用說強大的檔案管理什麼的了吧 題主你還想要啥 石先生 就是因為windows需要的是強大而不是易用啊。...

安卓系統中,哪個品牌的手機系統好用?

涼風 第一定製不用懷疑,MIUI第一沒人反駁。人性化,功能多,貼心關於廣告,用過一年以上的人都不會說MIUI廣告多煩人,因為他只會出現在你不在意的地方。其次的話就是Flyme了,個人感覺Flyme好像比MIUI好看一些。但有些地方不如MIUI人性化,靈活。華為emui風格商務化了點,不怎麼人性化,不...