freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

Radare2静态分析APK(1)
FreeBuf_347731 2020-11-22 18:49:46 301322

在逆向的世界中,有一个工具叫做IDA,它被称为神器,但是它的价格实在让人望而生畏(土豪例外)。正版的全平台下来估计要20w/年,貌似还是美元。当然了,网上有很多破解版的,这个看个人喜好,我不太习惯使用破解版的,一方面功能不全,另一方面,很不稳定。于是我就找到了一个替代IDA的工具-Radare2。个人认为除了在F5(decompiler)功能上有差距之外,其他地方两者很接近了。

Radare2

破解工具Radare2中多Radare2进行了介绍,在 深入理解GOT覆写技术系列文章中对Radare2在Linux平台的使用有所介绍。这篇文章主要介绍使用Radare2对apk进行静态分析。

查看dex文件信息

本文选择某东的apk。 在这里插入图片描述从这里可以看出京东的apk应该是使用了Kotlin,不过无所谓,dex文件反汇编的结果还是smali的。 使用Radare2分析其中的主dex文件classes.dex。

icq # 枚举类名 iiq # imports (external methods) ic # 枚举类和方法 izq # 列出程序中所有的字符串

举个例子,我想查找带有vip样式的字符串,izq~vip在这里插入图片描述

检测系统API使用

检查应用程序使用了什么系统API.

  1. rabin2 -qi classes.dex |grep -i -e sms -e bluetooth -e install -e PackageManager-e Datagram-e Telephony-e nfc

在这里插入图片描述

查找引用

查找第一个vip字符串在哪里使用。很遗憾,在当前的dex中没有找到引用的地方。 在这里插入图片描述如果有引用的话,会是这个样子: 在这里插入图片描述

过滤字符串

Radare2使用~作为过滤符号,相当于grep。 有意思的字符串如下(仅共参考):

  • /system /data /bin/su …
  • http://
  • https://
  • .apk
  • %d.%d.%d.%d
  • Install
  • SMS
  • DexClassLoader InjectCall (used for Dalvik code injection)
  • application/vnd.android (mimetype used to spawn .apk installations)
  • == (embedded base64 resources)

在dex文件中,一些字符串会使用base64编码,使用环境变量RABIN2_DEBASE64或者rax-D在每个字符串上面就可以实现自动解密。

  1. RABIN2_DEBASE64=1rabin2 -qzz classes.dex

过滤方法

Radare2’s visual mode also supports an interactive heads-up display that will filter out all string, method, and class namesfrom the .dex file. 通过V_命令可以进入这种模式。

你可能感兴趣的文本如下:

  • onReceive (used by event handlers)
  • Init (all classes have one of them)
  • Password
  • Install
  • Dex
  • SMS

在这里插入图片描述

反汇编

通过afl命令列出所有的函数。通过v命令进入可视化界面。包括流程图、汇编代码、函数、符号等信息。 在这里插入图片描述

写在最后

What's the meaning of following command:

  1. dexdump -d |grep ‘“android.’|cut -d ,-f 2|sort -u

公众号

更多内容,欢迎关注我的微信公众号:无情剑客。 在这里插入图片描述


# 黑客 # Android # 网络安全技术
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 FreeBuf_347731 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
geek
FreeBuf_347731 LV.2
这家伙太懒了,还未填写个人描述!
  • 19 文章数
  • 4 关注者
Unidbg模拟执行so
2021-08-24
FiddlerCore使用
2021-08-16
Frida的Stalker功能介绍
2021-01-14