当前位置:网站首页>深入分析类加载器
深入分析类加载器
2022-08-01 16:55:00 【Hide on jdk】
1.背景:有个计算工资的类,这个类如果没有被篡改,那么员工工资是正确的
2.这个类通过如下类加载器方法被加载了

3.这样技术人员拿到路径下的jar包,反编译一下就看到了被篡改的代码,怎么办呢?
4.把jar包里面的class后缀名改为myclass,此时反编译工具是无法看到结果的,同时重写类加载器
打破双亲委派机制,写自己的加载方式
5.如果有些人发现了这个规律,很容易就把myclass改回来,这样就被发现了,我们可以对class进行修改,比如在class的头部加上1,然后由自定义classload来重写加载,这样就不会被发现
6.但是这样有个问题,那就是每次修改修改后class不会自动刷新,而是要重启自己的应用,这显然不合理,Jar包变了,但是没有生效,因为classload有缓存。

7.我们可以把class变化的时候进行一次类加载,这样缓存就没有了,就可以自动加载了,而且不会被发现,也不能被反编译。
边栏推荐
猜你喜欢
随机推荐
11 一发布就发布一系列系列
金仓数据库KingbaseES安全指南--6.5. LDAP身份验证
如何有效地开发 Jmix 扩展组件
Ant discloses the open source layout of core basic software technology for the first time
完美指南|如何使用 ODBC 进行无代理 Oracle 数据库监控?
2022年深圳市促进大健康产业集群高质量发展的若干措施
2022 Strong Net Cup CTF---Strong Net Pioneer ASR wp
Rancher 部署 DataKit 最佳实践
Vulnhub靶机:HARRYPOTTER_ NAGINI
金仓数据库 KDTS 迁移工具使用指南(3. 系统部署)
SQL函数 TO_CHAR(一)
90后的焦虑,被菜市场治好了
机器学习快速入门
主流小程序框架性能分析
金仓数据库 OCCI迁移指南(3. KingbaseES的OCCI特性支持)
直播app开发,是优化直播体验不得不关注的两大指标
LeetCode第 303 场周赛
C#Excel帮助类
Flask框架实战
UI helper class for Winform - some components will use DevExpress components








