Doldrums:一款功能强大的逆向工程分析工具
<p><img title="Doldrums:一款功能强大的逆向工程分析工具" alt="Doldrums:一款功能强大的逆向工程分析工具" border="0" src="https://zhuji.jb51.net/uploads/img/202305/ab5045f01fcc99d01b74a796b56854f2.jpg"></p>
<h3>
Doldrums介绍</h3>
<p>
Doldrums是一款功能强大的逆向工程分析工具,主要针对的是Android端Flutter应用程序。具体来说,Doldrums是一个针对Flutter/Dart Android代码(一般称之为libapp.so)的解析器和信息提取器,支持所有的Dart v2.10发行版。在运行时,Doldrums可以导出隔离快照中存在的所有类。</p>
<p>
注意:该工具当前处于测试版本,还缺少某些反序列化功能和一些类的信息。</p>
<h3>
关于Flutter和Dart</h3>
<p>
Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。</p>
<p>
而Dart则是谷歌开发的计算机编程语言,后来被Ecma (ECMA-408)认定为标准。它被用于web、服务器、移动应用和物联网等领域的开发。它是宽松开源许可证(修改的BSD证书)下的开源软件。</p>
<h3>
工具要求</h3>
<p>
Doldrums的运行需要使用pyelftools来解析ELF格式内容,我们可以使用下列命令安装该组件:</p>
<ol class="dp-xml">
<li class="alt">
<span><span>pip3installpyelftools</span></span>
</li>
</ol>
<h3>
工具使用</h3>
<p>
该工具的使用非常简单,我们可以直接运行下列命令,将libapp.so和output分别替换为相应的二进制文件以及目标输出文件。需要注意的是,verbose选项仅支持 Dart snapshot v2.12:</p>
<ol class="dp-xml">
<li class="alt">
<span><span>python3src/main.py[-v]libapp.sooutput</span></span>
</li>
</ol>
<p>
工具期待的输出即为导出的所有类,下面给出的是导出类的格式:</p>
<ol class="dp-xml">
<li class="alt">
<span><span>classMyAppextendsStatelessWidget{</span></span>
</li>
<li>
</li>
<li class="alt">
<span>Widgetbuild(DynamicType,DynamicType){</span>
</li>
<li>
</li>
<li class="alt">
<span>Codeatabsoluteoffset:0xec85c</span>
</li>
<li>
</li>
<li class="alt">
<span>}</span>
</li>
<li>
</li>
<li class="alt">
</li>
<li>
</li>
<li class="alt">
<span>StringmyPrint(DynamicType,DynamicType){</span>
</li>
<li>
</li>
<li class="alt">
<span>Codeatabsoluteoffset:0xeca80</span>
</li>
<li>
</li>
<li class="alt">
<span>}</span>
</li>
<li>
</li>
<li class="alt">
<span>}</span>
</li>
</ol>
<p>
绝对代码偏移量表明的是原生函数在libapp.so文件中的具体位置。</p>
<h3>
项目地址</h3>
<p>
Doldrums:【GitHub传送门】</p>
<p>
原文地址:https://www.freebuf.com/articles/endpoint/287516.html</p>
頁:
[1]