目标:在 Spine 编辑器窗口内部加一个自己的视图面板(按钮 + 文字显示), 点击读取场景对象,并像原生面板一样出现在 Views 菜单、可停靠可折叠。 本轮打通: 1. 编辑器在我们自己的进程里完整启动 - 类加载器必须是 URLClassLoader 本身(自检要求) - Editor.main 必须在 AWT EDT 上调用 - jvm.cfg 第 21 行要以两个空格结尾 + -DSpineJava - Editor.D:I 版本号、fonts/、/tzax 资源、Java8 版 launcher.Launcher 替身 2. 3.8.99 全量解密 → 可读源码 - 字符串 17251/17461(伪造同名调用帧对齐 key) - 混淆动态派发还原 53871 处(调引导方法取 MemberName) 3. 自建视图 - agent 在内存里给 us 枚举加 spineView 常量(不改磁盘,避开完整性自检) - 面板 Actor 由外部反射填进 us.spineView.D - 复用已有图标做别名(不新建图片资源) 最终 "Spine View" 出现在 Views 菜单,可与 Tree 并排停靠、折叠展开 另外: - ViewPatcher/ViewAgent:视图枚举与面板挂载的字节码插桩 - DecAll/ObMap/rewrite_source:字符串解密、派发还原、可读源码生成 - 阶段四-视图面板挂载.md:完整记录做法与踩过的坑 不纳入版本管理:rea/(独立仓库)、tools 下的 JDK/Ghidra 工具链、 Spine.app 与 spine-lab 副本、从载荷派生的批量产物。
40 lines
1.1 KiB
Plaintext
40 lines
1.1 KiB
Plaintext
# ============================================================
|
||
# 只管理本项目自己的东西:源码、脚本、文档、小资源。
|
||
# 下面这些要么是第三方工具链/厂商 App,要么是从载荷派生的批量文件。
|
||
# ============================================================
|
||
|
||
# ---- 第三方工具链(体积巨大,可重新下载安装)----
|
||
tools/*.zip
|
||
tools/*.tar.gz
|
||
tools/ghidra_12.1.4_PUBLIC/
|
||
tools/jdk-11.0.32.1+1/
|
||
tools/jdk-21.0.12.1+1/
|
||
tools/jdk8u504-b01/
|
||
tools/dl/
|
||
# 下载中途留下的隐藏分片(.ghidra.part*、.p4_* 之类,几百 MB)
|
||
tools/.*
|
||
|
||
# ---- 厂商 App 本体与实验室副本(不是本项目源码,且体积大)----
|
||
Spine.app/
|
||
spine-lab/
|
||
|
||
# ---- 上游 rea 仓库:它是独立的 git 仓库,单独管理,不并入本项目 ----
|
||
rea/
|
||
|
||
# ---- 构建产物 ----
|
||
viewpanel/build/
|
||
viewpanel/compat-classes/
|
||
*.class
|
||
|
||
# ---- 从载荷派生的批量产物(本机可重新生成)----
|
||
viewpanel/analysis/spine-398/
|
||
viewpanel/analysis/398/classes/
|
||
viewpanel/analysis/398/3.8.99.readable.zip
|
||
|
||
# ---- macOS ----
|
||
.DS_Store
|
||
|
||
# ---- Python 缓存 ----
|
||
__pycache__/
|
||
*.pyc
|