當前位置:首頁 » 安卓系統 » android逆向工具

android逆向工具

發布時間: 2023-05-24 11:19:19

A. 安卓逆向——如何修改APP包名實現應用分身

齊天大聖孫悟空是家喻戶曉的神話傳說名人,大家都知道他有一個很強大的技能——拿出一根猴毛「biu」一吹實現分身。

那麼我們程序猿也和咱們的齊天大聖是同類(開個玩笑),程序猿怎麼實現分身呢?我們拔一根頭發吹肯定是不好使的……那就是通過修改APP的包名來實現應用分身。也就是說在同一個設備上可以打開兩個或多個相同的APP。

一.如何修改APK的包名

那麼如何修改apk的包名呢?我們以「土豆視頻為例」來進行一個分析。首先,找到「工程管理器」,打開工程管理器進入界面,點開土豆視頻的下行文件數據

裡面有「manifest」這樣一個標簽,找到這個標簽裡面的一個「package」屬性,這個值就是我們要找到應用程序的包名

第二步,把「package」屬性改為「hou」或者「123」等等都可。

這個值我們可以通過刪減幾個字母或者是任意添加幾個字母或數字來進行修改,切記注意只能使用添加或刪減數字和字母,不可以用漢字!

建議通過「添加數字或字母實現」,刪除容易把握不準,當然刪除以後一定要記得保存。 然後點擊「回編譯」按鈕,進行回編譯過程

二.如何修改內容提供者

啟動模擬器,進行應用安裝,然後把我們「回編譯」好的拖到模擬器裡面

發現安裝失敗,提示「存在同名的內容提供者」。 錯誤的原因由於我們只修改了包名,沒有修改內容提供者。 那麼如何修改「內容提供者」?

搜索結束後顯示我們 需要修改的是「provider」裡面有個「android;anthorities」的值

修改的方法同修改「package」值的屬性是一樣的,可以添加或刪減字母或者是數字(絕對不能是漢字)

將搜索到的結果進行逐一全部修改,修改完成後千萬不能忘記保存

完成之後找到其所在的目錄進行安裝,方法同樣,直接拖進模擬器裡面即可

※這里補充一點:有的apk由於沒有內容提供者,就只需要一步到位——修改包名就可以直接實現應用分身了。

三.程序無法運行安裝及對應解決方案

那麼在什麼情況下會導致程序無法運行以及安裝,它們對應的解決方案是什麼呢?

Q 1 ·   只修改apk的包名會引發內容提供者沖突

解決方案:

修改配置文件中所有內容提供者的標簽「provider」裡面「android:authorities」屬性的值

Q 2· 應用程序分身的簽名信息不同導致無法運行

解決方案:

使用相同的簽名工具對所有分身進行統一的簽名

Q 3· 有些apk在內部使用的包名只修改包名會導致程序崩潰

解決方案:

全局搜索應用程序的包名查看搜索結果,如果是字元串就進行一個替換,將原有的字元串修改為修改後的包名否則不進行替換

這就是如何修改apk的包名實現應用程序分身的具體方法了,在實際操作中可能會遇到更多的小細節問題,我們要具體問題具體分析。總之多動手多思考多實操,安卓逆向沒有什麼太難的。當然分享的相關經驗,如果有哪處不妥也歡迎在評論區回復討論或者私聊交流哈。

B. Android逆向 ida動態調試問題

先輸入」adb shell」,然後輸入」su root」獲取root許可權。

接著輸入」 chmod 777 /data/local/tmp/android_server」 給android_server加上相應的許可權。

接著輸入」 /data/local/tmp/android_server」啟動android_server。

如下圖所示:

輸入」adb forward tcp:23946 tcp:23946」進行tcp埠轉發

命令,啟動所要調試的Activity。

app會彈出」Waitting for debugger」對話框,如下圖所示:

點擊」Debug options」按鈕,在」Suspend on process entry point」, 」Suspend on thread start/exit」, 」Suspend on library load/unload」 等選項的前面打上勾,如下圖所示:

點擊」ok」後會在以下對話框的hostname中填上」localhost」

在彈出和物的」Choose process to attach to」窗口中找到」com.example.testjniso」進程,選中該進程,然後點擊」ok」按鈕。

其中可以看到com.example.testjniso進程的埠為8700。

如下圖所示:

在ida彈出的」Add map」窗口中,一律點擊」Cancle」按鈕。

點擊ida中的暫停調試按鈕,暫停當前的調試,如下圖所示:

右擊libTestJniSo.so文件,在彈出的隱告框中點擊」Jump to mole base」,跳轉到libTestJniSo.so文件的起始地址。

按下Alt+T,彈出查找對話框中輸入」 java_com_example_testjniso_MainActivity_helloFromJni」 如下圖所示:

點擊」ok」按鈕後,即可跳轉到 Java_com_example_testjniso_MainActivity_helloFromJni 函數所在的起始地址。

然後在地址處下斷點喚攜液:

再按F9重新開始調試,點擊app中的」點擊載入so文件」按鈕重新載入libTestJniSo.so,即可看到程序成功地停在了斷點處:

到此處就可以正常地調試so文件了。

Linker是什麼?
Linker就是/system/lib/linker,它是進程啟動時第一個載入的模塊,它負責管理elf可執行文件以及各個so文件的載入執行,還參與了調試的一些東西。通俗地說,它是一個elf文件的解釋器。它可以載入elf可執行文件及so動態庫。

在android 5.0下,不能執行android_server是因為android5.0自帶的linker不支持載入非pie的elf文件,但如果自己實現一個可以載入pie的linker,不就可以解決這個問題了嗎?對的,就是醬紫,補上自己的自定義linker在附件.

https://bbs.pediy.com/thread-206084.htm

C. Android有什麼好的反逆向破解apk的方法或應用

apk進行反編譯的,的確是有很多工具的,例如apktool,進行加密的話,在加密技術方面可以進行簽名驗證還有混淆代碼的方式,不過作為一個應用,了解哪有漏大圓纖洞很重要啊,我知道的很多朋友通過愛加密進行加密保護的,愛加密就提供漏洞分析,可以先檢測一下你的應用的漏洞,看看安全系數有多少,然後再進行加密保護。希望可以幫到你啦,我知道的也腔拿不多。滾仿

D. Android APP加密方法都有哪些

安卓APP加密的方法主要分成三類:源碼加密、數據安全和應用保護,而每一類又分成好幾個小項。
源碼加密包括:Dex文件保護、防二次打包、so文件保護、資源文件保護。以Dex文件保護為例,Dex文件保護又包括:高級混淆、DEX文件加殼、DEX文件加花、動態類載入、內存防mp。
高級混淆:代碼混淆,可以降低代碼可讀性、縮小包大小。
DEX文件加殼:相當於把源碼打包至其他文件夾下,逆向工具對加密後的dex文件解析,只能看到殼文件,可以防止解包後看到真正的源碼。愛加密利用挖空技術實現函數級加密,安全強度高,啟動效率快。
dex加花:由於大部分逆向工具都是線性讀取位元組碼並解析,當遇到無效位元組碼時就會引起反編譯工具位元組碼解析失敗。愛加密插入無效位元組碼到dex文件之中,同時保證該位元組碼永遠不會被執行,否則程序運行也會崩潰。這樣,就能起到反編譯的作用了。
dex動態類載入:愛加密加固後的dex文件源碼可以動態分離,在運行時,將源碼分段載入到內存當中。
內存防mp:程序運行時會釋放代碼,內存防mp可以防止程序運行時被劫持。
應用安全包括:log日誌輸入屏蔽、應用清場。清場技術依賴於雲端黑名單、白名單DB,應用每次啟動後便自動進行本地的黑名單、白名單DB數據更新,若檢測到有異常情況,則可對用戶進行提示。
數據安全包括:頁面防劫持、本地數據保護、截屏保護、內存數據防查詢、協議加密、虛擬鍵盤。

