`
mgoann
  • 浏览: 253129 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

BTrace系列之四:破解案例

阅读更多

BTrace系列之四:破解案例

破解案例

破解思路:使用BTrace可以轻松的对Java软件达到破解的目的。

1.捕捉某些征兆:大家都知道共享软件在未授权的情况下使用,软件开发者未了使得更多的客户购买使用,会强制使用一些手段包括对软件功能进行限制,对软件使用失效进行限制,对软件进行不友好的标注,那么这些就是我们要捕捉的征兆,可是凡是有利就有弊,软件开发者对用种种限制或提示,以此来提醒或者逼迫使用者进行购买使用,确实在某种程度上可以增加软件的销售量,但是也正是因为这些征兆使用软件破解成为一种可能。这些征兆也成为一些不法分子的破解共享软件的入口。

2.使用BTrace进行跟踪:捕捉好征兆后就可以使用BTrace利器对于这些征兆进行捕捉了,主要是通过BTrace将这些征兆的判断逻辑捕获到。
3.
修改判断逻辑进行破解:相对来说这一步骤较为简单了,通过步骤2找到了判断逻辑位置,通过对相应的位置进行反编译,然后进行修改即可。或者是使用ASM进行字节码修改。

使用反编译的情况是,字节码没有进过严重混淆,有些共享软件开发者会使用一些工具对字节码进行混淆,不同的工具混淆程度也不一样,同样字典也不一样,但是可以确定的一件事就是反编译的难度加大了,同样导致修改判断逻辑难度加大。

实际案例

下面就根据上述的思路进行某共享软件的破解。

某软件在未购买软件的情况下使用,会有2小时后自动退出的问题,导致严重影响了客户体验。而且或有不友好的提示。对于我们来说2小时的自动退出就是一个不错的征兆,那么退出自然是通过System.exit(0)来实现的,并且在退出前还有一些提示,那么这样就可以在跟踪到多处System.exit(0)之后,在根据提示信息来进行区分,到底哪些才是我们真正想要的征兆。

使用BTrace脚本:

/* BTrace Script Template */
import com.sun.btrace.annotations.*;
import static com.sun.btrace.BTraceUtils.*;

@BTrace
public class TracingScript {
	/* put your code here */
    @OnMethod(clazz="+java.lang.Object", method="/.*/", location=@Location(value=Kind.CALL, clazz="java.lang.System", method="exit"))
    public static void trace(@ProbeClassName String className, @ProbeMethodName String methodName)
    {
        println("*****************************************");
        print(className);
        println(Strings.strcat(".", methodName));
}

 输出:

XXX.XXX.A.G.B

反编译该class

static void B(String paramString)
    {
        if (N)
            return;
        N = true;
        SwingUtilities.invokeLater(new Runnable(paramString)
        {
            public void run()
            {
                JOptionPane.showMessageDialog(null, C.this
                        + ", System will exit.");
                System.exit(0);
            }
        });
    }

 

发现是这个方法调用的System.exit(0),接下来就很简单了,只要将该class修改后替换原来的class文件即可。

1
0
分享到:
评论

相关推荐

    BTrace二三事之二:OnMethod子类匹配BUG(怀疑)

    本文将深入探讨“BTrace二三事之二:OnMethod子类匹配BUG(怀疑)”这一主题,结合源码分析和实际工具应用,揭示可能存在的问题及其解决策略。 首先,我们要理解BTrace的工作原理。BTrace是基于字节码注入的技术,它...

    btrace支持jdk1.7 linux下使用

    BTrace脚本由一系列探查点和相关操作组成,使用Java语法编写。开发者可以定义探查点触发时执行的代码,比如记录日志、计算性能指标等。`samples`目录中的脚本提供了很好的学习起点。 5. **BTrace的优势**: - **...

    btrace源代码

    《深入解析BTrace:源代码探索之旅》 BTrace,全称为"Berkeley Trace",是一款强大的、动态的、安全的Java生产环境诊断工具。它允许开发者在运行时对Java应用程序进行性能分析和故障排查,而无需修改或重启应用。...

    btrace-demo:demo项目

    Java作为一种广泛应用的编程语言,拥有丰富的生态系统和工具,BTrace就是其中用于诊断和优化Java应用程序的重要工具之一。 【详细知识点】 1. **BTrace简介**:BTrace是一个动态代码插桩工具,它允许开发者在运行...

    btrace引导文件安装Btrace

    **Btrace 概述** Btrace(Business Tracing for Java)是一种强大的动态追踪工具,专为Java应用程序设计。它允许开发者在不修改源代码的情况下,实时监控和分析应用程序的行为。Btrace利用Java代理(Java Agents)...

    BTrace的安装包Windows

    **四、使用BTrace** 在Windows环境下,使用BTrace通常涉及以下过程: 1. **编写BTrace脚本**: 使用BTrace的特定语法编写监控脚本,这些脚本定义了你想要追踪的行为。 2. **应用BTrace脚本**: 通过`btrace`命令,将...

    Btrace 学习1

    BTrace 提供了一系列的内建脚本函数和注解,如 @OnMethod、@Trace、@BTrace、@Probe 等,方便开发者编写探针脚本。这些脚本通常用 Java 编写,可以访问诸如系统属性、线程信息、堆栈跟踪等各种运行时数据。 5. **...

    btrace_extend-master

    【标题】"btrace_extend-master" 是一个与BTrace工具相关的扩展项目,它提供了一些额外的功能和增强,以便更好地监控和诊断Java应用程序。BTrace是一款强大的动态代码分析工具,允许开发者在运行时对Java应用程序...

    Btrace 官方zip包

    ### 四、Btrace 使用流程 1. **安装**:将Btrace 包解压至合适的位置,并将bin目录添加到系统路径中,以便于命令行使用。 2. **编写脚本**:根据需求编写Btrace 脚本,定义需要监控的行为。 3. **运行Btrace**:...

    btrace1.3.9

    【标题】"btrace1.3.9"指的是BTrace工具的一个特定版本,1.3.9,这是一款强大的Java应用程序动态跟踪工具。BTrace利用Java的JVMTI(Java Virtual Machine Tool Interface)和Serviceability Agent(SA)来提供安全、...

    jvisualvm btrace插件离线安装

    在Java开发领域,性能优化是不可或缺的一环,而BTrace作为一个强大的动态跟踪工具,可以帮助开发者实时监控和分析应用程序的行为。本文将详细介绍如何在jVisualVM上进行BTrace插件的离线安装,以便在无法在线安装的...

    btrace工具

    Btrace:java性能调优及问题追踪工具 Btrace:java性能调优及问题追踪工具

    btrace-release-1.3.11.3.zip

    标题中的 "btrace-release-1.3.11.3.zip" 表明这是一个 Btrace 的特定发布版本,版本号为 1.3.11.3,通常包含已编译的库文件、文档和其他必要的资源。 在 Java 开发中,性能监控是至关重要的,因为这有助于识别和...

    btrace1.3.9.zip

    《深入理解BTrace 1.3.9:Java应用诊断利器》 BTrace,全称为“Bytecode Tracing”,是一款强大的动态代码插桩工具,它允许开发者在运行时对Java应用程序进行性能分析和诊断。BTrace 1.3.9是其一个重要版本,特别...

    btrace release-1.2.5.1

    【标题】"btrace release-1.2.5.1" 指的是BTrace的一个特定版本,1.2.5.1。BTrace是一款强大的Java应用动态追踪工具,它允许开发者在运行时对Java应用程序进行性能分析和诊断,而无需修改源代码或重新部署应用。这个...

    Btrace资源

    **Btrace资源详解** Btrace 是一个强大的Java应用程序动态跟踪工具,它允许开发者在不修改代码的情况下,对正在运行的应用程序进行实时监控和诊断。这个资源包包含了Btrace的多个组件,下面我们将逐一介绍。 1. **...

    btrace安装包

    BTrace是一款强大的Java诊断工具,专用于实时、安全地进行生产环境中的应用程序性能监控和故障排查。它的核心特性在于能够在不中断程序运行的情况下,动态插入代码进行跟踪和分析,这对于理解复杂的系统行为和定位...

    jdk1.8-Btrace.rar

    【标题】"jdk1.8-Btrace.rar"指的是一个针对Java开发的特殊工具包,它包含了一个名为Btrace的在线检测插件。这个插件专为Java开发者设计,旨在帮助他们在应用程序运行时进行问题的实时定位,而无需停止或重启服务。...

Global site tag (gtag.js) - Google Analytics