前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Doldrums:一款功能强大的逆向工程分析工具

Doldrums:一款功能强大的逆向工程分析工具

作者头像
FB客服
发布2021-11-08 15:08:50
1.4K0
发布2021-11-08 15:08:50
举报
文章被收录于专栏:FreeBuf

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格式内容,我们可以使用下列命令安装该组件:

代码语言:javascript
复制
pip3 install pyelftools

工具使用

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

代码语言:javascript
复制
python3 src/main.py [-v] libapp.so output

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

代码语言:javascript
复制
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:

https://github.com/rscloura/Doldrums

参考资料

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

https://github.com/mildsunrise/darter

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 项目地址
  • 参考资料
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档