当前位置:网站首页>深入分析类加载器
深入分析类加载器
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变化的时候进行一次类加载,这样缓存就没有了,就可以自动加载了,而且不会被发现,也不能被反编译。
边栏推荐
猜你喜欢
随机推荐
DataTable Helper Class for C#
PAT 甲级 A1030 Travel Plan
金仓数据库 KDTS 迁移工具使用指南(2. 简介)
Live tonight!
ESP8266-Arduino programming example-GA1A12S202 logarithmic scale analog light sensor
软测面试如何介绍项目?要做哪些技术准备?
Vulnhub靶机:HARRYPOTTER_ NAGINI
暑气渐敛,8月让我们开源一夏!
金仓数据库KingbaseES安全指南--6.9. Ident身份验证
酷逼了 Pathetic Dog 第 304 场周赛
Winform的UI帮助类——部分组件会使用到DevExpress组件
C#的DataTable帮助类
自定义注解实现日志打印时屏蔽特定字段不打印
【Unity,C#】哨兵射线触发器模板代码
【paper】Cam2BEV论文浅析
表达式;运算符,算子;取余计算;运算符优先顺序
LeetCode Week 303
GridControl helper class for DevExpress
关于2022年深圳市福田区支持高端服务业发展项目的申报通知
Bugku-Misc-贝斯手