(待验证)

方法就是,向Jar注入无效代码(不合法的,或者根本不是代码的字符串)。

那么无效的代码又怎么能正确运行呢?

答案就是,你要保证你的代码永远不会执行到那一步。

我作一个简单的例子说明:

我们建立一个项目:

package com.TestJar;public class Main {public static void main(String[] args){System.out.println(Info.getMessage());}
}
package com.TestJar;public class Info {public static String getMessage(){return "Hello World!";}private class Invalid{}
}

很简单,运行结果是 Hello World!

然后我们将Info类输出Jar

现在项目改成这样:

运行结果仍然是 Hello World!

我们用jd-gui反编译看看:

反编译看得清清楚楚。

我们的私有内部类Invalid在程序中是没有用。

现在,我们向Invalid类注入无效代码。

注入方法很简单,用WinRar之类的解压软件打开,修改,然后保存就行了

打开这个Invalid内部类

我们将图中所选择的字符'd'删除

然后保存

刷新一下,程序仍然运行:Hello World!

再用jd-gui打开Info.jar

它反编译到那里就出错了。

注意不能将这个方法运行用Android项目上,Android有另一套规则,它需要把Jar转换成dex的。

教大家防止Jar包被反编译相关推荐

  1. 教大家简单修改class,防止Jar包被反编译

    方法就是,向Jar注入无效代码(不合法的,或者根本不是代码的字符串). 那么无效的代码又怎么能正确运行呢? 答案就是,你要保证你的代码永远不会执行到那一步. 我作一个简单的例子说明: 我们建立一个项目 ...

  2. java jar防止反编译_防止Jar包被反编译

    方法就是,向Jar注入无效代码(不合法的,或者根本不是代码的字符串). 那么无效的代码又怎么能正确运行呢? 答案就是,你要保证你的代码永远不会执行到那一步. 我作一个简单的例子说明: 我们建立一个项目 ...

  3. 小妙招:如何防止你的 jar 包被反编译?

    点击关注公众号,实用技术文章及时了解 来源:cnblogs.com/dartagnan/archive/ 2011/03/24/2003434.html 序 由于Java字节码的抽象级别较高,因此它们 ...

  4. 面试官:如何防止你的 jar 包被反编译

    点击"终码一生",关注,置顶公众号 每日技术干货,第一时间送达! 1.序 由于Java字节码的抽象级别较高,因此它们较容易被反编译.本文介绍了几种常用的方法,用于保护Java字节码 ...

  5. 面试官:如何防止你的 jar 包被反编译?

    点击上方"Java基基",选择"设为星标" 做积极的人,而不是积极废人! 每天 14:00 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java ...

  6. Jar包反编译后修改源码再编译

    Jar包反编译后修改源码再编译 文章目录 Jar包反编译后修改源码再编译 1. 场景 2. 详细步骤 2.1 查看源码 2.2 生成源文件 2.3 构建项目 2.4 编译成jar包 3. 参考链接 1 ...

  7. java jar反编译后保存_java根据jar包反编译后修改再打包回jar的做法

    1. 得到一个待要修改的jar包 2. 我的环境是windows,然后解压这个jar包,得到一堆class文件,这时候就找到你需要的那个class文件 3. 我首先是使用jd-gui工具看一下这个cl ...

  8. jar包修改并重新打包,jar包反编译使用工具以及修改代码方法

    jar包修改并重新打包,jar包反编译使用工具以及修改代码方法 备忘: https://blog.csdn.net/tomcat_zhu/article/details/79240011

  9. jar文件 反编译(IDEA环境)

    说明 想要对一些 jar 文件进行反编译,由于现在 IDEA 使用的人比较多,比较方便的方法是,可以使用 IDEA 中的插件进行反编译. IDEA 插件 可以使用 IDEA 中的 "Java ...

  10. jar包反编译,查看源代码【转载】

    亲测有效 jar包反编译,查看源代码_neverstopforcode的博客-CSDN博客_jar反编译

最新文章

  1. 微信公众平台关于fakeid和openid的解析
  2. git用.gitignore忽略指定文件
  3. PythonWeb仿51edu项目实战篇视频教程教学视频
  4. tf.app.flags 定义命令行可选参数
  5. Minimal Square CodeForces - 1360A(简单思维和图形判断)
  6. 文件路径:/和\的区别
  7. Tomcat5.5.9+JSP经典配置实例
  8. shouldoverrideurlloading为什么有时候不走_为什么付出越多,对方就越不懂得感恩,婚姻有时候也需要斤斤计较...
  9. 为什么选用自增量作为主键索引
  10. SpringBoot配置RunDashboard
  11. 数学建模13种常见方法
  12. android toast居中显示_Android Toast 设置到屏幕中间,自定义Toast的实现方法,及其说明...
  13. PHP从入门到精通 第3版pdf
  14. Windows 7笔记本创建wifi热点供手机上网教程
  15. 沈阳大学博客网站的设计与实现
  16. python空气质量指数计算_Python入门案例(八):空气质量指数(AQI)计算
  17. IT人的学习方法论-2,讨论学习的误区
  18. 计算机出国培训,新海岸出国
  19. BEM 命名规范简介
  20. Excel工作表加密、撤销保护

热门文章

  1. HDU 5009 Paint Pearls
  2. 课程 3: Content Providers 简介
  3. 账户余额“蒸发”暴露网银安全哪些漏洞?
  4. MapReduce :通过数据具有爷孙关系的结果
  5. 【JAVA笔记——道】Hadoop设计模式--抽象类
  6. DisplayObjectContainer 属性和方法
  7. 详解 Spring 3.0 基于 Annotation 的依赖注入实现
  8. C++学习笔记之由文本文件读取数据到vector模板建立的二维数组 并存储为新的文本文件...
  9. SAP 以工序为基准进行发料 机加工行业 Goods Issue to Routing
  10. 21.Linux/Unix 系统编程手册(上) -- 信号:信号处理器函数