【车联网安全系列】安卓漏挖之“动态调试smali代码”

admin 2022年11月29日09:47:49移动安全 IoT工控物联网评论21 views2018字阅读6分43秒阅读模式
【车联网安全系列】安卓漏挖之“动态调试smali代码”


 摘要

安卓漏挖第二步,学会动态调试smali代码。


 由apk获取smali代码

用上文自己写的apk,以下三种方法都可以将apk反编译成smali代码。ps:win10的环境


01

Android Killer反编译去获取

Android Killer的安装,只需将附件中的安装包解压,双击AndroidKiller.exe即可。


将app-debug.apk拖入到AK中,选中smali右键点击属性即可进行反编译,得到Smali所在的文件夹。

【车联网安全系列】安卓漏挖之“动态调试smali代码”


02

 通过解压apk提取dex

java -jar baksmali.jar d classes.dex

得到Smali代码


03

使用apktool工具反编译apk

apktool工具安装参考文章(https://blog.csdn.net/weixin_42603784/article/details/86102599),下载apktool_2.3.4.jar,将apktool_2.3.4.jar重命名为apktool.jar,将apktool.bat和apktool_2.3.4.jar和我们要反编译(https://so.csdn.net/so/search?q=反编译&spm=1001.2101.3001.7020)的apk文件放在一个目录即可。


反编译后会生成一个以apk文件名命名的目录


java -jar apktool.jar d app-debug.apkI: Using Apktool 2.6.1 on app-debug.apkI: Loading resource table...I: Decoding AndroidManifest.xml with resources...I: Loading resource table from file:C:UsersyangmutouAppDataLocalapktoolframework1.apkI: Regular manifest package...I: Decoding file-resources...I: Decoding values */* XMLs...I: Baksmaling classes.dex...I: Copying assets and libs...I: Copying unknown files...I: Copying original files...


APP-DEBUG├─.idea├─original│  └─META-INF├─res│  ├─anim│  ├─color│  ├─color-v21...


Android Studio动态调试smali代码

01

安装ideasmali插件

AS打开File-Settings-Plugins,搜索idesmali发现并没有该插件


【车联网安全系列】安卓漏挖之“动态调试smali代码”


我们进行本地install,首先下载该插件,插件官网下载地址(https://bitbucket.org/JesusFreke/smali/downloads/smalidea-0.05.zip),然后在箭头处导入刚下载的插件。


【车联网安全系列】安卓漏挖之“动态调试smali代码”


这里有安装第三方插件的提示,


【车联网安全系列】安卓漏挖之“动态调试smali代码”


Accept,然后就能在installed里面看到了


【车联网安全系列】安卓漏挖之“动态调试smali代码”


建议重启下AS(习惯了)。这里坑到我了,我后面导入Smali代码后,里面的一些代码一直爆红色,是因为这个插件重启后没有安装加载成功。搜了搜,看到了这个链接(https://blog.51cto.com/lilongsy/5456865),


【车联网安全系列】安卓漏挖之“动态调试smali代码”


猜测是新版本的AS不支持加载老版本的Smalidea。所以解决方案是下载更高版本的smalidea-0.06.zip。下载链接(https://bitbucket.org/JesusFreke/smalidea/downloads/)然后同样的操作,导入成功。


02

查看apk是否可调试

开始动态调试之前,需要有个前提条件。在AK或者AS中看AndroidManifest.xml中的application的android:debuggable要为 true,如果为flase或者不存在的话,要修改添加后才能调试。

【车联网安全系列】安卓漏挖之“动态调试smali代码”



另外,这里要注意下apk的package名和入口Activity


03

 AS导入反编译后的目录并配置SDK

AS导入反编译后的目录apk-debug,


【车联网安全系列】安卓漏挖之“动态调试smali代码”


然后点击smali_classes3目录右键->Mark Directory->Source Root,完成后,该目录会变成浅蓝色。


【车联网安全系列】安卓漏挖之“动态调试smali代码”


因为插件idesmali成功加载了所以打开Smali代码是可以成功解析的,不会爆红。


【车联网安全系列】安卓漏挖之“动态调试smali代码”


配置SDK,File-->Project Structure,


【车联网安全系列】安卓漏挖之“动态调试smali代码”


04

新版本AS调试Smali代码

配置雷电模拟器,打开root权限和ADB调试。


【车联网安全系列】安卓漏挖之“动态调试smali代码”


Run-->Attach to Process,点击红框的位置,选择helloworld2进程。


【车联网安全系列】安卓漏挖之“动态调试smali代码”


【车联网安全系列】安卓漏挖之“动态调试smali代码”


现在模拟器成功连接。


【车联网安全系列】安卓漏挖之“动态调试smali代码”


下断点,点击行数,然后输入用户名和密码,点击登录.发现调试成功.


【车联网安全系列】安卓漏挖之“动态调试smali代码”



【车联网安全系列】安卓漏挖之“动态调试smali代码”


【车联网安全系列】安卓漏挖之“动态调试smali代码”



原文始发于微信公众号(华云安):【车联网安全系列】安卓漏挖之“动态调试smali代码”

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年11月29日09:47:49
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  【车联网安全系列】安卓漏挖之“动态调试smali代码” http://cn-sec.com/archives/1433204.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: