Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> android加固系列—4.加固前先學會破解,無源碼調試apk,androidapk

android加固系列—4.加固前先學會破解,無源碼調試apk,androidapk

編輯:關於android開發

android加固系列—4.加固前先學會破解,無源碼調試apk,androidapk


【版權所有,轉載請注明出處。】

項目關鍵java代碼為,將tv設置為從jni讀取的字符串,這裡的破解內容是直接從apk動態調試修改最終顯示在tv裡的字符內容

 

1.工具介紹

Apktool,反編譯源碼用

Android studio+smalidea插件,動態調試用

 

2.准備工作

A.配置插件

下載插件smalidea,地址https://bitbucket.org/JesusFreke/smali/downloads

這個

下載完成後,打開android studio的Settings | Plugins,點擊選中下載好的zip壓縮包。並apply。

此步驟的目的是讓android studio能識別smali代碼,並能正常下斷點。

B.反編譯apk

下載apktool並反編譯apk

 

 

3.動態調試

首先在android studio新建一個項目,然後把剛才反編譯的smali源碼

 

全部拷到項目的app | src | main | java下,把這個目錄下之前的全部刪除。

 

在MainActivity$1文件的這裡下個斷點,如下圖

 

接下來先以debug模式啟動程序,注意,是在手機上啟動。

如果你手機上有這些選項,設置 | 開發者選項 | 選擇調試應用(選擇crackme)| 等待調試器(勾選),

然後就可以直接點擊程序圖標,會出現Waiting For Debugger對話框。

如果手機上沒有這些選項,可以用adb命令的方式啟動,先從反編譯的androidmanifest.xml中找到對應的包名com.example.crackme和主activity名MainActivity。然後cmd窗口輸入

adb shell am start -D -n com.example.crackme/.MainActivity

 

手機上出現Waiting For Debugger對話框。

這時打開as的,大概等待兩三秒就會出現

 

然後再點擊Run | Edit Configurations,新建一個Remote並起碼假設crack,填寫端口為上圖的com.example.crackme對應的端口8700,選擇source using module’s classpath為我們之前創建的項目,點擊OK

現在終於可以開始調試了,點擊Run | Debug ‘crack’,注意一定要關閉其他IDE以防止端口占用,否則會出現類似下面的錯誤

 

程序已經調試起來了,因為我們設斷點的地方需要先點擊一下按鈕“檢測是否被crack”,停在了斷點處

 

這就和java斷點調試差不多了,可以watch寄存器v0,v1,v2等,這裡v1接收的是從jni層返回的字符串

這裡我們只需要把最後程序界面的文字顯示成huaxiaozhou就可以了,找到textView設置的從jni層返回的字符串

 

對mTransformed右鍵Set Value,在雙引號內輸入huaxiaozhou並敲回車鍵,會出現等待框

 

然後此變量的值就變了,這時候點擊Resume或stop

 

手機界面上就顯示huaxiaozhou了。

 

項目地址

smalidea地址

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved