夜雨聆风学习资料网

ARTICLE · 1158393

鸿蒙NEXT字节码还原成 ArkTS 源码

鸿蒙NEXT字节码还原成 ArkTS 源码

做逆向分析的朋友都知道:看反编译出来的代码,最折磨的不是代码本身,是看代码的工具。

这期讲我做的鸿蒙 NEXT 字节码还原工具(ark-restore-code):把 .hap / .hsp / .har / .app / .abc 安装包丢进去,直接还原成 ArkTS 源码。但今天不聊还原算法,聊一个更实际的问题——还原出来的源码,用什么形式给人看?

安全分析师拿到结果是要一行一行啃的,光吐一堆文件,体验太差。当时面前两条路:
① Java 自家的 Swing / JavaFX——编辑器要从零造,做到猴年马月也追不上现在的习惯
② Electron + VS Code 同款 Monaco 编辑器——语法高亮、代码缩略图、Ctrl 点击跳定义,全是现成的 最后选了 Electron。
同一个 jar 包两种用法:双击开图形界面看代码;命令行加参数直接吐源码,接进自动化流程。

整个工具拆开就三层: 纯 Java 还原引擎 + 拆包层(判型、拆包、找字节码,GUI/CLI 共用)+ 两个壳。还原也不是逐条指令翻译——if else、三元、循环、async await、try catch 都还原成原来的语法结构;一个包里有多份字节码,可以指定分析哪个;有些 .har 根本不带字节码、直接带着源码发布,这种也能识别,原样抽出来。

界面是标准 IDE 布局:左边文件树、中间代码、右边信息面板。文件树能展开看类和方法大纲,全文正则搜索,查引用、跳定义,还原完打包 zip 下载。关掉项目保存进度,下次打开连你光标停在哪一行都恢复。

目标用户是安全分析师,很多人在内网隔离环境干活——工具拷过去就能跑,不指望装一堆依赖。跨 Windows / Mac。 视频里有完整实测

作者提示: 个人观点,仅供参考
北京,38分钟前,

相关学习资料