導航:首頁 > 源碼編譯 > so反編譯安卓版

so反編譯安卓版

發布時間:2022-04-20 18:49:37

Ⅰ 安卓軟體包內的.so文件如何反編譯,重編譯

*.so文件是linux平台下的動態鏈接庫,反編譯動態鏈接庫參見windows下*.dll文件的反編譯,類似的。

Ⅱ 安卓app360加固怎麼反編譯

1 對比

上傳demo進行加固,解包後對比下原包和加固包,發現加固包在assets文件夾下多了libjiagu.so,libjiagu_x86,lib文件夾下多了libjiagu_art.so,同時修改了dex文件和androidManifest文件

打開manifest文件,看到xxx加固對Application標簽做了修改,添加了殼入口,也就是我們反編譯後看到的StubApplication.smali這個文件。

相比於之前版本的加固,自從1.x.x.x加固版本之後,多了幾次反調試,使得動態難度稍微增大了一些,不過針對脫殼機脫殼,再多了反調試也是無用。或者通過修改系統源碼,也能達到消除反調試的作用。


2 動態調試

(1)把app安裝到手機,以調試模式打開app

(2)以shell模式root許可權打開IDA的android_server監聽

(3)tcp轉發

(4)打開IDA,修改配置為在進程開始時下斷

(5)搜索到進程後jdwp轉發,pid值即為我們進程號,並在命令行下附加。

成功附加後,可以下段了,打開Debugger Option

我們選擇在線程開始和庫載入時下斷,修改成功後,jdb附加,點擊運行

程序會斷在elf頭處,按下G鍵,搜索mmap,在mmap函數的段首和斷尾下段

F9運行,來到斷尾時F8單步,

來到此處時,在 BLunk_5C999C2C下斷,F9一下,F7跟進去

跟進去今後在BLX LR處進行下斷,此處就是進行反調試的地方,原理依然是獲取TracePid的值判斷當前是不是處於調試狀態,建議第一次調試的人在fgets和fopen處下斷,再f7跟進此調用就可以看到TracePid的值了。

跟進去之後,我們直接把方法移到最下方,就可以看到kill符號了,這就是殺進程的地方,如果當前處於調試狀態,則直接結束進程。

我們在此函數的所有cmpR0,#0處下斷,F9一下後即斷在斷點處,觀察寄存器窗口的R0值,實質就是當前的TracePid的16進制的值

不確定的可以使用cat /proc/pid/status進行對比一下,我們直接把R0置0,右鍵選擇Zero Value即可清0,繼續F9

我們看到程序又來到了mmap處,繼續f9

當繼續斷在調用反調試功能的方法時,繼續F7跟進,依然在所有的cmp R0,#0處下斷,斷下後把R0清0後繼續F9運行

目前的規律是,調用BLXLR的第一次,第二次和第四次是進行反調試判斷的,第三次並不影響,可以直接f9跳過去,三次反調試搞定後,就可以愉快的F9運行並觀察堆棧窗口了

當看到出現如下所示時:

說明殼已經開始解密並釋放dex文件了,我們直接F8單步十幾步,最後F9一下就可以看到我們需要的dex頭了

直接腳本mp出來即可,最後把libjiagu的所有文件刪除,並修復下Application標,如果存在則修復,不存在刪除即可

安卓系統有沒有編輯查看*.so文件的軟體,中英文都可以,如果能反編譯那更好。急!

可以的呢,想問這類文件的哈,你使用re管理器就可以!
這個軟體功能挺好的,就是需要root許可權呢!
你可以使用應用寶來幫助手機root的,這個軟體功能比較好
在電腦上開啟應用寶軟體,然後根據提示打開手機的設置,開發者選項裡面的USB調試打開了——連接上數據線——在彈出來的界面點擊已經開啟usb調試——成功連接後進入它的工具箱——點擊一鍵root,重啟手機就可以了。希望採納哦

Ⅳ 安卓的so庫能夠反編譯嗎,如果可以,拿什麼軟體

用跨軟體翻譯

Ⅳ 給個安卓端反編譯so庫的軟體

沒有,只有電腦版的

