破解 jar 包之直接修改 .class 文件方式
一、常规 JAVA 软件破解流程
1. 快速定位。
2) 用jd-gui反编译 jar 包,得到源码。
3) 搜索关键字以定位。
2. 修改破解。
2) 再将 Dex 解出 Smali。
3) 修改 Smali 代码
4) 将修改后的文件重新打包回 Dex
5) 最后转成 JAR 包,破解完成。
二、直接修改 .class 字节码的方式实现破解
准备工具
参考资料
Start


1
2
3
4
5
|
aload_0 ifnonnull 6 (+5) iconst_5 ireturn aload_0 |
1
|
2a c7 xx xx 08 ac 2a (xx xx 是 ifnonnull 后面跟的 2 字节立即数) |


01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
|
Code_attribute{ u2 attribute_name_index; u4 attribute_length; u2 max_stack; u2 max_locals; u4 code_length; u1 code[code_length]; u2 exception_table_length; { u2 start_pc; u2 end_pc; u2 handler_pc; u2 catch_type; } exception_table[exception_table_length]; u2 attributes_count; attribute_infoattributes[attributes_count]; } |

1
2
|
sipush 1000 ireturn |
1
|
11 03 E8 AC (03 E8= 1000数字是高字节序) |

需要注意的细节坑
破解 jar 包之直接修改 .class 文件方式的更多相关文章
- java之jvm学习笔记六-十二(实践写自己的安全管理器)(jar包的代码认证和签名) (实践对jar包的代码签名) (策略文件)(策略和保护域) (访问控制器) (访问控制器的栈校验机制) (jvm基本结构)
java之jvm学习笔记六(实践写自己的安全管理器) 安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用 AccessCo ...
- 关于压缩jar包时提示*.*没有这个文件或目录的问题以及解决办法:
关于压缩jar包时提示.没有这个文件或目录的问题以及解决办法: 问题描述: 我在打包jar时,CMD中进入到包的上一层目录. 在命令提示符中输入 提示如下: 从提示中可知没有找到我们想要打包的clas ...
- Springboot 打jar包分离lib,配置文件正确方式(二)
Springboot 打jar包分离lib,配置文件正确方式(二) 背景 从<Springboot 打jar包分离lib,配置文件正确方式>中,可以达到把配置文件和依赖第三方的jar包分离 ...
- 修改jar包配置文件的正确操作,jar包解压出来的文件夹重新打成jar,不依靠开发工具!!!!
修改jar包配置文件的正确操作,有的时候通过一些解压工具可以对内部的文件进行修改,但是有时候会无效.这就很烦了 一.背景: 有一个springboot项目,事先我已经用编译好打成jar包以 ...
- 破解jar包5步搞定,jira7.9.2操作成功,附github代码库
1,从要破解的程序中拷贝.jar包文件,运行1_jar.sh将其解压.以jira7.9.2为例: $install_dir\JIRA\atlassian-jira\WEB-INF\lib\atlass ...
- Maven pom.xml 配置说明: 打jar包不包括指定资源文件和.class xml,配置不跑testCase,建pom父子项目
**maven如何配置打jar包时,一些class 或者资源文件不打进来,把classpath的xml文件打进jar <build> <!--针对资源文件--> <res ...
- JAR包结构,META-INF/MANIFEST.MF文件详细说明[全部属性][打包][JDK]
转载请注:[https://www.cnblogs.com/applerosa/p/9736729.html] 常见的属性 jar文件的用途 压缩的和未压缩的 jar工具 可执行的JAR 1.创建可执 ...
- java项目部署之后,Jar包中配置文件修改
Java项目发布时,配置文件不像.net项目一样与工程路径保持一致,而是直接包含在了jar包中,此时要修改就没那么方便了,我们可以将配置文件从jar包抽离出来,修改完之后再写入Jar包即可, 也没那么 ...
- 如何解决本地mvn编译安装的jar包在IDEA的pom文件中找不到
在IDEA中maven作为一个内置的工具,不需要任何配置就可以使用,点开settings 可以看到有三个maven可以选择 C:/apache-maven-3.5.3这个maven当然是我自己安装的, ...
随机推荐
- 探讨e.target与e.currentTarget
target与currentTarget两者既有区别,也有联系,那么我们就来探讨下他们的区别吧,一个通俗易懂的例子解释一下两者的区别: <!DOCTYPE html> <html&g ...
- The case for learned index structures
17年的旧文,最近因为SageDB论文而重读. 文章主要思路是通过学习key的顺序.结构等来预测record在位置.存在与否等.效果方面,据称部分场景下,相对b-tree可以优化70%的内存占用. 最 ...
- Collections.sort()中的mergeSort归并排序
@SuppressWarnings({"unchecked", "rawtypes"}) private static void mergeSort(Objec ...
- HBase:分布式列式NoSQL数据库
传统的ACID数据库,可扩展性上受到了巨大的挑战.而HBase这类系统,兼具可扩展性的同时,也提出了类SQL的接口. HBase架构组成 HBase采用Master/Slave架构搭建集群,它隶属于H ...
- php里input数组的应用
一般我们使用input传递表单数据时,可以使用<input name="xxx[]" value="1"><input name=" ...
- spring StopWatch用法
背景 有时我们在做开发的时候需要记录每个任务执行时间,或者记录一段代码执行时间,最简单的方法就是打印当前时间与执行完时间的差值,然后这样如果执行大量测试的话就很麻烦,并且不直观,如果想对执行的时间做进 ...
- 基于GoogLeNet的不同花分类微调训练案例
import tensorflow as tf from tensorflow.contrib.slim import nets slim = tf.contrib.slim import numpy ...
- Python爬虫框架Scrapy
Scrapy是一个流行的Python爬虫框架, 用途广泛. 使用pip安装scrapy: pip install scrapy scrapy由一下几个主要组件组成: scheduler: 调度器, 决 ...
- [转]Webpack 入门教程
本文转自:http://www.runoob.com/w3cnote/webpack-tutorial.html Webpack 是一个前端资源加载/打包工具.它将根据模块的依赖关系进行静态分析,然后 ...
- html+ashx制作网页发布之后遇到的问题
html+ashx发布之后访问不了ashx文件.(开发时一直是对的) .NETFramework开发时是4.5,服务器上的网站是2.0的. 开始意识到这个问题,发布时选择4.5的Framework.之 ...