Radare2静态分析APK(1) – 作者:无情剑客Burning

在逆向的世界中,有一个工具叫做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

公众号

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

来源:freebuf.com 2020-11-22 18:49:46 by: 无情剑客Burning

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论