SuperScriptMaterializer/README_ZH.md

3.3 KiB
Raw Blame History

Super Script Materializer

English document

超级Virtools脚本物化器机翻确信

将Virtools文档中的所有脚本导出成一个SQLite数据库文件然后经过Python进行排布处理最后提供一个本地Web前端查看脚本。这同样适用于Script Hidden的Virtools脚本也适用于其中含有不可展开的Behavior Graph的脚本。

物化器不能完全恢复脚本的原有排布无论原有排布是否存在物化器都将重新自动生成脚本中的各个元素的位置。某些结构的关系可能会改变例如Export parameter但是逻辑思路将不会改变。同时物化器不能将已经生成的结构回写成Virtools可接受的格式因此物化器只能提供无视脚本隐藏的分析功能。

本工程代码源于另两个工程:BearKidsTeam/Script-Materializer该工程用于将指定脚本导出为JSON文档BearKidsTeam/VirtoolsScriptDeobfuscation该工程能够在Virtools 3.5中提供内置的隐藏脚本解析功能将解析结果解析为可以被Virtools识别的格式

本项目分为2个部分SuperScriptMaterializer是一个C++工程将生成一个Virtools界面插件用于导出初步数据SuperScriptViewer是一个Python工程将解析导出的数据然后使用Flask提供一个本地Web界面进行脚本查看。

此项目仍在开发。

使用方法

基本方法

将Virtools插件投入InterfacePlugins目录下,将sqlite3.dllDev.exe放在同一目录。然后启动Virtools打开需要解析的文档点击菜单栏的Super Script Materializer-Export all script选择要保存到的文件然后等待Virtools提示你已经导出完成。

将导出文件重命名为export.db并和SuperScriptViewer.py放在一起。然后在此目录中运行python ./SuperScriptViewer.py等待Python交互界面提示可以打开本地的网页即可。

使用注意

  • 您需要先安装Virtools, Python和任意一种浏览器才能使用本工程。Python需要先安装Flask库。
  • 导出插件目前只支持Virtools 5后期会支持Virtools 3.5
  • 导出插件选择完文件后卡住或者Python交互界面弹出错误堆栈这可能是设计失误请附带您引起bug的文件提交bug
  • 如果Python交互界面提示数据库TEXT类型解码失败,那么可能您需要手动在DecoratorCore.py中指定数据库文本解码方式。因为Virtools使用多字节编码依赖于当前操作系统的代码页DecoratorCore.py做了特殊获取以保证大多数计算机可以直接运行,但仍然不能排除一些特殊情况。
  • 如果您使用本工程的Release页面中提供的已编译好的Virtools界面插件现在因为仍然在开发所以没有您需要放入的sqlite3.dll版本应为sqlite-dll-win32-x86-3310100

编译

只有Virtools界面插件需要编译其余均为解释性语言无需编译。

需要手动配置Virtools插件的编译参数例如包含路径等需要指向您自己的Virtools SDK。对于SQLite SDK您可以从sqlite.org下载然后使用Visual C++的工具集执行LIB /DEF:sqlite3.def /machine:IX86以获取可以用于编译的文件。