闲聊

擦,打脸了,但打完了还是得继续写呗,水着水着看呗。


概述

理解的不深入,但是实用。

总而言之:编译,是将书写的代码翻译为机器能够理解的代码;反编译,则是相反的过程。

来源在于语言的等级,一般认为,自己写的,比如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】编译和反编译的更多相关文章

  1. 如何保护java程序不被反编译

    Java是一种 跨平台的.解释型语言 Java 源代码编译中间“字节码”存储于class文件中.Class文件是一种字节码形式的中间代码,该字节码中包括了很多源代码的信息,例如变量名.方法名 等.因此 ...

  2. Java代码的编译与反编译那些事儿

    原文:Java代码的编译与反编译那些事儿 编程语言 在介绍编译和反编译之前,我们先来简单介绍下编程语言(Programming Language).编程语言(Programming Language) ...

  3. Java| 编译和反编译

    原文链接: http://www.yveshe.com/articles/2018/05/01/1525172129089.html 什么是编程语言? 在介绍编译和反编译之前,我们先来简单介绍下编程语 ...

  4. Java 编译与反编译

    编程语言 在介绍编译和反编译之前,我们先来简单介绍下编程语言(Programming Language).编程语言(Programming Language)分为低级语言(Low-level Lang ...

  5. Java逆向武器库_反编译工具

    1.反编译工具之_jd-gui 官网下载地址:http://java-decompiler.github.io/#jd-gui-download 使用: 下载后解压直接使用即可. jd-gui的优势是 ...

  6. 什么是Java代码的编译与反编译?(转)

    转自:http://java.tedu.cn/ask/203119.html Java代码的编译与反编译 一.什么是编译 1.利用编译程序从源语言编写的源程序产生目标程序的过程. 2.用编译程序产生目 ...

  7. Java代码加密与反编译(二):用加密算法DES修改classLoader实现对.class文件加密

    Java代码加密与反编译(二):用加密算法DES修改classLoader实现对.class文件加密 二.利用加密算法DES实现java代码加密 传统的C/C++自动带有保护机制,但java不同,只要 ...

  8. Java Jar源码反编译工具那家强

    本文介绍下Java Jar常见的反编译工具,并给出使用感受. 反编译JAR能干什么: 排查问题.分析商业软件代码逻辑,学习优秀的源码思路. JD-GUI 下载地址:http://java-decomp ...

  9. 【Android 应用开发】 Android APK 反编译 混淆 反编译后重编译

    反编译工具 : 总结了一下 linux, windows, mac 上的版本, 一起放到 CSDN 上下载; -- CSDN 下载地址 : http://download.csdn.net/detai ...

随机推荐

  1. 记一次获得 3 倍性能的 go 程序优化实践,及 on-cpu / off-cpu 火焰图的使用

    转自:https://mp.weixin.qq.com/s/9IKaXeWTiiQTFlvZzxgsEA 记一次获得 3 倍性能的 go 程序优化实践,及 on-cpu / off-cpu 火焰图的使 ...

  2. python爬虫09 | 上来,自己动 !这就是 selenium 的牛逼之处

    作为一个男人 在最高光的时刻 就是说出那句 之后 还不会被人打 ... 虽然在现实生活中你无法这样 但是在这里 就让你体验一番 那种呼风唤雨的感觉 我们之前在爬取某些网站的时候 使用到了一些 pyth ...

  3. Git 基础教程 之 解决合并冲突

    ①  解决冲突 把Git合并失败的文件手动编辑成我们希望的内容 ②  提交,合并完成 场景: ①  新分支feature1,修改后,add, commit: ②  切回master后,修改后,add, ...

  4. codevs——T3111 CYD啃骨头

     http://codevs.cn/problem/3111/  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解  查看运行结果     题目描述 Desc ...

  5. UVa 10290 - {Sum+=i++} to Reach N

    题目:给你一个数字问将他写成连续的数字的和的形式.有几种写法. 分析:数论. 设拆成的序列个数为k,我们分两种情况讨论: 1.拆成奇数个连续数.那么设中位数是a,则有n = k * a: 2.拆成偶数 ...

  6. Codeforces Round #253 (Div. 1)-A,B

    A题: 由题意可知,最多翻10次就能够(事实上8次就够了).那么我们就用状态压缩表示状态. 对于某种状态,假设某一位为0,那么代表这一位不翻,否则代表这一位翻. 对于某一种翻的状态: 假设牌中有G3, ...

  7. 【cl】找不到火狐Cannot find firefox binary in PATH

    org.openqa.selenium.WebDriverException: Cannot find firefox binary in PATH. Make sure firefox is ins ...

  8. ant 调用

    博客园 首页 新随笔 联系 订阅 管理   [图文] 使用ant编译和发布java项目       开发JavaEE项目经常会碰到修改代码后,项目没有重新编译的问题.老大给指明了一个解决办法:用ant ...

  9. Ubuntu使用ssh方法连接不上

    查看远程机器是否安装ssh服务(ubuntu 没有默认安装ssh) 命令:ssh host  (图中没有安装) 安装ssh  命令 sudo apt-get install openssh-serve ...

  10. hdoj---Rescue

    Rescue Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submis ...