Android Studio + smalidea进行smail动态调试

本人刚接触Android方面的逆向,这是一篇笔记贴,大牛可忽略0x00 用到的工具

  • Android Studio
  • smalidea
  • Android killer
  • 一部root过的手机

0x01 反编译APK

将apk拖入Android killer中反编译生成工程目录

0x02 Android Studio 安装smalidea

1. 打开Android Studio ,点击File,选择Settings,或者按快捷键Ctrl+Alt+S打开设置界面,点击Plugin,再点击install plugin from disk。。

2. 在弹出的框中选择我们下载好的smalidea,点击OK

经过上面两步就安装好了smalidea插件,特别说明一下,添加成功后,smali代码会语法高亮,如果没有添加成功

原因自查。。。。。。

0x03 导入反编译后的代码

1. 在Android Studio中选中Import Project

2.选择反编译后的Project根目录

3.弹出的窗口选择第一项,一直点击Next,直到Finish完成导入项目

4.导入完成后就可以就可以看到smali了

0x03 进行调试配置

1.在Android Studio中按照如图方式进行配置,添加一个调试

2.添加完调试,修改调试名字和调试端口

3.配置完成后可以的效果

0x04 安装并开始调试

1.首先我们现在MainActivity中的OnCreate函数中鼠标左键下一个断点如图

2.在手机中安装我们的应用并且以调试方式打开

使用的命令


  1. adb install -radb shell am start -D -n packageName/ActivityName  

3.打开一个Monitor选中想要调试的应用

 

4.这里我们监视v0寄存器,F8单步,F7步入,其实和OD的调试差不多的,可以看到寄存器的值改变

5.变量监视窗口,我们可以在这添加并且监视寄存器

 

这样就可以开始调试smail了,比较简单。

作者:隔壁雷哥

来源:51CTO

时间: 2024-08-02 17:34:28

Android Studio + smalidea进行smail动态调试的相关文章

android studio 第一个真机调试

android 开发需要使用的模拟器来测试一下应用程序的正确性,通常做法是使用模拟器,但是模拟器这个东西,太吃资源了,并且卡的太厉害了,如果有条件的话,可以使用真机来模拟测试,晚上花了点时间,用真机测试了下,遇到一些问题,记录下来,有需要的朋友参考一下, 第一个步骤:找到一个真机,安装好驱动将,手机打到调试模式 第二个步骤:打开android studio ,选择app下的edit configurations                       选择deployment target

Android Studio 使用正式签名debug调试

解决问题: 很多时候我们使用第三方登录什么的东西,需要我们提供正式签名,但是我们总是需要调试的. 一般情况,我们不可能一次性OK,那么每一次调试都需要正式签名打包,并安装,然后再调试,这也太麻烦了,. 所以,直接上代码: signingConfigs { release { keyAlias 'phyooos' keyPassword 'phyooos' storeFile file('phyooos.jks') storePassword 'phyooos' } } buildTypes {

android studio真机调试 程序安装位置?

问题描述 android studio真机调试 程序安装位置? android studio真机调试 ,找不到程序的安装位置. Log.i("sbsb",getApplicationContext().getFilesDir().getAbsolutePath()); 结果为:/data/data/com.sbsb.photoupload/files 但是手机中并不存在这个路径..这是怎么回事? 解决方案 有的文件在电脑上就是看不到,你服不服 解决方案二: Android Studio

android studio-Android Studio使用真机可以调试,但是使用Genymotion却提示以下错误

问题描述 Android Studio使用真机可以调试,但是使用Genymotion却提示以下错误 03-23 02:25:43.682 1726-1726/? D/dalvikvm: Late-enabling CheckJNI 03-23 02:25:44.182 1726-1726/com.example.chenxuanhe.myapplication W/dalvikvm: VFY: unable to find class referenced in signature (Landr

android studio调试问题

问题描述 android studio调试问题 最近在使用android studio开发,感觉进行调试时,android studio显示的函数调用堆栈不正确,如下图中所示,按照android studio显示,Activity.java文件的第5104行是performCreate()函数,但实际打开并不是 解决方案 android studio 中的编码问题Android studio 解决setText中文乱码问题android studio 的糟心配置问题---------------

简单实用的Android studio 调试技巧

说到android studio的调试,很多人可能会说,这有什么可讲的不就是一个断点调试么,刚开始我也是这么认为的,直到我了解之后,才发现,调试原来可以玩的这么牛.下面我分别一一做介绍. 条件断点(Conditional Breakpoints) 这个调试模式是我最喜欢的,简直不能再方便了,以前遇到在循环里面打断点,需要看某个条件下的值,我只能一遍遍点击,直到满足条件. 那么这个条件断点改怎么用呢,在你的断点上点击右键,就会弹出一个选择对话框,在里面的condition框里面填写上你所需要中断的

5.0、Android Studio调试你的应用

Android Studio包含了一个调试器,允许你调试运行在Android虚拟机或连接的Android设备的应用.通过Android Studio的调试器,你可以: 1. 选择你调试设备的app 2. 为你的代码设置断点 3. 在运行时检测变量和表达式 4. 截图和录像 通过点击工具栏中的Debug按钮来开始调试,Android Studio生成一个APK,并且使用调试key进行签名,安装到选定的设备中运行并打开调试Debug窗口. 如果点击Debug后,在Select Deployment

android studio 调试出现问题

问题描述 android studio 调试出现问题 What went wrong: Execution failed for task ':app:dexDebug'. > com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:Program FilesJavajdk1.8.0_25binjava.exe'' finishe

Android Studio你不知道的调试技巧

写代码不可避免有Bug,通常情况下除了日志最直接的调试手段就是debug;那么你的调试技术停留在哪一阶段呢?仅仅是下个断点单步执行吗?或者你知道 Evaluate Expression,知道条件断点;可是你听说过日志断点吗,Method Breakpoint, Exception Breakpoint 呢?还有高大上的 Field Watchpoint ?   几种不同的断点 你有关注过Android Studio旁边断点的区别吗?比如上图三个断点有什么不同?且听我一一道来. 调试基础 一般来说