簡體   English   中英

將 jar 庫注入 apk 應用程序

[英]injecting jar library into apk app

我想將一個 jar 庫注入到一個 apk 文件中,以便從 smali 代碼中使用它。

這是我所做的:

  1. apktool d -f -r app-debug.apk apk apktool d -f -r app-debug.apk
  2. 將jar文件復制到反編譯項目的/libs目錄下
  3. 將調用我的庫添加到創建鈎子上的主要活動,如下所示:

     invoke-static {p0}, Lcom/example/injection/Inject;->test(Landroid/content/Context;)V
  4. 重新打包 apk apktool b .

  5. 使用jarsigner對生成的 apk 進行簽名
  6. 然后我使用adb install app-debug.apk/dist/目錄adb install app-debug.apk

該應用程序安裝成功,但立即崩潰。 每次崩潰時,logcat 都會輸出以下消息:

4-14 00:37:45.397 3016-3162/? I/logserver: extract_appname, forward search, appname=com.example.ben.myapplication
04-14 00:37:45.397 3016-3162/? I/logserver: get_fault_appname, appname=com.example.ben.myapplication
04-14 00:37:45.400 3016-3161/? I/logserver: handle_notify_event, send msg [submit:trigger=0,bugtype=2,modulename=com.example.ben.myapplication,level=1,testtype=NORMAL,path=/data/log/unzip/ALE-L21_ALE-L21C432B584_0000000000_20180414003745_crash,mode=1;]
04-14 00:37:45.688 23691-23691/com.example.ben.myapplication I/Process: Sending signal. PID: 23691 SIG: 9

我在設備上運行它,所以我無法真正訪問崩潰報告,但這顯然是因為找不到com/example/injection/Inject

我之前做過注入,但我沒有添加 jars,而是將 smali 類添加到項目中,但我想嘗試添加 jar libs。 有沒有辦法做到這一點?

libs 文件夾用於本地庫,而不是用於 JAR 文件。 JAR 文件包含可以在桌面 JRE 中執行的 .class 文件,但不能在 Android 上執行,因為 Android 使用不同的字節碼格式。 為了在Android上運行JRE字節碼,使用DX編譯器生成DEX(Dalvik可執行文件)文件。 如果要將 JAR 文件中包含的類注入 APK(並且已通過 apk-tool 獲得 SMALI IR 代碼),則必須使用 DX 從 jar 生成 dex 文件,然后使用 baksmali生成 smali 文件的工具,然后您必須將其集成到反編譯 APK 的文件夾結構中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM