Android逆向入門A篇:環境配置

来源:http://www.cnblogs.com/hwding/archive/2016/09/05/5843791.html
-Advertisement-
Play Games

系列開篇,準備將方向由安卓開發轉向移動安全,首先需要瞭解的就是Android的逆向工程。 現在簡要介紹初級階段需要的工具以及如何獲取並正確配置他們 如果在資源獲取方面遇到困難,留下郵箱我會將所有東西打包發給你 JRE,JDK,SDK,NDK 關於這些工具包的配置不做贅述。 apktool apkto ...


系列開篇,準備將方向由安卓開發轉向移動安全,首先需要瞭解的就是Android的逆向工程。
現在簡要介紹初級階段需要的工具以及如何獲取並正確配置他們
如果在資源獲取方面遇到困難,留下郵箱

samli documentation

JRE,JDK,SDK,NDK

關於這些工具包的配置不做贅述。

apktool

apktool的作用是將apk文件解包並解密其中部分資源文件與配置文件,並將dex翻譯成為smali彙編器語言

  • 首先在github中搜索apktool,進入其項目頁面,根據其中的官網地址進入並下載最新的jar文件
  • 這裡是apktool的官網,鏈接若失效請告知
  • 這裡是apktool的項目地址
  • 為了方便在任何路徑下調用apktool命令,我們將對java-jar的調用包裝在一個batch文件中,逆向環境推薦windows
  • 建一個目錄,apktool,先把jar文件扔進去
  • 在apktool目錄中新建apktool.bat,寫入下列內容:
@"%~dp0d2j_invoke.bat" brut.apktool.Main %*
  • 新建d2j_invoke.bat,寫入下列內容:
setlocal enabledelayedexpansion
set LIB=%~dp0lib
set CP=
for %%X in ("%LIB%"\*.jar) do (
    set CP=!CP!%%X;
)
java -Xms512m -Xmx1024m -cp "%CP%" %*
  • 新建文件夾LIB,將apktool的jar放入
  • 進入系統設置,將apktool.bat所在目錄加入系統環境變數PATH
  • 打開命令行,輸入apktool測試可用性

dex2jar

dex2jar的作用是將dex文件轉成jar文件,或者互轉以及其他,註意baksmali已包含其中

  • dex2jar的配置過程相對簡單,因為其中已經寫好了batch文件便於調用
  • 首先在github中搜索dex2jar,進入其項目界面,根據README中的相關鏈接去下載
  • 這裡是dex2jar的項目地址
  • 同樣的仿照上面的思路,新建dex2jar目錄,將包中的lib文件夾以及其他的文件直接放在這個目錄下
  • 將dex2jar目錄添加進系統環境變數
  • 打開命令行,輸入d2j-dex2jar測試可用性,註意更改過環境變數需要重開命令行

jdgui

一個jar文件反編工具,能夠直接將jar文件反成java語言級別,配合dex2jar非常有用

  • google並下載即可

fileseek

一個強大的文件內容搜索工具,提供具體行數,查找關鍵詞以及索引時很有用

  • google並下載即可

signapk

你需要給重新打包的apk文件簽名

  • 下麵提供兩種快捷實現的工具,當然你也可以拷貝出其中的signapk.jar platform.x509.pem platform.pk8三個核心文件自行操作
  • pwelyn/SignapkTools: Windows右鍵Android簽名工具
  • achellies/SignApk: Windows下android自動簽名工具
  • 關於如何自行操作,你可以使用此命令手動對apk文件進行簽名java -jar signapk.jar platform.x509.pem platform.pk8 old.apk new.apk,其中old.apk是未經過簽名的apk文件,而new.apk是想要輸出的文件名,為了方便起見你可以寫一個batch文件自動接收後兩個參數,此處暫且不表

Hex Editor

你需要一個能夠讀寫二進位文件的工具

總結

  • 現階段所需要的大概就是這麼多了,今後隨著研究的深入可能還會藉助某些更強大的工具
  • 希望所有有意學習android逆向的人能夠堅持到最後吧

hwding


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Object對象詳細參考 JavaScript原生提供一個Object對象(註意起首的O是大寫),所有其他對象都繼承自這個對象。 構造函數: Object 構造函數為給定的值創建一個對象包裝。 如果給定值是 null or undefined,將會創建並返回一個空對象 否則,將返回一個與給定值對應類 ...
  • 如果說XHTML已經開始尋求取代HTML,那麼HTML5的實用性在於,它將兩種語法整合在一起,採用同樣有效的方式來表達HTML的抽象DOM表示。HTML5規範結合了HTML4,XHTML1以及DOM級別2HTML,併進行了相應的更新。 HTML5取代XHTML 1成為HTML規範的XML序列化格式。 ...
  • 通過案例演示開關控制項Switch、滑塊控制項Slider和分段控制項Segmented Control的使用。 ...
  • 本文主要講述了Android 實現圖片畫畫板 設計項目佈局: 首先實現畫圖功能: 接下來完成保存圖片的功能: ...
  • 1:Assertion failure in dequeueReusableCellWithIdentifier:forIndexPath: 上面是在IOS9以下一直報閃退;後來改成下麵解決: 2:CoreTelephony框架不是私有庫 私有框架的目錄為:/Applications/Xcode.a ...
  • Text用於顯示文本的React組件,並且它也支持嵌套、樣式,以及觸摸處理。在下麵的例子里,嵌套的標題和正文文字會繼承來自styles.baseText的fontFamily字體樣式,不過標題上還附加了它自己額外的樣式。標題和文本會在頂部依次堆疊,並且被代碼中內嵌的換行符分隔開。 一:屬性 1:al ...
  • Swift - UIView的無損截圖 效果 源碼 使用 ...
  • ListView 顯示大量相同格式數據 常用屬性: listSelector listView每項在選中、按下等不同狀態時的Drawable divider ListView每項間的間隔Drawable dividerHeight ListView每項間間隔的間隔高度 常用方法: setAdapte ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...