Ⅵ 請問安卓的SO文件是怎麼回事,可以反編譯出源碼嗎 是如何生成的用JAVA還是C代碼生成的

如何JAVA代碼調用?
jni吧?
安卓的SO文件是linux下的文件,用c或者c++寫的。

Ⅶ 我把android.jar包進行反編譯,為什麼只有方法而沒有實現

1、混淆安卓自帶了混淆法,具體請網路關鍵詞:proguard,但是混淆只是加大了反編譯的難度,可以這么說,即便混淆了,只要有足夠的耐心,破解指日可待。2、使用linux的靜態鏈接so庫這類似於windows平台的dll庫,如果使用了so庫,那麼這個安卓程序幾乎不可能被反編譯到原來的代碼,所以,重要的代碼可以放入so庫。但是,道高一尺,魔高一丈,即便是so庫,也還是會有法能破解,但是,要獲得真正的源碼,幾乎不可能無源代碼的安卓APK反編譯、修改,只有你想不到,沒有做不到@@724949472

Ⅷ 安卓手機如何打開.so文件

*.so文件是linux平台下的動態鏈接庫,反編譯動態鏈接庫參見windows下*.dll文件的反編譯,類似的
Linux:是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的UNIX工具軟體、應用程序和網路協議。它支持32位和64位硬體。Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多用戶網路操作系統。
Linux操作系統誕生於1991 年10 月5 日(這是第一次正式向外公布時間)。Linux存在著許多不同的Linux版本,但它們都使用了Linux內核。Linux可安裝在各種計算機硬體設備中,比如手機、平板電腦、路由器、視頻游戲控制台、台式計算機、大型機和超級計算機。嚴格來講,Linux這個詞本身只表示Linux內核,但實際上人們已經習慣了用Linux來形容整個基於Linux內核,並且使用GNU 工程各種工具和資料庫的操作系統。

動態鏈接庫:英文為DLL,是Dynamic Link Library 的縮寫形式,DLL是一個包含可由多個程序同時使用的代碼和數據的庫,DLL不是可執行文件。動態鏈接提供了一種方法,使進程可以調用不屬於其可執行代碼的函數。函數的可執行代碼位於一個 DLL 中,該 DLL 包含一個或多個已被編譯、鏈接並與使用它們的進程分開存儲的函數。DLL 還有助於共享數據和資源。多個應用程序可同時訪問內存中單個DLL 副本的內容。DLL 是一個包含可由多個程序同時使用的代碼和數據的庫。

DLL文件又稱「應用程序拓展」,是軟體文件類型。在Windows中,許多應用程序並不是一個完整的可執行文件,它們被分割成一些相對獨立的動態鏈接庫,即DLL文件,放置於系統中。當我們執行某一個程序時,相應的DLL文件就會被調用。一個應用程序可使用多個DLL文件,一個DLL文件也可能被不同的應用程序使用,這樣的DLL文件被稱為共享DLL文件。[1]

Ⅸ 手機怎麼打開so文件

咨詢記錄 · 回答於2021-10-26

閱讀全文

與so反編譯安卓版相關的資料

熱點內容
阿里雲伺服器安全組防火牆 瀏覽:194
c語言編譯怎麼打開項目文件 瀏覽:215
數碼of編譯 瀏覽:333
學ug編程好嗎 瀏覽:21
java二進制傳輸 瀏覽:464
中信銀行渠道密碼加密因子未上送 瀏覽:288
網路游戲如何連接伺服器 瀏覽:936
農銀行app怎麼登錄不上 瀏覽:933
西門子plc編程教材 瀏覽:593
加密貨幣樂觀分析 瀏覽:677
方言app有什麼用 瀏覽:768
程序員點贊視頻大全 瀏覽:284
命令的異同 瀏覽:471
加密狗是干什麼工作的 瀏覽:389
centosinit命令 瀏覽:402
三年怎麼算利息怎麼演算法 瀏覽:888
手機拍照根目錄是哪個文件夾 瀏覽:968
小貓爪解壓 瀏覽:612
源碼置入微信小程序 瀏覽:923
如何開一家少兒編程公司 瀏覽:953