E. androidkiller是什麼軟體

Android Killer

一個朋友寫的工具,挺方便好用,發到此處,留給新手同學們學習使用。詳細信息看下文介紹。

Android Killer 是一款可視化的安卓應用逆向工具,集Apk反編譯、Apk打包、Apk簽名,編碼互轉,ADB通信(應用安裝-卸載-運行-設備文件管理)等特色功能於一 身,支持logcat日誌輸出,語法高亮,基於關鍵字(支持單行代碼或多行代碼段)項目內搜索,可自定義外部工具;吸收融匯多種工具功能與特點,打造一站 式逆向工具操作體驗,大大簡化了用戶在安卓應用/游戲修改過程中的各類繁瑣工作。
主要功能:

1、可視化、全自動的反編譯、編譯、簽名;支持批量編譯APK。

2、以樹形目錄管理反編譯出的Apk源碼文件,瀏覽、打開、編輯、都可以統一在軟體中實現,不同項目間可以自由切換,方便快捷。

3、自動識別圖像資源,並提供該類資源的快捷替換功能,方便修改這類圖片資源。

4、內置代碼編輯器,支持包含(但不限於).samli、.xml、.html等各類格式文件的語法高亮顯示,根據 smali文件格式的自動匹配相應語法;同時支持使用系統編輯器來編輯代碼文件。

5、內置基於文件內容的單行或多行代碼關鍵字搜索、可顯示無窮多個搜索結果以標簽的形式分門別類;可指定搜索范圍(整個項目或在指定的文件或文件夾中搜索)、大小寫,編碼類型;從此無需再藉助其他工具,即可輕松的完成搜索任務。

6、內嵌Unicode、UTF8、ANSI編碼互轉工具,方便硬編碼文字的檢索以及相關漢化類修改。

7、內置Log等調試工具,方便應用進程、logcat輸出查看等進階操作,監測修改apk的運行狀況,以助於分析和查找錯誤

8、內置ADB功能,包括使用ADB向設備(或模擬器)安裝、卸載、運行修改後的apk,進行測試,並可管理所連接設備的存儲文件(包括系統以及用戶文件)

9、所有操作步驟、結果都會顯示在日誌窗口,方便查看。

10、默認支持記事本、計算器等粗談小工具,開放設置介面可根據本人需要自定義外部工具,滿足個性化需求。

先放兩張界面圖:

注意:如果軟體首次運行時提示未找到JAVA SDK,說明未安裝JAVA SDK或者未將JAVA SDK設置到WINDOWS系統環境變數中,請自己手動配置。

另外說明:xml, smali, html, jar 等相關文件格式可以直接拖到窗口界面上打開,將裝有圖片的文件夾拖拽到窗口界面上,可預覽圖片中的相關格式。

Android killer 正式版 V1.0.0.102更新

本次正式版更新不得不說是給新手一次福利:

本次更新總概覽:
1. 增加代碼描述提示功能(適合新手)
2. 代碼自動補全功能(適合新手)
3. 在項目工程中優化並顯示apk圖標。
4. 優化類以及方法圖標。
5. 編譯生成文件名稱變化,以及快速打開編譯項目所在位置。
6. 增加代碼模板插入功能
7. 優化右鍵菜單,更簡潔方便
8. 優化logcat日誌顯示,查看更方便。
9. 添加16進制/10進制轉換功能

一、 增加代碼描述提示(適合新手)

將滑鼠游標定位在代碼上,會提示當前代表所表示的含義,再也不要一次次的查表看代碼了,

二、 代碼自動補全功能(適合新手)

代碼自動補全功能,在輸入法在英文狀態下。使用shift+空格鍵即使用,只需輸入第一個或者前幾個字母即可隱肆提示代碼自動補全。

三、 在項目工程中優化並顯示apk圖標

項目中顯示ap圖標可以讓你在眾多項目中找到某個項目

