【技术累积】【点】【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 ...
随机推荐
- 安装 Ubuntu 14.04 之后要做的一些事
转自: http://www.cnblogs.com/marcowei/p/3841342.html 安装 ubuntu14.04 之后要做的一些事 前言: 用 ubuntu14.04 也有一段时间 ...
- C#学习笔记_03_运算符
03_运算符 算数运算符 + - * / % ++ -- 赋值运算符 = += -= *= /= %= 关系运算符 > < >= <= == != 逻辑运算符 &:逻辑 ...
- NLP问题特征表达基础 - 语言模型(Language Model)发展演化历程讨论
1. NLP问题简介 0x1:NLP问题都包括哪些内涵 人们对真实世界的感知被成为感知世界,而人们用语言表达出自己的感知视为文本数据.那么反过来,NLP,或者更精确地表达为文本挖掘,则是从文本数据出发 ...
- QT5.5移植全攻略【转】
一.编译1.到www.qt.io下载源码,qt-everywhere-opensource-src-5.5.0 2.设置编译器或者说平台.编译器是通过xplatform参数指定的,xplatform后 ...
- POJ 2068
就是必胜点与必败点的计算而已.计算每一种情况.设st[i][j]为在第i个人剩下j个石头时的情况,拿它转移后的情况比较.可以到达必败点,则当前为必胜点.若只能到达必胜点,则当前点为必败点. #incl ...
- 使用Python生成源文件的两种方法
利用Python的字符串处理模块,开发者能够编写脚本用来生成那些格式同样的C.C++.JAVA源程序.头文件和測试文件,从而避免大量的反复工作. 本文概述两种利用Python string类生成jav ...
- Openstack针对nova,cinder,glance使用ceph的虚拟机创建机制优化
今天在开源中国社区看到有例如以下一个问题: 已经成功把ceph作为cinder和 glance的后端,可是假设作为nova的后端,虚拟机启动速度非常慢,网上查了一下是由于openstack创建虚 ...
- 51-nod -1284 2 3 5 7的倍数
1284 . 2 3 5 7的倍数 基准时间限制:1 秒 空间限制:65536 KB 分值: 5 给出一个数N,求1至N中,有多少个数不是2 3 5 7的倍数. 比如N = 10,仅仅有1不是2 3 ...
- sizeof运算符、malloc函数及free函数
一.sizeof运算符的用法 1.sizeof运算符给出某个类型或变量在内存中所占据的字节数. int a; sizeof(a)=4; //sizeof(int)=4; double b; si ...
- beisen
#include <stdio.h> #include <pthread.h> #include <windows.h> #define N 100 #define ...