<dd id="sga4y"><optgroup id="sga4y"></optgroup></dd>
<nav id="sga4y"><code id="sga4y"></code></nav>
  • <optgroup id="sga4y"></optgroup>

    原文地址:http://drops.wooyun.org/tips/7181

    smalidea是一款 IntelliJ IDEA/Android Studio的 smali 插件

    已有功能


    安裝


    開啟應用調試


    要調試一個apk里面的dex代碼,必須滿足以下兩個條件中的任何一個:

    可選方案:

    個人覺得改 boot.img和二次打包比較麻煩,所以這里采用 hook 方式達到開啟所有應用調試的目的,xposed 插件代碼如下

    #!java
    public class Debug implements IXposedHookLoadPackage {
    
        public boolean debugApps = true ;
        public static final int DEBUG_ENABLE_DEBUGGER = 0x1;
        public String tag = "IDG";
    
        @Override
        public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
    
            if(lpparam.appInfo == null ||
                    (lpparam.appInfo.flags & (ApplicationInfo.FLAG_SYSTEM | ApplicationInfo.FLAG_UPDATED_SYSTEM_APP)) !=0){
                return;
            }
    
            tag = tag + lpparam.packageName;
    
            XposedBridge.hookAllMethods(Process.class, "start", new XC_MethodHook() {
                @Override
                protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
    
                    int id = 5;
                    int flags = (Integer) param.args[id];
    
                    Log.d(tag,"flags is : "+flags);
    
                    if (debugApps) {
                        if ((flags & DEBUG_ENABLE_DEBUGGER) == 0) {
                            flags |= DEBUG_ENABLE_DEBUGGER;
                        }
                    }
    
                    param.args[id] = flags;
                    Log.d(tag,"flags changed : "+flags);
    
                }
            });
        }
    
    }
    

    效果如下圖

    如果遇到如下錯誤

    Adb rejected connection to client
    

    可以使用重啟 adb server 來解決

    adb kill-server
    
    adb start-server
    

    如果調試中遇到如下錯誤,確保關閉了其他 IDE 或者 DDMS,解除端口占用

    調試應用


    注意:IDEA 14.1及以上版本才支持單步調試

    reference


    http://www.kanxue.com/bbs/showthread.php?p=1338639

    https://github.com/JesusFreke/smali/wiki/smalidea

    https://github.com/pylerSM/XInstaller

    97av