【Smali】Smali文件的动态调试
1.简介
smalidea是一个IntelliJ IDEA/Android Studio smali语言插件,可实现动态调试smali代码。下载地址为:https://github.com/JesusFreke/smali/wiki/smalidea。Android Studio的安装,就是傻瓜式的安装,一路next下去。接下来笔者介绍一下笔者的软件环境:jdk 1.8,android studio 2.3,smalidea 0.0.5,测试的app是笔者写的一个demo.
2.动态调试Smali需要的软件
调试的过程中需要准备的软件有android studio、smalidea、baksmali。经过笔者的测试,发现不同版本的软件搭配,会得出许多问题。这里笔者测试出,在笔者的软件环境下情况正常,Android Studio动态调试AKP需要的软件集合。
3.动态调试smali
3.1 生成Smali文件
将需要编译的软件放到apktool目录下面。

然后执行这个命令:
java -jar baksmali-2.0.3.jar test.apk -o ./projects/test/src
就可以得到projects这个文件夹。在执行上面这行代码时,可能会遇到“com.beust.jcommander.MissingCommandException: Expected a command”的异常信息。这时候可以运行
java -jar baksmali-2.0.3.jar -?
来查看帮助信息。通过报出的异常信息,和观察的帮助信息后,知道应该添加disassemble命令参数:
java -jar baksmali-2.0.3.jar disassemble test.apk -o ./projects/test/src
3.2 导入Smali文件
打开visual studio软件,File -> New -> Import Project...

然后选中上面解压出来的test文件夹

接下来,我们就可以在project中看到自己的项目了

3.3 安装Smalidea插件
现在还没有smali插件,所以不会进行语法检查。
File -> Settings...然后选中Plugins,选中Install plugin from disk... ,然后找到解压出来的smalidea 0.0.5.zip文件,点击确认重启,smalidea插件就安装成功了。

这时候,笔者建议点开查看打开smali文件看看,如果在Log台中,出现错误信息,那么表明你的Smalidea版本不对,不能正常解析。
3.4 设置远程监听
点击 Run -> Edit Configurations... 然后点击+号,选择remote。

然后再设置端口为8700

3.5 查看DDMS
在sdk tools中点击 monitor.bat ,就会看见DDMS,打开客户端的软件端口的信息就会出现,然后选中端口。

3.6 开始调试
在打好断点后,点击调试按钮。

然后就会断点处出现调试界面,

【Smali】Smali文件的动态调试的更多相关文章
- IDA动态调试Android的DEX文件
Android程序的dex文件的动态调试确实是个大问题,网上也有一些教程但是不是特别的详细,今天用到了IDA动态调试Android的DEX文件,特此记录一下. IDA 6.6新添加了对dex文件的调试 ...
- Android动态调试so库JNI_Onload函数-----基于IDA实现
之前看过吾爱破解论坛一个关于Android'逆向动态调试的经验总结帖,那个帖子写的很好,对Android的脱壳和破解很有帮助,之前我们老师在上课的时候也讲过集中调试的方法,但是现在不太实用.对吾爱破解 ...
- Netbeans 6.8 + apktool_2.0.0b9 动态调试smali文件
前言 很早就知道用Netbeans能够单步调试smali,一直拖到现在才真正的自己实现了一次~ 下面是详细步骤! 0×1 环境及工具 a.apktool_2.0.0b9 下载地址:http://con ...
- apk逆向 - smali动态调试
author: Dlive date: 2016/10/6 0x00 前言 之前有人问过smali的动态调试方法,其实网上已经有很多文章讲这些内容,但是为了方便大家学习,我还是写一下让大家少走点坑 ...
- 安卓动态调试七种武器之长生剑 - Smali Instrumentation
安卓动态调试七种武器之长生剑 - Smali Instrumentation 作者:蒸米@阿里聚安全 0x00 序 随着移动安全越来越火,各种调试工具也都层出不穷,但因为环境和需求的不同,并没有工具是 ...
- 使用IDEA动态调试smali代码
原创,转载请注明出处. 一般java ide(如eclipse.idea)都可用来进行smali的动态调试,这里选择IDEA. 第1步:使用apktool反编译apk java -jar apktoo ...
- AndroidStudio+ideasmali动态调试smali汇编
0x00 前言 之前对于app反编译的smali汇编语言都是静态分析为主,加上一点ida6.6的动态调试,但是ida的调试smali真的像鸡肋一样,各种不爽,遇到混淆过的java代码就欲哭无泪了 ...
- Android Studio动态调试smali代码
工具: Android Studio版本: 3.0.1 smalidea插件: https://github.com/JesusFreke/smali/wiki/smalidea. 反编译工具:本节先 ...
- Android Studio 动态调试 apk 反编译出的 smali 代码
在信安大赛的准备过程中,主要通过 Android Studio 动态调试 apk 反编译出来的 smali 代码的方式来对我们分析的执行流程进行验证.该技巧的主要流程在此记录.以下过程使用 Andro ...
随机推荐
- 轻松解决vuejs跨域
Vuejs跨域问题实战 有时候,本地使用webpack开启一个node的dev端口,项目中使用vuejs去访问别人家的api,比如豆瓣或者其他的api,不使用jsonp肯定就会报跨域的问题. 如何让我 ...
- ASP入门(十八)-访问Access中的数据库
Northwind 数据库 这是一个微软为软件的使用者提供的一个练习用的数据库,它模拟了一个商贸公司日常业务流程所需要的一些数据. 并且网络上大部分的 SQL 语句的讲解都是以这个数据库为例子讲解的. ...
- 推荐一款jQuery ColorPicked 颜色拾取器插件
先看实现的效果图, 本文底部有完整demo 不想看我墨迹的可以跳过了^_^. 官网地址:http://www.eyecon.ro/colorpicker/#about 代码SVN 地址:https:/ ...
- 当Ruby的model名字出错时,在现实view时显示错误的提示
app/controllers/courses_controller.rb:1:in `<top (required)>' app/controllers/courses_controll ...
- 微信小程序 - cb回调(typeof cb == "function" && cb(obj);)
typeof cb == "function" && cb(obj) 但凡用了Promise,这种方式就可以抛弃了. Page({ data: {}, onLoad ...
- 微软BI 之SSRS 系列 - 使用分组 Group 属性实现基于父子递归关系的汇总报表
基于父子关系的递归结构在公司组织结构里比较常见,基本上都是在一张表里实现的自引用关系.在报表中如果要实现这种效果,并且在这个基础上做一些数据的汇总,可以使用到下面提到的方法. 要实现的效果大致如下 - ...
- C++ 第三课:常量转义字符
常量转义字符 以下的转义字符使普通字符表示不同的意义. 转义字符 描述 \' 单引号 \" 双引号 \\ 反斜杠 \0 空字符 \a 响铃 \b 后退 \f 走纸 \n 换行 \r 回车 \ ...
- MySql 比Replace Into更适合的用法,外加SqlServer的方式。
Mysql: INSERT INTO `his_examine_result` (Mid,His_Examine_Mid, His_File_Mid, ResultType, His_Employee ...
- JAVA的CLASS文件详解
一.事例 1.1 Test.java public class Test { public static void main(String[] args) { System.out.println(& ...
- MySQL查看当前用户、存储引擎、日志
#查看MySQL的当前用户 mysql> SELECT USER(); +----------------+ | USER() | +----------------+ | root@local ...