JAVA动态代理类调试及生成问题解决
发布日期:2021-06-27 12:56:27
浏览次数:40
分类:技术文章
本文共 685 字,大约阅读时间需要 2 分钟。
前几天碰到了这样的一个问题,就是在挖掘JAVA反序列化CVE-2019-10173的时候,compareTo()函数在碰到动态代理类的时候,会执行到Invoke方法,但是这个过程由于动态代理类不会生成,所以没有办法看到调用过程,所以就有了此文,记录一下这个过程。
看到许多文章都是说在动态代理测试中加入System.getProperties().put(“sun.misc.ProxyGenerator.saveGeneratedFiles”, “true”);这样的语句,但是在动态代理调试到compareTo()函数的时候就是JDK内部类了,没有办法修改代码,所以也就没办法生成class文件。
后面找到一个内置在JAVA JDK中的小工具:HSDB工具,这个工具主要用来查看主要用来查询在程序执行过程中对象的运行情况,还有很多其他的功能,这里就不说了
打开命令:java -cp sa-jdi.jar sun.jvm.hotspot.HSDB
首先不运行程序的情况下执行jps命令,再开启调试执行jps命令,找到我们的进程的id 打开这个工具,输入id 保存文件,但是会发现这个文件是0kb,而且jd-gui无法打开,直接放到intellij idea里面反编译进行打开 可以看到里面实现了compareTo()方法,这个里面调用了父类的invoke方法,也就是会执行实现了InvocationHandler接口的类的Invoke方法 也就是会执行到EventHandler这个类里面的方法,这样就实现了理解动态代理类的调用CompareTo()函数的过程的理解 转载地址:https://blog.csdn.net/weixin_43460070/article/details/117718248 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2024年03月30日 16时57分40秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
自己写的Java版计算器
2019-04-26
字、位、字节摘抄的,怕忘了
2019-04-26
printf与scanf的用法知识(C Primer Plus总结)
2019-04-26
三目运算符(条件运算符)
2019-04-26
C语言中的goto语句
2019-04-26
欧几里德算法及拓展
2019-04-26
CSDN-markdown编辑器基本用法
2019-04-26
等差数列公式搜集
2019-04-26
复合字面量(compound literal)
2019-04-26
gets和puts
2019-04-26
fgets、gets_s和fputs
2019-04-26
解决centos7联网问题
2019-04-26
c字符串函数
2019-04-26
nyoj1328派队方案
2019-04-26
nyoj322Sort归并排序
2019-04-26
nyoj1235A/B Problem逆元
2019-04-26
nyoj1270 care for China记忆化搜索
2019-04-26
linux常用命令
2019-04-26
快速排序qsort
2019-04-26
nyoj42一笔画问题欧拉图
2019-04-26