教大家防止Jar包被反编译
(待验证)
方法就是,向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包被反编译相关推荐
- 教大家简单修改class,防止Jar包被反编译
方法就是,向Jar注入无效代码(不合法的,或者根本不是代码的字符串). 那么无效的代码又怎么能正确运行呢? 答案就是,你要保证你的代码永远不会执行到那一步. 我作一个简单的例子说明: 我们建立一个项目 ...
- java jar防止反编译_防止Jar包被反编译
方法就是,向Jar注入无效代码(不合法的,或者根本不是代码的字符串). 那么无效的代码又怎么能正确运行呢? 答案就是,你要保证你的代码永远不会执行到那一步. 我作一个简单的例子说明: 我们建立一个项目 ...
- 小妙招:如何防止你的 jar 包被反编译?
点击关注公众号,实用技术文章及时了解 来源:cnblogs.com/dartagnan/archive/ 2011/03/24/2003434.html 序 由于Java字节码的抽象级别较高,因此它们 ...
- 面试官:如何防止你的 jar 包被反编译
点击"终码一生",关注,置顶公众号 每日技术干货,第一时间送达! 1.序 由于Java字节码的抽象级别较高,因此它们较容易被反编译.本文介绍了几种常用的方法,用于保护Java字节码 ...
- 面试官:如何防止你的 jar 包被反编译?
点击上方"Java基基",选择"设为星标" 做积极的人,而不是积极废人! 每天 14:00 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java ...
- Jar包反编译后修改源码再编译
Jar包反编译后修改源码再编译 文章目录 Jar包反编译后修改源码再编译 1. 场景 2. 详细步骤 2.1 查看源码 2.2 生成源文件 2.3 构建项目 2.4 编译成jar包 3. 参考链接 1 ...
- java jar反编译后保存_java根据jar包反编译后修改再打包回jar的做法
1. 得到一个待要修改的jar包 2. 我的环境是windows,然后解压这个jar包,得到一堆class文件,这时候就找到你需要的那个class文件 3. 我首先是使用jd-gui工具看一下这个cl ...
- jar包修改并重新打包,jar包反编译使用工具以及修改代码方法
jar包修改并重新打包,jar包反编译使用工具以及修改代码方法 备忘: https://blog.csdn.net/tomcat_zhu/article/details/79240011
- jar文件 反编译(IDEA环境)
说明 想要对一些 jar 文件进行反编译,由于现在 IDEA 使用的人比较多,比较方便的方法是,可以使用 IDEA 中的插件进行反编译. IDEA 插件 可以使用 IDEA 中的 "Java ...
- jar包反编译,查看源代码【转载】
亲测有效 jar包反编译,查看源代码_neverstopforcode的博客-CSDN博客_jar反编译
最新文章
- 微信公众平台关于fakeid和openid的解析
- git用.gitignore忽略指定文件
- PythonWeb仿51edu项目实战篇视频教程教学视频
- tf.app.flags 定义命令行可选参数
- Minimal Square CodeForces - 1360A(简单思维和图形判断)
- 文件路径:/和\的区别
- Tomcat5.5.9+JSP经典配置实例
- shouldoverrideurlloading为什么有时候不走_为什么付出越多,对方就越不懂得感恩,婚姻有时候也需要斤斤计较...
- 为什么选用自增量作为主键索引
- SpringBoot配置RunDashboard
- 数学建模13种常见方法
- android toast居中显示_Android Toast 设置到屏幕中间,自定义Toast的实现方法,及其说明...
- PHP从入门到精通 第3版pdf
- Windows 7笔记本创建wifi热点供手机上网教程
- 沈阳大学博客网站的设计与实现
- python空气质量指数计算_Python入门案例(八):空气质量指数(AQI)计算
- IT人的学习方法论-2,讨论学习的误区
- 计算机出国培训,新海岸出国
- BEM 命名规范简介
- Excel工作表加密、撤销保护
热门文章
- HDU 5009 Paint Pearls
- 课程 3: Content Providers 简介
- 账户余额“蒸发”暴露网银安全哪些漏洞?
- MapReduce :通过数据具有爷孙关系的结果
- 【JAVA笔记——道】Hadoop设计模式--抽象类
- DisplayObjectContainer 属性和方法
- 详解 Spring 3.0 基于 Annotation 的依赖注入实现
- C++学习笔记之由文本文件读取数据到vector模板建立的二维数组 并存储为新的文本文件...
- SAP 以工序为基准进行发料 机加工行业 Goods Issue to Routing
- 21.Linux/Unix 系统编程手册(上) -- 信号:信号处理器函数