對於首次反編譯APK未及時更新工程選項卡圖標的原因,是因為正常APK在反編譯後才會得到其中的資源,所以在首次反編譯時,使用工具默認的安卓小圖標代替,反編譯成功後,可在「開始」列表中右鍵刷新列表,更新下工程圖標緩存即可。

四、 優化類以及方法圖標

圖標採用eclispe中圖標顯示

五、 編譯生成文件名稱變化,以及快速打開編譯項目所在位灶凳轎置

快速找到編譯後的文件

方法一:
點選 "工程管理器" 中 Android 小圖標按鈕或點擊下面路徑進行查看

方法二:直接點擊下面的藍色字體即可

F. 逆向需要的工具匯總(持續更新中)

一、砸殼工具

mpdecrypted: https://github.com/stefanesser/mpdecrypted

Clutch: https://github.com/KJCracks/Clutch

二、界面分析工具

Reveal: https://revealapp.com/

三、監控山罩如工具

snoop-it: https://code.google.com/archive/p/snoop-it/

introspy: https://github.com/iSECPartners/Introspy-iOS

四、靜態分析工具

IDA: https://www.hex-rays.com/procts/ida/support/download_demo.shtml

Hopper: https://www.hopperapp.com/

五、動態調試工具

lldb: http://lldb.llvm.org/

六、動態腳本工具

cycript: http://www.cycript.org/

frida: http://www.frida.re/

七、抓包工具

BurpSuite: https://portswigger.net/burp/download.html

Charles: https://www.charlesproxy.com/

Wireshark: https://www.wireshark.org/download.html

八、Mac工具

MachOView: https://github.com/gdbinit/MachOView

九、導出頭文件工具

class-mp: https://github.com/nygard/class-mp

十、THEOS越獄開發工具包

thoes: https://github.com/theos/theos/wiki/Installation

十一、文件管理工具

Filza ios設備查看文件系統

iFunBox/iExplorer mac設備悶耐查看ios設備的文件系統

十二、debugserver (動態調試,附加子進程)

https://www.jianshu.com/p/36dc01a37180

十三、常用Tweak.xm預處理指令

http://iphonedevwiki.net/index.php/Logos

十四、符號表恢復工具(restore-symbol)

https://github.com/tobefuturer/restore-symbol

其他工具:

iOSOpenDev: https://code.google.com/archive/p/iosopendev/downloads

insert_dylib: https://github.com/Tyilo/insert_dylib

iTerm: http://www.iterm2.com/

Alfred: https://www.alfredapp.com/

iTools: http://www.itools.cn/

更新:2018-8-16
phantomjs :提供一個瀏覽器環境的命令行逗啟介面,相當於"虛擬瀏覽器"。
PhantomJS官方地址: http://phantomjs.org/ 。
PhantomJS官方API: http://phantomjs.org/api/ 。
PhantomJS官方示例: http://phantomjs.org/examples/ 。
PhantomJS GitHub: https://github.com/ariya/phantomjs/ 。

參考文檔: http://javascript.ruanyifeng.com/tool/phantomjs.html#toc1

MonkeyDev : https://github.com/AloneMonkey/MonkeyDev
這里我就直接功能點了:
原有iOSOpenDev的升級,非越獄插件開發集成神器!

frida-ios-mp :一鍵砸殼工具,非常的好用。
https://github.com/AloneMonkey/frida-ios-mp

Hookzz :通過Hookzz可以快速找到調用的方法,理清程序調用邏輯。
源碼: https://github.com/jmpews/HookZz
文檔: https://jmpews.github.io/zzpp/getting-started/

G. 有沒有反編譯工具,可以把APK完全反成一個android項目的 , 這個android逆向助手只

