<span id="7ztzv"></span>
<sub id="7ztzv"></sub>

<span id="7ztzv"></span><form id="7ztzv"></form>

<span id="7ztzv"></span>

        <address id="7ztzv"></address>

            原文地址: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

            <span id="7ztzv"></span>
            <sub id="7ztzv"></sub>

            <span id="7ztzv"></span><form id="7ztzv"></form>

            <span id="7ztzv"></span>

                  <address id="7ztzv"></address>

                      亚洲欧美在线