声明  

  事先声明,本文仅提供破解方法以供个人及读者们学习Java字节码,不提倡破解程序。

  本文是个人学习掘金小册张师傅的《JVM字节码从入门到精通》后,作为一个实践的记录,并无恶意。

  

  关于censum

  censum是什么呢,其实我还没有真正的用过该软件,临时去官网看了一下介绍。

  

  其核心工作就是帮助我们从繁琐的JVM设计中解放出来,借助可视化工具方便的监控和查看自己的Java程序是否存在

内存泄漏,有时候应用程序突然卡顿是为什么等问题。对censum刚兴趣的同学可以去官网下载来看看。

  Censum官网

  

  相关工具

  字节码反编译工具:jd-gui

  修改16进制工具:winhex

  解压压缩工具:7z

  破解原理

  最简单的暴力破解,修改字节码之后重新打包(等我学习了java agent破解之后就没这么暴力了)。

  

  破解过程

  • 下载censum老版本

   censum下载

   下载之后先直接双击运行看看

   

   可以看到现在是不能用的,提示license过期。

  • 用jd-gui查看反编译后的字节码

   

   在里面找代码,这是一个可能很浩大的工程,因为可能class文件特别多。但是只要jar包没有被特意混淆过,就是能找到的。

    我由于看了文章,里面直接指出了哪个class文件是校验过期的文件,所以就直接定位啦。。。<~<_>~>

    定位到CensumStartupChecks.class这个文件:

  

看一遍代码逻辑,挺简单的,而且其中校验Year、Month等都是写死在了代码里面。

那么,现在我们已经知道了应该修改哪些代码,怎么去修改呢?首先我们要解压jar包。

  • 通过7z解压jar包

   为什么我要通过7z来解压呢?我最开始用的winrar来解压和打包,发现打包出来的文件比之前少了差不多1M,运行报错。

   后来了解到jar包实质上可以等同于zip包,所以要用zip的格式解压和打包。由于我用的win10不支持zip命令,所以下了7z这个

   工具,7z本身是支持zip格式的。

   

   解压之后是这样的:

  • 借助winhex修改16进制

找到要修改的类文件CensumStartupChecks.class,然后使用winhex工具打开:

看到了预料之中的16进制,然后我们搜索一下我们要修改的关键字符,2016。为什么找2016呢,因为我们要修改

年份,把2016修改成2030就可以了。

搜索要使用winhex搜索hex字符的功能:

我们要搜索的是2016,2016的16进制多少呢:

拿到了,7E0,在winhex里面搜索一下:

我擦嘞,威慑搜索不到呢。

仔细看了一下里面的16进制格式,都是两个两个的,所以就在前面补一个0:07E0

搜索到了,哈哈

然后就是修改,先看下2030的16进制:

7EE,同样的补0就得到了07EE。对比下2016的十六进制:07E0,所以我们只需要修改最后一个。

点击到需要的修改的字符上,右键edit -> modifydata

修改成E,然后保存即可:

  • 用7z打包

经历了上面一系列骚操作,我们就可以打包了:

注意打包的后缀为jar,压缩格式为zip:

打包完成:

双击运行,哈哈成功啦!!!

  参考链接

winhex

jd-gui

7-Zip

  破解 jar 包之直接修改 .class 文件方式

  破解软件-用直接修改字节码的方式

  跟我一起用 ASM 实现编译期字节码插桩

特别推荐

推荐张师傅的《JVM字节码从入门到精通》

  

