Doldrums:一款功能強大的逆向工程分析工具
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傳送門】
























