动态调试某个apk的smali代码,微信举例
本地环境:
PC:windows 10,Intellij IDEA (android studio应该一样的)
手机:nexus5 8.1系统,
其他依赖:smalidea插件,xposed
插件 https://github.com/JesusFreke/smali
我使用的版本的下载链接,也是官方的:https://bitbucket.org/JesusFreke/smali/downloads/smalidea-0.05.zip
这个插件不能在线安装,需要下载后通过Install plugin from desk来安装

apktool 反编译出smali,多dex的apk会反编译出很多个smali文件夹,我们把它们复制到同一个文件夹内

然后在命令行启动ddms,命令是monitor,如果没配置环境变量可以去Sdk\tools里运行,启动后应该是这个样子的

但是此时应该看不到应用列表,需要安装一个xposed模块来把微信变成debuggable的,我用的是BDOpener,地址在:https://github.com/riusksk/BDOpener
模块生效后应该和上图就差不多了,但是只能看到debug列表,不能通过正常的点小虫子的方式debug,这时去手机端设置。

在开发者选项中找到 选择调试应用,选上微信,然后打开等待调试程序的开关。
这时运行微信就会变成这样

是不是熟悉多了?
然后回到IDEA,来配置我们的调试器。
先把刚才反编译出来的smali整理一下,放到一个src文件夹,比如wechat/src
然后用IDEA打开项目,Android Studio可以用Open an existing Android Studio Project
然后需要右键点击src,选择Mark Directory As > Sources Root

然后给项目设置一个jdk,我的是1.8

然后配置run config


取个名字,配好端口号就行。
让手机端打开微信,运行我们的调试器吧,当然手机要usb连接电脑。

出现下图就是成功连接上了,

然后就可以愉快的下断点了

动态调试某个apk的smali代码,微信举例的更多相关文章
- 安卓动态调试七种武器之长生剑 - Smali Instrumentation
安卓动态调试七种武器之长生剑 - Smali Instrumentation 作者:蒸米@阿里聚安全 0x00 序 随着移动安全越来越火,各种调试工具也都层出不穷,但因为环境和需求的不同,并没有工具是 ...
- Android APK程序的smali动态调试
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/71250622 一.Apktool的下载和安装 Apktool是Android逆向分 ...
- 安卓动态调试七种武器之离别钩 – Hooking(下)
0x00 序 随着移动安全越来越火,各种调试工具也都层出不穷,但因为环境和需求的不同,并没有工具是万能的.另外工具是死的,人是活的,如果能搞懂工具的原理再结合上自身的经验,你也可以创造出属于自己的调试 ...
- 安卓动态调试七种武器之孔雀翎 – Ida Pro
安卓动态调试七种武器之孔雀翎 – Ida Pro 作者:蒸米@阿里聚安全 0x00 序 随着移动安全越来越火,各种调试工具也都层出不穷,但因为环境和需求的不同,并没有工具是万能的.另外工具是死的,人是 ...
- 安卓动态调试七种武器之离别钩 – Hooking(上)
安卓动态调试七种武器之离别钩 – Hooking(上) 作者:蒸米@阿里聚安全 0x00 序 随着移动安全越来越火,各种调试工具也都层出不穷,但因为环境和需求的不同,并没有工具是万能的.另外工具是死的 ...
- Android Studio 动态调试 apk 反编译出的 smali 代码
在信安大赛的准备过程中,主要通过 Android Studio 动态调试 apk 反编译出来的 smali 代码的方式来对我们分析的执行流程进行验证.该技巧的主要流程在此记录.以下过程使用 Andro ...
- 使用IDEA动态调试smali代码
原创,转载请注明出处. 一般java ide(如eclipse.idea)都可用来进行smali的动态调试,这里选择IDEA. 第1步:使用apktool反编译apk java -jar apktoo ...
- 动态调试smali代码学习记录
预备知识 DDMS Dalvik Debug Monitor Serivce,Dalvik调试监控服务,为Android SDK提供的一款拥有监控Dalvik虚拟机的调试软件,启动文件位于<An ...
- apk逆向 - smali动态调试
author: Dlive date: 2016/10/6 0x00 前言 之前有人问过smali的动态调试方法,其实网上已经有很多文章讲这些内容,但是为了方便大家学习,我还是写一下让大家少走点坑 ...
随机推荐
- ecshop 广告调用的几种方式
1,ECSHOP后台设置广告更换 前台调用 {insert name='ads' id=2 num=1} id值表达广告位置的id.num表示数量 2,在代码加函数 function getads($ ...
- pytest--命令行参数
使用pytest --help可以查看全部选项 -v:pytest -v 说明:可以输出用例更加详细的执行信息,比如用例所在的文件及用例名称等 -q(--quiet) 该选项的作用与-v/--ve ...
- sql插入语句笔记
使用INSERT插入数据行 [一次插入一行数据] 全写: INSERT INTO renshi (name, sex, age ,tel) VALUES ('胡大姐','女','35','13 ...
- C#设计模式:单例模式(Singleton)
一,单例模式:它的主要特点不是根据客户程序调用生成一个新的实例,而是控制某个类型的实例数量-唯一一个,就是保证在整个应用程序的生命周期中,在任何时刻,被指定的类只有一个实例,并为客户程序提供一个获取该 ...
- MapReduce-WordCountDemo
/** * @Author: dreamer Q * @Date: 2019/11/4 22:26 * @Version 1.0 * @Discription 使用MapReduce 开发 WordC ...
- art-template补充
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8& ...
- 通用的规则匹配算法(原创)(java+.net)
1.java里可以使用Spring的 Spel或者Google的Aviator 如果使用 Aviator 则添加以下依赖 <dependency> <groupId>com.g ...
- Linux 下源码安装ngnix
版本说明: NGINX 版本1.12.0 pcre-8.40 zlib-1.2.11 openssl-1.1.0i 安装过程 # ./configure --prefix=/usr/ngnix ...
- ltp-ddt smp_cpu_affinity
# @name SMP CPU Affinity# @desc Check that processes assigned to multiple CPUs complete without erro ...
- java访问ftp
1.连接ftp FTPClient ftpClient = new FTPClient(); ftpClient.connect(host,port); ftpClient.login(userNam ...