freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

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

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

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

FreeBuf+小程序

FreeBuf+小程序

Doldrums:一款功能强大的逆向工程分析工具
2021-09-05 16:40:34

Doldrums介绍

Doldrums是一款功能强大的逆向工程分析工具,主要针对的是Android端Flutter应用程序。具体来说,Doldrums是一个针对Flutter/Dart Android代码(一般称之为libapp.so)的解析器和信息提取器,支持所有的Dart v2.10发行版。在运行时,Doldrums可以导出隔离快照中存在的所有类。

注意:该工具当前处于测试版本,还缺少某些反序列化功能和一些类的信息。

关于Flutter和Dart

Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。

而Dart则是谷歌开发的计算机编程语言,后来被Ecma (ECMA-408)认定为标准。它被用于web、服务器、移动应用和物联网等领域的开发。它是宽松开源许可证(修改的BSD证书)下的开源软件。

工具要求

Doldrums的运行需要使用pyelftools来解析ELF格式内容,我们可以使用下列命令安装该组件:

pip3 install pyelftools

工具使用

该工具的使用非常简单,我们可以直接运行下列命令,将libapp.so和output分别替换为相应的二进制文件以及目标输出文件。需要注意的是,verbose选项仅支持 Dart snapshot v2.12:

python3 src/main.py [-v] libapp.so output

工具期待的输出即为导出的所有类,下面给出的是导出类的格式:

class MyApp extends StatelessWidget {

    Widget build(DynamicType, DynamicType) {

        Code at absolute offset: 0xec85c

    }

 

    String myPrint(DynamicType, DynamicType) {

        Code at absolute offset: 0xeca80

    }

}

绝对代码偏移量表明的是原生函数在libapp.so文件中的具体位置。

项目地址

Doldrums:GitHub传送门

参考资料

https://rloura.wordpress.com/2020/12/04/reversing-flutter-for-android-wip/
https://github.com/mildsunrise/darter


# 逆向工程 # 逆向分析
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录