zkar
zkar copied to clipboard
很高兴P牛开源的作品,关于序列化的部分我已写好,希望可以帮到P牛
Hi! 很高兴P牛开源的作品,关于序列化的部分我已写好了( https://github.com/comwrg/ysoserial ),不过我和P牛写的在序列化结构定义上就存在很大的差异,所以希望在思路上可以帮到P牛。
关于序列化的部分几个需要注意的点:
- Java序列化中的结构中class desc部分和class data部分是分开的,不太适合人去观察,所以我进行了合并处理。
- Java序列化中handle部分是动态生成的,如果想更随心所欲的人肉改动序列化数据,增加或者删除某部分,handle需要动态生成。
- 关于8u20的畸形结构序列化的生成,可以参考代码( https://github.com/comwrg/ysoserial/blob/master/jdk8u20.go#L210 ),我是参考了 青衣十三楼 关于8u20的构造的思路。
感谢感谢,我现在主要是要解决TemplatesImpl
中Java字节码解析和重新生成的问题,主要代码在class/
目录下,做了一半的。
具体的计划是什么呢?从Java代码 -> Java字节码,还是只是Java字节码的可视化?
只是Java字节码的可视化,以及修改。完全生成的话相当于重写一个前端了,工作量很大,兼容性也很难做好。
仅仅是可视化的话,工作量也不少😂,之前也有这种想法,奈何字符串替换这种方式简单粗暴。
确实,感觉handle应该与object stream挂钩,与具体的某个content element脱钩,但是这样的话,转json或者yaml的时候,同样需要在object stream上完成,不然缺失了handle信息,可能会出现本来相同的对象,但是不知道handle,不知道到底是不是同一个东西