【技术累积】【点】【java】【3】编译和反编译
闲聊
擦,打脸了,但打完了还是得继续写呗,水着水着看呗。
概述
理解的不深入,但是实用。
总而言之:编译,是将书写的代码翻译为机器能够理解的代码;反编译,则是相反的过程。
来源在于语言的等级,一般认为,自己写的,比如java这种,就是高级语言;编译的结果,比如汇编语言,就是机器能够理解的低级语言。
当然,更低级的是机器语言,是cpu可以直接解读的数据,对于人而言是完全的天书了吧。
理解
其实编译和反编译能进行到什么程度,说白了还是信息的丢失与否。
若编译丢失数据过多,反编译出来逻辑都看不懂;当然,信息丢失很少,但是全部乱掉(其实也是一种信息丢失了吧),也tm是废物(代码混淆了解一下)。
查了半天,还是没懂为啥会有反编译这种东西出来,最直观的想法还是想搞点事情吧,毕竟一个是东西可以编译,自然就可以反编译,另一个是不开源是吧,我反编译搞个开源的出来;
所以,事情就自然的再发展下去了,编译的时候加密,编译的时候混淆,各种骚操作。。
使用
之前看枚举的时候,发现博主通过反编译.class文件看了枚举的实质,刺激。
结果用jd-gui反编译了自己的枚举...
还是enum,根本没有extends Enum这回事儿
然后自己写个类继承Enum,直接报错咯,不能直接引用,看来1.5之后的应该是改了
public class TestClass extends Enum {
protected TestClass(String name, int ordinal) {
super(name, ordinal);
}
}
工具的话:jd-gui,各种ide
以后用到反编译的时候再补充吧。
引用
丰富了解:Java| 编译和反编译
透彻了解:为什么有些语言可以被反编译?而有的不能?
【技术累积】【点】【java】【3】编译和反编译的更多相关文章
- 如何保护java程序不被反编译
Java是一种 跨平台的.解释型语言 Java 源代码编译中间“字节码”存储于class文件中.Class文件是一种字节码形式的中间代码,该字节码中包括了很多源代码的信息,例如变量名.方法名 等.因此 ...
- Java代码的编译与反编译那些事儿
原文:Java代码的编译与反编译那些事儿 编程语言 在介绍编译和反编译之前,我们先来简单介绍下编程语言(Programming Language).编程语言(Programming Language) ...
- Java| 编译和反编译
原文链接: http://www.yveshe.com/articles/2018/05/01/1525172129089.html 什么是编程语言? 在介绍编译和反编译之前,我们先来简单介绍下编程语 ...
- Java 编译与反编译
编程语言 在介绍编译和反编译之前,我们先来简单介绍下编程语言(Programming Language).编程语言(Programming Language)分为低级语言(Low-level Lang ...
- Java逆向武器库_反编译工具
1.反编译工具之_jd-gui 官网下载地址:http://java-decompiler.github.io/#jd-gui-download 使用: 下载后解压直接使用即可. jd-gui的优势是 ...
- 什么是Java代码的编译与反编译?(转)
转自:http://java.tedu.cn/ask/203119.html Java代码的编译与反编译 一.什么是编译 1.利用编译程序从源语言编写的源程序产生目标程序的过程. 2.用编译程序产生目 ...
- Java代码加密与反编译(二):用加密算法DES修改classLoader实现对.class文件加密
Java代码加密与反编译(二):用加密算法DES修改classLoader实现对.class文件加密 二.利用加密算法DES实现java代码加密 传统的C/C++自动带有保护机制,但java不同,只要 ...
- Java Jar源码反编译工具那家强
本文介绍下Java Jar常见的反编译工具,并给出使用感受. 反编译JAR能干什么: 排查问题.分析商业软件代码逻辑,学习优秀的源码思路. JD-GUI 下载地址:http://java-decomp ...
- 【Android 应用开发】 Android APK 反编译 混淆 反编译后重编译
反编译工具 : 总结了一下 linux, windows, mac 上的版本, 一起放到 CSDN 上下载; -- CSDN 下载地址 : http://download.csdn.net/detai ...
随机推荐
- 记一次获得 3 倍性能的 go 程序优化实践,及 on-cpu / off-cpu 火焰图的使用
转自:https://mp.weixin.qq.com/s/9IKaXeWTiiQTFlvZzxgsEA 记一次获得 3 倍性能的 go 程序优化实践,及 on-cpu / off-cpu 火焰图的使 ...
- python爬虫09 | 上来,自己动 !这就是 selenium 的牛逼之处
作为一个男人 在最高光的时刻 就是说出那句 之后 还不会被人打 ... 虽然在现实生活中你无法这样 但是在这里 就让你体验一番 那种呼风唤雨的感觉 我们之前在爬取某些网站的时候 使用到了一些 pyth ...
- Git 基础教程 之 解决合并冲突
① 解决冲突 把Git合并失败的文件手动编辑成我们希望的内容 ② 提交,合并完成 场景: ① 新分支feature1,修改后,add, commit: ② 切回master后,修改后,add, ...
- codevs——T3111 CYD啃骨头
http://codevs.cn/problem/3111/ 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Desc ...
- UVa 10290 - {Sum+=i++} to Reach N
题目:给你一个数字问将他写成连续的数字的和的形式.有几种写法. 分析:数论. 设拆成的序列个数为k,我们分两种情况讨论: 1.拆成奇数个连续数.那么设中位数是a,则有n = k * a: 2.拆成偶数 ...
- Codeforces Round #253 (Div. 1)-A,B
A题: 由题意可知,最多翻10次就能够(事实上8次就够了).那么我们就用状态压缩表示状态. 对于某种状态,假设某一位为0,那么代表这一位不翻,否则代表这一位翻. 对于某一种翻的状态: 假设牌中有G3, ...
- 【cl】找不到火狐Cannot find firefox binary in PATH
org.openqa.selenium.WebDriverException: Cannot find firefox binary in PATH. Make sure firefox is ins ...
- ant 调用
博客园 首页 新随笔 联系 订阅 管理 [图文] 使用ant编译和发布java项目 开发JavaEE项目经常会碰到修改代码后,项目没有重新编译的问题.老大给指明了一个解决办法:用ant ...
- Ubuntu使用ssh方法连接不上
查看远程机器是否安装ssh服务(ubuntu 没有默认安装ssh) 命令:ssh host (图中没有安装) 安装ssh 命令 sudo apt-get install openssh-serve ...
- hdoj---Rescue
Rescue Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submis ...