zoukankan      html  css  js  c++  java
  • 利用“Java同包同名类执行顺序”取消Java 网站应用程序Licence验证

    如果是在tomcat里运行,lib目录下一大堆的JAR包,不同的JAR包里可能会有相同的包名类名,JRE按照JAR名字的字母顺序加载JAR文件,同名类如果已加载,则后面的同名类会忽略。

    公司购买的一款Java web 应用程序 ,当然是有授权码的,虽然买的全部授权,没有年限限制,但是是按年授权,包括测试环境也是一样,挺麻烦的,反编译看了下代码,找到了Licence验证机制,由于采用的是RSA加密算法,验证是是用私钥生成的签名和公钥验证,这个私钥是不可能知道的,因此即使知道了License文件的生成规则,也是无法仿造Licence文件的,但是利用上面所讲的同包同名执行顺序的特性,可以仿照写一同包同名的验证方法, 这样就可以使程序在运行时不执行原来的验证方法,而是执行自已写的验证方法,这样就能达到不验证Licence的效果。

    2019/09/16 Update

    最近学习了.Net反编译发现可以直接修改dll,于是就想在java中,是否也可以直接修改jar,于是找了几个贴子,https://blog.csdn.net/u010505881/article/details/80547856

    按这上面的操作,发现也是可以的,将修改后的class覆盖以前的class一样可以达到想要的效果。

  • 相关阅读:
    跳表实现
    剑指OFFER24-反转链表
    java常用的明文加密算法
    创建 Java 第三方类库,以及制作类库的Javadoc
    java 中的正则表达式
    JDK、JRE、JVM 关系
    java 编译运行过程
    为什么要配置环境变量
    搭建 java 开发环境
    idea 设置
  • 原文地址:https://www.cnblogs.com/dimg/p/10094695.html
Copyright © 2011-2022 走看看