zoukankan      html  css  js  c++  java
  • Java逆向工程需要的技能和工具

    Java逆向分析技术可用于了解第三方软件的运行机制、破解注册码、寻找安全漏洞等。



    • java -verbose

    • HotSpot™ Serviceability Agent

    • jetBrains intellij IDEA 14.3

    • jetBrains CLion 1.0.4

    • jd-gui 1.2

    • jinfo

    • dump运行时的class信息

    • 带混淆调试

    • ClassPath和vm options修复

    • ClassFinder:在一大堆的jar中搜索需要的信息

    • 字节码修改工具


    RSA加密,CRC校验


    • step in/over/out (单步 步入/步过/跳出)

    • evaluate expressions (表达式计算)

    • stack frame in/out (栈帧切换)

    • break point (断点啊亲)


    为了取得更好的反编译效果,我们这次不使用jd来做,在博主安装的Intellij IDEA的lib下,有一个fern flower的反编译工具,这也是IDEA的默认反编译器,我们就用它了,有兴趣的东西可以搜索下,貌似跟mine craft有很大渊源。


    为了能够充分掌握某个关键类、方法的调用路径,以方便我们进行回溯或者探索重要信息,通常我们采用如下几种方法:

    • 反编译源代码,在关键点处充分修改,打印调用栈.

    • 利用静态AOP或者hook,插入我们的调试器.

    • 将代码当作文本处理,以利用sed/grep/less等工具,以及文件索引能力,方便大批量的进行关键代码搜索.

    • 直接用调试器附加目标进程,要显示源码的话,往往需要我们加-g以产生调试信息,这一点在My Eclipse的保护机制下受到限制,但这也是我们需要突破的地方.

    • 利用IDE提供的查找使用/正向依赖/反向依赖分析技术.

    • 利用dump,将关键代码段或者类信息从目标进程中dump出来并还原为源代码.

    总之,灵活结合上述几种手段,目的是为了充分在My Eclipse这头大象身上辗转腾挪,取我所需.


    自己造轮子,精准搜索:finder

    既然修改了代码,出现了错误,动态调试从何谈起?

    作为工程师,你能够改变世界的那一点,就在于你可以按照需要,来造轮子。

    这个时候,我们有两种办法:

    1. 还是从静态环境中,来搜索错误提示

    2. 自己造轮子,来搜索错误提示.

    为什么需要自己造轮子呢?

    • 静态环境的搭建极其耗时

    • 逆向目标复杂,静态分析容易遗漏

    • 方便后续的补丁操作

    看看我们这个时候需要的轮子:

    这里写图片描述

    没错,我们需要在jar包中、zip包中、文件夹中、class文件中:

    • 找到我们感兴趣的文件格式

    • 查找字节指纹

    • 打印我们需要的各类信息

    如下:

    这里写图片描述

    这个时候,我们的检索能力如下:

    1. verbose信息.

    2. 静态环境提供的路径、符号、文件搜索.

    3. 提供文件指纹、字节特征码搜索的finder.

    4. ServiceAbility Agent提供的运行时信息.


    要学会注入自己的代码,给软件打patch。


    参加博文:http://www.cnblogs.com/foreach-break/



  • 相关阅读:
    路由的添加和删除
    extjs中的tabpanle下的combobox提交问题
    Asp.net下from认证统一认证配置
    ASP.NET权限管理系统(FrameWork) 1.0.8 Release
    Web网站架构设计
    手机6120C 玩仙剑dos版
    Extjs 4.07 对类型定义引发的匹配问题
    Supesoft权限管理系统(FrameWork) 1.0.9 Release
    Google静态地图如何显示两点之间路线1(简单路线)
    Chrome不支持showModalDialog模态对话框和无法返回returnValue的问题
  • 原文地址:https://www.cnblogs.com/xiuquan/p/5104431.html
Copyright © 2011-2022 走看看