• java反编译之 基础篇(class未加密未混淆)


    常用的工具有两个: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>     true1,false0分不清楚。方法返回一个boolean,往往会return 1.返回类型不对!

     

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

     

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

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

     

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

    请看目录:


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


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

     

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

  • 相关阅读:
    taotao-manager-web/pom.xml
    sublime使用说明
    taotao-manager-web(表现层),初始生成pom报错解决
    通用表空间
    InnoDB存储引擎结构介绍
    关于双主
    半同步复制
    基于gtid的复制
    多源复制和级联复制
    MySQL复制进阶
  • 原文地址:https://www.cnblogs.com/firstdream/p/2442163.html
Copyright © 2020-2023  润新知