逆向五、用AndroidStudio动态调试smali

思路:APK-->反编译为Smali文件-->导入Android Studio里进行动态调试

一、自己新建一个APK

       使用Android Studio新建一个包含有用户名和密码的最基础的APK,把这个APK下载到自己的手机里,并连接好数据线

二、把这个APK拖进AndroidKiller里,反编译为Smali文件

       点击工程管理,右键Smali—>打开方式—>打开路径

    找到smali文件夹

 在C盘里新建一个app-debug文件夹,复制上一步的smali文件夹,并重命名为src

三、在AndroidKiller里查看包名和MainActivity

       记住下面方框里的路径

四、导入smali文件夹到Android Studio

      在Android Studio里打开app-debug文件夹:File—>Open—>C:\app-debug

五、配置JDK

    选择File->Project Structure

 

六、要用AndroidStudio动态调试smali代码,首先要安装ideasmali插件

       安装ideasmali插件,File->Settings->Plugins,下载安装ideasmali插件。
       ideasmali下载链接:https://pan.baidu.com/s/1htl26qS        密码:0pre
找到ideasmali插件的位置(不需要解压压缩包)
    然后重启AndroidStudio即可

七、设置需要调试的smali文件。

        app-debug/src文件夹右键-->Make Directory As --->Source Root

 设置调试器:run-->edit configurations

    +-->Remote,新建一个debug

八、打开命令行 输入命令

1)adb shell am start -D -n com.example.myapplication/com.example.myapplication.MainActivity

对apk进行动态调试,这条命令运行后手机屏幕将会进入到调试界面,千万别点手机上弹出来的对话框(不要点Force Close),它是在等待debug接入

2)查看Android Device Monitor 并记住下面红框里的两个值

新版本的AndroidStudio已经淘汰了Android Device Monitor功能,我们不能在AndroidStudio菜单上直接打开Android Device Monitor

找到了新的方法,我的 Android Device Monitor的路径为:C:\Users你的用户名\AppData\Local\Android\Sdk\tools下打开monitor.bat

然后把Android Device Monitor关掉(这里一定要关掉,因为它会占用8700端口 导致后面转发端口失败)

3)开启转发

C:\Users\zhang>netstat -aon |findstr 8700

  TCP    127.0.0.1:8700         0.0.0.0:0              LISTENING       16324

看看有没有哪个进程占用端口,就kill掉占用端口PID为的17000进程,没有就直接开启端口转发:

C:\Users\zhang>taskkill /PID 16324 /F

成功: 已终止 PID 为 16324 的进程。

然后输入以下命令开启转发(这里jdwp是自己Android Device Monitor中要调试app的Online值,tcp为debug值)

C:\Users\zhang>adb forward tcp:8700 jdwp:18335

adb server version (41) doesn't match this client (39); killing...

* daemon started successfully

九、动态调试

       在灰色框内点击左键

Run-->Debug 'Smali'进行调试

手机界面会打开APK,你输入的用户名和密码会显示在AndroidStudio里

按F8执行下一步,F9运行程序 

可以看到程序执行的逻辑 Watches窗口中可以点+按钮添加自己想看的寄存器的名字 就可以看到这个寄存器的值了

注意:要先设置进程debug,然后再打开DDMS查看端口,这样进程的PID就不会改变,不会出错。 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值