我可以讓你看見項目的源碼,但是不知道怎麼才能將源碼放到eclipse中進行運行!~~我試了好多次,都不成功,導入工程後總是會出錯,不知道是我哪裡設置的和源碼中設置的不一樣!~~
方法是:第一步:你先把下載的包的後綴名改成.zip
第二步:到網上搜索dex2jar,下載一個,解壓到電腦磁碟中
第三步:打開你改完後綴名的.zip文件,將其中的.dex文件解壓出來,拷貝到dex2jar這個文件中,和lib文件夾放在同文件下
第四步:進入cmd命令,然後用cd 命令進入到dex2jar這個文件中,我的是這樣的cd C:\android反編譯工具\dex2jar-0.0.9.15\dex2jar-0.0.9.15,然後在執行dex2jar classes.dex這個命令,等待一會,反編譯好了後
第五步:到網上搜索jd_gui,然後下載一個解壓到磁碟,打開它然後點打開文件,找到剛剛反編譯好的那個文件夾,即dex2jar那個文件夾中找.jar文件,打開它就能看到源碼了!~~~
其它的資源文件什麼的就在剛剛你改完的那個zip文件中有。

不過你也可以將.apk文件再反編譯回來,在看資源和Androidmanifest.xml文件!~~~這個用到apktool,這個用起來挺簡單的,你可以到網上搜索一下!~~~

H. Android逆向之http/https網路抓包

用於android app的http/https網路抓包的主要有以下三個工具

由於這個知識點網上的資料比較多,我就不重復迅圓塌造車了,charles和burpsuite在linux下用,windows下推薦畝圓使用fiddler,功能比較強大,寫的比較好的文章:
fiddler Android下https抓包全腔迅攻略

另外的方法可見:
http://blog.dornea.nu/2015/02/20/android-remote-sniffing-using-tcpmp-nc-and-wireshark/

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

首先,逆向分析是一門技術,也是一門藝術。
其次,安卓逆向同樣可細分為應用層APK逆向、安卓設備框架、內核驅動等逆向、基於安卓的硬體產品逆向等。此處假定樓主說的是第一種逆向。
應用層的逆向分析根據需求的不同,又可細分成APK流程逆向與功能逆向。
流程逆向通常是指簡單的對APK運行流程進行分析,此類分析通常可以使用將APK置於沙盒環境中運行捕捉並查看運行結果。這種逆向需求通常不是很多,典型的工種有殺軟廠商的病毒分析工程師。
功能逆向相比流程逆向則困難得多。但需求比較普遍。實際逆向分析過程中對功能實現的理解,在很大程度上取決於逆向人員相關的軟體開發知識。比如,分析Android程序的JAVA代碼就需要掌握基本的Android軟體開發的知識。分析so庫的代碼就需要了解C/C++相關的so庫開發的知識。除了基本開發相關的能力外,逆向分析人員還需要具備以下知識:
ARM/X86/MIPS匯編語言-分析so庫時可能需要閱讀大量的反匯編代碼。
常見逆向分析工具的使用-JDGUI/IDA PRO/APKTOOL/JEB/DEX2JAR
常用的安卓程序調試與反調試手段-調試器檢測與反檢測/脫殼/反混淆
常用的加密與解密演算法-好的逆向分析人員需要有快速識別常見加密解密演算法的能力

最後,就是多動手,多動手練習是掌握逆向分析技術最好的方法。

熱點內容
cs文件編譯python 發布:2025-02-12 14:02:39 瀏覽:531
如何伺服器搬家 發布:2025-02-12 13:58:41 瀏覽:28
轎車什麼配置從哪裡看 發布:2025-02-12 13:48:51 瀏覽:453
編程vlb 發布:2025-02-12 13:33:17 瀏覽:784
電腦出現無法解析伺服器的dns對策 發布:2025-02-12 13:29:12 瀏覽:159
硬碟的存儲空間是以簇為單位 發布:2025-02-12 13:26:06 瀏覽:357
我的帳號密碼是什麼 發布:2025-02-12 13:24:37 瀏覽:281
網頁版傳奇源碼下載 發布:2025-02-12 13:23:48 瀏覽:828
模型預估演算法 發布:2025-02-12 13:09:46 瀏覽:708
武漢存儲 發布:2025-02-12 13:09:43 瀏覽:204