1. 程式人生 > >360 so加殼動態脫殼方法

360 so加殼動態脫殼方法

轉載地址:http://mp.weixin.qq.com/s?__biz=MjM5NzAxMzk4NA==&mid=209300616&idx=1&sn=bcc440640f68e9355fcb20842a1ddaef&scene=0#rd

環境及工具
系統版本:  Android 2.3.5
工具 :   IDA pro 6.6 、010Editor

1.對加殼後的so進行反編譯,程式碼不能正常顯示,被加密了,如下圖所示:

 

檢視so的"INIT_ARRAY",指向了殼的入口, 如下圖所示:

 

2.用IDA反編譯加殼後的so檔案,到0Xfd30去(殼的入口函式),如下圖所示



 

 

3.通過上面分析知道了入口在"INIT_ARRAY",接下來動態除錯,(如果不知道如何到該入口的可以參考 0n1y3nd's 大神寫的文章http://0nly3nd.sinaapp.com/?p=649)到達殼入口後如下圖所示:

 

與靜態分析時是一樣的。

4.殼反除錯 檢查是否有如下偵錯程式 gdb strace ltrace android_server,如下圖所:

 

5.接下來解密第二層的殼程式碼,演算法為RC4,如下圖所示:

 

6.知道金鑰和演算法及要解密的資料與大小,我們來寫程式靜態解密so中的資料,解密後生成so檔案然後反編譯該檔案,以前不能正常顯示的程式碼現在都能正常顯示了(第二層殼),如下圖所示:


 

7.第二層的殼程式碼解密完後,INIT_ARRAY處的殼程式碼功能算是走完了,接著在JNI_OnLoad處下好斷點,F9執行,如下圖所示:

 

8.斷在JNI_OnLoad後繼續分析,在Unk_8050303C函式會解密原始so RC4演算法,如下圖所示:

 

解密後的資料以".lfx"開頭, 如下圖所示:

 

9.將解密後的資料全部dump出來儲存為lfx.Dump,與原始的so比較,看發生了什麼變化,如下圖所示:

 

10.將上面dump出來的檔案lfx.Dump與沒加殼前的so檔案比較,發現不同的地方很多,說明還沒有完全解密,繼續分析,如下圖所示:


開頭4位元組不一樣

 

中間N多位元組不一樣

 

11.繼分析後發現會對該檔案的程式碼節進解壓縮,這時候dump出來就會是原始的程式碼了,如下圖所示:



解密原始so並解壓程式碼的流程如下:

[Asm] 純文字檢視 複製程式碼

?

001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047 048 049 050 051 052 053 054 055 056 057 058 059 060 061

相關推薦

360 so動態方法

轉載地址:http://mp.weixin.qq.com/s?__biz=MjM5NzAxMzk4NA==&mid=209300616&idx=1&sn=bcc440640f68e9355fcb20842a1ddaef&scene=0#rd

360加固保的dex方法

360整體加固classes.dex後的apk程式的特點,以超信1.1.4版本為例。360加固以後,會在apk的assets檔案的路徑下增加兩個檔案libjiagu.so和libjiagu_x86

的原理

加殼一般是指保護程式資源的方法. 脫殼一般是指除掉程式的保護,用來修改程式資源. 病毒加殼技術與脫殼防毒方法 : 殼是什麼?脫殼又是什麼?這是很多經常感到迷惑和經常提出的問題,其實這個問題一點也不幼稚。當你想聽說脫殼這個名詞並試著去了解的時候,說明你已經在各個安全站點很有了一段日子了。下面,我們進入“殼”的世

Android so加固的簡單

Android應用的so庫檔案的加固一直存在,也比較常見,特地花時間整理了一下Android so庫檔案加固方面的知識。本篇文章主要是對看雪論壇《簡單的so脫殼器》這篇文章的思路和程式碼的分析,很久之前就閱讀過這篇文章但是一直沒有時間來詳細分析它的程式碼,最近比較有空來

解釋

首先要認識脫殼一切從“殼”開始   我寫這篇東西的主要目的是讓初到本站的新手們能對“殼”有個大概的認識,知道我每天說了些什麼。限於本人的知識,如果有 ERROR 之處,還請多原諒。如果你覺得還可以, 也歡迎轉貼,但請保留文章的完整性和作者的資料。當然如果你想把它發表,硬塞

有關以及例項講解

當前流行的查殼工具主要以peid和fileinfo這兩個軟體為代表。 PEiD的原理是利用查特徵串搜尋來完成識別工作的。各種開發語言都有固定的啟動程式碼部分,利用這點就可識別出何種語言編譯的。同樣,不同的殼也有其特徵碼,利用這點就可以識別是被何種殼所加密。PEiD提供了一個

360二代加固方法總結

二代加固的難度有所增加,最明顯的地方就是qihoo下面增加了一個Configuration.smali檔案。由以前的一個增加為兩個。 脫殼時有幾個關鍵的so:1.libc.so(主要是提供一些系統函式

Android SO (加密)與思路

   0x01 常見的Android SO加殼(加密)思路    1.1 破壞Elf Header    將Elf32_Ehdr 中的e_shoff, e_shnum, e_shstrndx, e_shentsize欄位處理,變為無效值。由於在連結過程中,這些欄位是無用的,所

360加固之libjiagu.so及dex dump

       360加固後的apk,在arm裝置上首先會將assets目錄下的libjiagu.so拷貝到files目錄下,然後通過libjiagu.so動態載入原始dex        libjiagu.so的init_proc和init_array都無實質功能,真正的

總結Themida / Winlicense軟體的方法

   1, 檢視殼版本,這個方法手動也可以,因為這個殼的版本號是寫在程式裡面的,在解壓後下斷點即可檢視,這裡有通用的指令碼,我就不再羅嗦了,跟著指令碼學吧,使用方法很簡單,直接執行指令碼即可。(指令碼我也已傳在資源中,可在文章結尾獲得下載地址)     2,對於 Ve

IDA 調試 Android 方法及簡單的實現

all fun cati chm std function sso .apk 代碼位置 IDA 調試 Android 方法及簡單的脫殼實現 標簽: android原創逆向調試dalvik 2016-05-24 14:24 9286人閱讀 評論(3) 收藏

:OEP(即程序入口點)查找 --- 基本思路和常見方法

dash xxxx 適合 往回 去掉 nbsp 忽略 回車 p地址 OEP:程序的入口點,軟件加殼就是隱藏了OEP(或者用了假的OEP), 只要我們找到程序真正的OEP,就可以立刻脫殼。 PUSHAD (壓棧) 代表程序的入口點, POPAD (出棧) 代表程序的

Apk聖戰之---360加固 的

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Android聖戰之---360加固(破解約火包神器的鑽石充值功能)

一、情景分析 程式猿一般都很孤獨,特別是總是和程式碼相伴,比如像我這種窮屌絲,一到週末就閒著沒事刷各種應用,看看想看的,無意中發現一款封面看著挺誘人的約友神器,下來來看看,迫不及待的點開: 我尼瑪我只是想視訊通話,竟然還要讓老子衝鑽石,我這暴脾氣可不答應,可是誰叫我們那麼窮呢?只能靠著

常見android app加固廠商方法研究

目錄簡述(脫殼前學習的知識、殼的歷史、脫殼方法) 第一代殼 第二代殼 第三代殼 第N代殼 簡述Apk檔案結構Dex檔案結構殼史殼的識別Apk檔案結構 Dex檔案結構 殼史 第一代殼 Dex加密 Dex字串加密資源加密對抗反編譯反除錯自定義DexClassLoader

AndroidLinker與SO技術之上篇

1. 前言 Android 系統安全愈發重要,像傳統pc安全的可執行檔案加固一樣,應用加固是Android系統安全中非常重要的一環。目前Android 應用加固可以分為dex加固和Native加固,Native 加固的保護物件為 Native 層的 SO 檔案,使用加殼

Apk聖戰之---掉“360加固”的

一、前言現在主流的加固平臺有:梆梆加固,愛加密,360加固,騰訊加固,在之前的一篇文章中介紹了:如何脫掉“愛加密”的殼,現在這裡要脫掉另外一個平臺的殼:360加固,因為有了之前的脫殼經驗,很多基礎知識和

360加固過程(老版本和新版本)

老版本 360加固在assets目錄下添加了libjiagu.so檔案。 關鍵字串加密的方式為先與5A異或再取反。 我們把這部分字串在winhex裡面處理一下,據此就可以找到大部分反除錯的位置。 下面開始動態除錯,在linker中下斷點,

練習(1)-360加固2,3代心得簡記

這篇部落格就記一下自己脫360加固2,3代的過程吧。畢竟作為一個android逆向入門小菜完全靠自己脫殼是不大現實,事實上也是借鑑了不少大佬們的部落格,當然碰到了可遇而不可求的一代殼的話那是當然要垂死掙扎,好好搞明白,總要由簡入深,在此基礎當初當然是ida的動態除錯了,詳細

阿里第一代 android dex加固的方法

脫殼環境: Android 4.2、dalvik模式、 root… 使用到的工具: IDA 6.8 Android Device Monitor Android Killer V1.3.1.0 Android逆向助手V2.2 將程式