字节码暴力破解censum(老版本)的更多相关文章

  1. Java字节码中对应的JDK版本

    Java class vs. JDK version mapping Java SE 9 = 53,Java SE 8 = 52,Java SE 7 = 51,Java SE 6.0 = 50,Jav ...

  2. javaagent+asm破解censum

    内容介绍 最近在学习字节码相关知识,了解到通过ASM字节码改写技术来做破解一些软件破解,非常感兴趣,本文记录一下破解 Censum的过程(仅个人学习使用). 之前也写过一篇暴力破解Censum的文章, ...

  3. JVM 内部原理(七)— Java 字节码基础之二

    JVM 内部原理(七)- Java 字节码基础之二 介绍 版本:Java SE 7 为什么需要了解 Java 字节码? 无论你是一名 Java 开发者.架构师.CxO 还是智能手机的普通用户,Java ...

  4. 字节码增强技术-Byte Buddy

    本文转载自字节码增强技术-Byte Buddy 为什么需要在运行时生成代码? Java 是一个强类型语言系统,要求变量和对象都有一个确定的类型,不兼容类型赋值都会造成转换异常,通常情况下这种错误都会被 ...

  5. C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 防止暴力破解密码、提高大型信息系统安全

    几十万人使用的系统.覆盖全国.每天营业额上好几个亿的.若信息安全方面太薄弱了.那将会是致命的打击.甚至威胁到企业的正常运转.从国家层面到企业级别大家都在重视信息的安全.可控. 运行速度慢一点点可以忍受 ...

  6. XAMPP、PHPstorm和PHPcharm和Windows环境下Python搭建+暴力破解

    XAMPP的安装和使用 一.什么是XAMPP? XAMPP是最流行的PHP开发环境. XAMPP是完全免费且易于安装的Apache发行版,其中包含Apache.MariaDB.PHP和Perl. 类似 ...

  7. DVWA Brute Force:暴力破解篇

    DVWA Brute Force:暴力破解篇 前言 暴力破解是破解用户名密码的常用手段,主要是利用信息搜集得到有用信息来构造有针对性的弱口令字典,对网站进行爆破,以获取到用户的账号信息,有可能利用其权 ...

  8. 开源服务专题之------ssh防止暴力破解及fail2ban的使用方法

    15年出现的JAVA反序列化漏洞,另一个是redis配置不当导致机器入侵.只要redis是用root启动的并且未授权的话,就可以通过set方式直接写入一个authorized_keys到系统的/roo ...

  9. Java 编程的动态性,第 7 部分: 用 BCEL 设计字节码--转载

    在本系列的最后三篇文章中,我展示了如何用 Javassist 框架操作类.这次我将用一种很不同的方法操纵字节码——使用 Apache Byte Code Engineering Library (BC ...

随机推荐

  1. 01vue.config.js

      const path = require('path'); module.exports = { // 基本路径 publicPath: process.env.NODE_ENV === 'pro ...

  2. Centos7安装后进不去,死活就要填licence,该怎么办?

    遇到这个问题不要麻爪,跟着我做: 1 回车 2 回车 c 回车 c 回车 然后就进入系统了. 要使它联网,点右上角的开关按钮,将PCI Ethernet选择为connect状态. 我的centos7是 ...

  3. Vue的优缺点

    使用vue.js做开发快两年了,对vue的优缺点有一点自己的见解,跟大神比不了,但是面试基本够用 vue在国内能被广泛使用的首要原因是它是基于mvvm框架做开发的,mvvm是前端开发中一种很有影响力的 ...

  4. Spring Boot 集成阿里云 OSS 进行文件存储

    最近因为项目中需要存储很多的图片,不想存储到服务器上,因此就直接选用阿里云的对象服务(Object Storage Service,简称 OSS)来进行存储,本文将介绍 Spring Boot 集成 ...

  5. composer browse 查看包的存储库和主页

    composer browse 用于打开或查看包的存储库和主页 1. 使用示例 browse 命令官方手册:https://getcomposer.org/doc/03-cli.md#browse-h ...

  6. HTML标签语言一览表

    <html> ● 文件声明 让浏览器知道这是 html 文件 <head> ● 开头 提供文件整体资讯 <title> ● 标题 定义文件标题,将显示于浏览顶端 & ...

  7. centos7使用Minikube“快速搭建“出Kubernetes本地实验环境(踩坑集锦及解决方案)

    先决条件(先假设你做完这两步骤) 检查Linux是否支持虚拟化,验证输出是否为非空如何开启虚拟化 grep -E --color 'vmx|svm' /proc/cpuinfo 安装 kubectl ...

  8. Robotframework自动化4-基础关键字介绍1

    前言 上一节已经介绍了APP的启动,那我们就会看到我们引用了一些关键字,对于AppiumLibrary都有哪些常用的关键呢,这一节主要介绍这一部分. AppiumLibrary 常用关键字介绍 1.关 ...

  9. 实用js方法DataUrl转为File、url转base64

    声明:仅为方便自己所需,也希望能方便他人,如有侵权,联系删除. 1,DataUrl转为File /** * DataUrl转为File * @param {String} dataUrl - data ...

  10. 学习 | canvas实现图片懒加载 && 下滑底部加载

    用canvas实现图片的懒加载并且下滑到据底部60px的时候再次加载数据,模仿UC浏览器的新闻加载. 完整代码:https://github.com/dirkhe1051931999/writeBlo ...