[英]injecting jar library into apk app
我想將一個 jar 庫注入到一個 apk 文件中,以便從 smali 代碼中使用它。
這是我所做的:
apktool d -f -r app-debug.apk
apk apktool d -f -r app-debug.apk
/libs
目錄下將調用我的庫添加到創建鈎子上的主要活動,如下所示:
invoke-static {p0}, Lcom/example/injection/Inject;->test(Landroid/content/Context;)V
重新打包 apk apktool b .
jarsigner
對生成的 apk 進行簽名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.