常用的工具有两个:jd-jui,DJ java Decomplier ,

第一个工具最为常用,但有时候,译的也不准备,第二个工具不认带有中文的目录。两个一起用,可以减少语法错误。

从class文件到java源文件,这是一个完全可逆的过程。

将class文件托到jd-jui上,File->save all sources将会把所有class文件打包,存在指定路径。

1.       如果你要修改一两个类,则不必将所有class类都调出来,保证你要改的class类语法正确却可!修改完再生成class后,替换原系统中的文件。如果出现引用问题,可以建立空的目录!

注意:编译后的class文件的jdk的版本必须你原系统的统一!否则会出一些莫名其妙的错误!使用 UE 打开 class 文件,第一行内容:

00000000h: CA FE BA BE 00 00 00 32 00 A9 07 00 02 01 00 37 ;漱壕...2.?....7

前四个字节为固定的 CA FE BA BE ,接下来的四个字节为次版本号(0000)和主版本号(00032)。

32:JDK1.6
31:JDK1.5
30:JDK1.4
2F:JDK1.3

2.       如果你需要将安装好的项目工程做导出原文件,做二次开发,要比上面费点力。但比你自己开发省力的多了.

新建一个web工程,jd-jui导出的java 类,全部放到src下。把tomcat工程里的jsp直接的放到新建工程的webroot下。这一步大家都知道。下面主要介绍一些逆向生成的常见错误:

以cas-client-core-3.1.1.jar为例

导入后图为:

逆向工具并不是十全十美的,错误存在是很正常的。

1>     缺少jar包.第一步把它所需要的jar包给他。如图:

2>     结构复杂的内部类会报错。需要手动调一下变量参数。如图:

修改后图:

3>     循环变量缺少声明,如图:

4>     true和1,false和0分不清楚。方法返回一个boolean,往往会return 1.返回类型不对!

5>     bytd[],这个类型为被译成乱码。。。遇过一次,查了很久才查到,这里标注一下!

一般的java项目这个文档足够把源码调出来了。但是遇到混淆的,加密的怎么办?

研究中,略有心得,后续中。。。

给大家看一下什么是变态混淆!

请看目录:

下面是从反编译工具jd-uid得到的代码:

没有语法问题,只是把类名,变量只用用0和O或1,I做了难以理解的名称,有专门的混淆工具!给反编译起到了一定的阻碍功能。

还有一个是class文件加密,反编译工具将无法打开!后续中。。。

java反编译之 基础篇(class未加密未混淆)相关推荐

  1. Android 反编译初探-基础篇

    前言 本文目标: 工具:介绍反编译需要用到的工具 原理:反编译基本原理 实践:替换一个未混淆&未加固apk的启动页面 工具 1.Android Studio 版本:Android Studio ...

  2. Java基础学习总结(27)——7 款开源 Java 反编译工具

    今天我们要来分享一些关于Java的反编译工具,反编译听起来是一个非常高上大的技术词汇,通俗的说,反编译是一个对目标可执行程序进行逆向分析,从而得到原始代码的过程.尤其是像.NET.Java这样的运行在 ...

  3. Java学习笔记之基础篇

    Java学习笔记之基础篇 目录 Java如何体现平台的无关性? 面向对象(OO)的理解 面向对象和面向过程编程的区别 面向对象三大特征 静态绑定和动态绑定(后期绑定) 延伸:类之间的关系 组合(聚合) ...

  4. eclipse安装JAVA反编译插件

    前言:在实际的开发中几乎都会使用到一些框架来辅助项目的开发工作,对于一些框架的代码我们总怀有一些好奇之心,想一探究竟,有源码当然更好了,对于有些JAR包中的代码我们就需要利用反编译工具来看一下了,下面 ...

  5. java反编译工具_Java开发必会的反编译知识(附支持对Lambda进行反编译的工具)...

    我之前推送过Java代码的编译与反编译,其中简单的介绍了Java编译与反编译相关的知识,最近给GitChat写<深入分析Java语法糖>的时候,又用到了很多反编译相关的知识,遂发现哪篇文章 ...

  6. JAVA反编译工具精选

    ===================================================================== JAVA 语言是 1995 年 5 月由 SUN 公司发布的 ...

  7. JAVA反编译工具总结

    JAVA反编译工具总结 JAVA语言是1995年5月由SUN公司发布的,由于其安全性高.代码优化.跨平台等特性,迅速取代了很多传统高级语言,占据了企业级网络应用开发等诸多领域的霸主地位. 不过,JAV ...

  8. Java 反编译工具的使用与对比分析

    前言 Java 反编译,一听可能觉得高深莫测,其实反编译并不是什么特别高级的操作,Java 对于 Class 字节码文件的生成有着严格的要求,如果你非常熟悉 Java 虚拟机规范,了解 Class 字 ...

  9. java 反编译工具=_JAVA反编译工具精选

    目前,比较流行的JAVA反编译工具有近30种,其中有三款堪称精品: 一. 应用广泛的JAD 在众多的JAVA反编译工具中,有几种非常著名的工具使用了相同的核心引擎--JAD,其中主要包括:Front ...

最新文章

  1. linux selinux 安全上下文 修改
  2. 5天5000万访问的个人网站是如何诞生的?
  3. 卸载后清理干净_想要清理你的Mac?选这几款软件就对了
  4. 【Qt】创建线程程序示例
  5. matlab计算复活节概率,复活节日期的计算方法
  6. Python模块_json pickle模块
  7. 三次样条曲线拟合算法c语言,关于三次样条曲线拟合法
  8. java OA开源办公系统源码下载
  9. 如何用安卓手机做代理服务器
  10. tplink错误代码51215_TPLINK路由器设置后访问受限
  11. idea 报@Override is not allowed when implementing interface method的问题解决
  12. SDN南向接口和北向接口
  13. layui 如何隐藏底部白边_PR如何稳定轻微抖动和剧烈晃动的视频镜头
  14. 计算机二级office的考试内容,计算机二级office考试内容有啥
  15. 【亲测】如何最优化的下载大量比较旧的资源
  16. win7无线局域网_存储卡具备WiFi有多方便?东芝 FlashAir 无线存储卡上手体验
  17. PrincipalComponentAnalysis 主成分分析
  18. 智慧养老智能化解决方案是什么?智慧养老智能化整体解决方案解决一切养老问题-新导智能
  19. Effective Java 泛型 第28条:利用有限制通配符来提升API的灵活性
  20. c语言程序设计精髓daan,2020MOOCC语言程序设计精髓标准答案

热门文章

  1. 墙式微型计算机,小学微机室墙面布置
  2. 如何从文件名字符串中获取文件扩展名_Linux操作系统:文件系统的功能和命名...
  3. 阶乘末尾蓝桥杯java_Java实现第九届蓝桥杯阶乘位数
  4. linux mysql查看数据库编码_MySQL查看和修改字符编码的实现方法
  5. 找不到FLANNConfig.cmake文件
  6. Inception-Resnet结构(code)
  7. java cookie共享_cookie共享
  8. oracle stalestats_深入理解oracle优化器统计数据(Optimizer Statistics)
  9. 有趣的python代码实例_Python之路:200个Python有趣的小例子一网打尽
  10. pythongui项目实例_python GUI库图形界面开发之PyQt5状态栏控件QStatusBar详细使用方法实例...