zkar icon indicating copy to clipboard operation
zkar copied to clipboard

很高兴P牛开源的作品,关于序列化的部分我已写好,希望可以帮到P牛

Open comwrg opened this issue 3 years ago • 5 comments

Hi! 很高兴P牛开源的作品,关于序列化的部分我已写好了( https://github.com/comwrg/ysoserial ),不过我和P牛写的在序列化结构定义上就存在很大的差异,所以希望在思路上可以帮到P牛。

关于序列化的部分几个需要注意的点:

  1. Java序列化中的结构中class desc部分和class data部分是分开的,不太适合人去观察,所以我进行了合并处理。
  2. Java序列化中handle部分是动态生成的,如果想更随心所欲的人肉改动序列化数据,增加或者删除某部分,handle需要动态生成。
  3. 关于8u20的畸形结构序列化的生成,可以参考代码( https://github.com/comwrg/ysoserial/blob/master/jdk8u20.go#L210 ),我是参考了 青衣十三楼 关于8u20的构造的思路。

comwrg avatar Jan 02 '22 05:01 comwrg

感谢感谢,我现在主要是要解决TemplatesImpl中Java字节码解析和重新生成的问题,主要代码在class/目录下,做了一半的。

phith0n avatar Jan 02 '22 06:01 phith0n

具体的计划是什么呢?从Java代码 -> Java字节码,还是只是Java字节码的可视化?

comwrg avatar Jan 02 '22 07:01 comwrg

只是Java字节码的可视化,以及修改。完全生成的话相当于重写一个前端了,工作量很大,兼容性也很难做好。

phith0n avatar Jan 02 '22 07:01 phith0n

仅仅是可视化的话,工作量也不少😂,之前也有这种想法,奈何字符串替换这种方式简单粗暴。

comwrg avatar Jan 02 '22 08:01 comwrg

确实,感觉handle应该与object stream挂钩,与具体的某个content element脱钩,但是这样的话,转json或者yaml的时候,同样需要在object stream上完成,不然缺失了handle信息,可能会出现本来相同的对象,但是不知道handle,不知道到底是不是同一个东西

caffiene0079 avatar Jan 04 '22 00:01 caffiene0079