Java-----jar反编译修改重新打包

http://blog.csdn.net/hekewangzi/article/details/44676797

一、使用反编译工具JD-GUI(JD-GUI相关操作见Java-----反编译class文件)打开要修改的jar包(如update.jar),找到jar包中要修改的class文件(如a.class)

二、打开Eclipse新建一个Java工程(如demo),并添加一个类(如A.java:该类名与a.class文件中的类名一致,所在包结构与a.class文件中的类所在的包结构一致),复制a.class文件里的全部内容到A.java。对A.java做你要的修改保存即可

三、使用WinRAR解压工具打开update.jar,找到a.class选中右键点击删除

四、把update.jar导入到项目demo中,把demo项目中需要的jar包导入(假如a.class中没有相关与之对应的引用就不需到这些jar包了)

五、右键demo项目导出jar包(如new.jar),然后用WinRAR打开new.jar,找到重新编译好的a.class

六、用WinRAR打开update.jar,找到原来a.class文件存放的目录,把重新编译后的a.class文件拖进目录覆盖即可

时间: 2024-10-05 09:39:53

Java-----jar反编译修改重新打包的相关文章

JAVA代码反编译笔记

最近有个朋友说有个java弄的软件是从朋友处拿来的,由于进行了网卡地址绑定,不修改网卡地址无法使用,叫我看看有无办法破解,之前都很少玩这些东西,本着帮忙的心态,尝试了下,便有了一下的笔记内容. 1.使用jd-gui进行反编译,找到核心校验代码,将该b.class文件单独从jar包中抽离出来,由于该jar包编译打包时采用加密混淆,是无法直接使用的,而且代码非常难读懂,也只能将就着看了: 2.将包含b.class的jar包通过winrar解压工具直接打开,根据包名路径找到b.class然后直接删掉里

Android反编译后重新打包

apk中包含的内容 使用apktool直接反编译apk 好吧,不管怎样,反正是报异常了.有人说是apktool的版本不是最新导致的,我也难得去查找原因了,以前这样直接反编译也就是那样而已. 使用dex2jar将从apk中解压得到的dex文件转成jar包 使用jd-gui来查看jar包内容 将要需改的类更改代码后复制到jar内,完成覆盖替换 把jar包重新转成dex文件 将修改完成后的dex文件复制到原来的apk文件中 直接覆盖原来的dex文件 然后就兴冲冲地直接去安装了,然而- 看来果然没这么简

java常见反编译工具

1.Java反编译插件 -- Jadclipse JadClipse是Jad的Eclipse插件,是一款非常实用而且方便地Java反编译插件,我们只需将下载的插件包复制到eclipse的plugins目录下,然后修改window -> Preferences -> Java -> JadClipse 下的Path to decompiler ,如:C:\pin\jadnt158\jad.exe,最后在Windows -> Perference -> General ->

APK中java代码反编译

Android APK中的Java代码可以被反编译到什么程度主要看APK的加密程度. 第一种情况:无混淆无加密无加壳.直接利用Dex2jar和JD-GUI可把源码从APK里抠出来,代码逻辑清晰,基本上做到可复用,只是资源文件的引用需要计算一下. 第二种情况:混淆.通常是利用Proguard做的防护.因为是对jar做的不可逆混淆(除非有mapping),因此不能还原成原来的代码.但是代码结构,代码逻辑一致,只要花长时间对代码进行梳理一样可找准核心代码,解密方法跟第一种一致. 第三种情况:加密.这里

在cmd上执行关于java的反编译

反编译是指通过对他人软件的目标程序(比如可执行程序)进行“逆向分析.研究”工作,以推导出他人的软件产品所使用的思路.原理.结构.算法.处理过程.运行方法等设计要素,某些特定情况下可能推导出源代码.反编译作为自己开发软件时的参考,或者直接用于自己的软件产品中.例如执行如下代码的反编译 1 public class stringbuffer { 2 public static void main(String[] args){ 3 StringBuffer s = new StringBuffer(

1. dex和Jar反编译对比

Java源码 public class Hello { public int foo(int a,int b) { return (a + b) * (a - b); } public static void main(String[] argc) { Hello hello = new Hello(); System.out.println(hello.foo(5,3)); }} 编译java文件: javac Hello.java 将class文件转换成dex文件 dx --dex --ou

App反编译二次打包常见问题处理

1.二次打包时报错:Error retrieving parent for item: No resource found that matches the given name 如: D:\用户文件夹\Desktop\APP反编译\Android反编译工具包(最新版)\apk2java\apktool1.4. 1\HJ7\res\values\styles.xml:11: error: Error retrieving parent for item: No reso urce found t

apk反编译和重新打包

最近用anysdk接android,接入有点小麻烦,不过确实带来了很大的便利,接入新渠道只需要设置参数就可以了,唯一要注意的就是,发布的时候把debugMode关闭. 不过android下面的anysdk有个问题,就是所有渠道必须用同一套资源,然后使用母包生成渠道包,包之间无法做差异化,这与我们项目有点矛盾.要解决这个问题,能想到的有两个办法: 母包就将某个渠道的最终资源弄进去,再生成渠道包,这个确实可行,但是实在太麻烦,不好维护,而且使anysdk带来的便利大大降低. 一次性生成所有渠道包,再

java防止反编译之proguard混淆代码

proguard5.3下载地址:http://down.51cto.com/data/2316123 从eclipse中导出工程的jar包(这个就不详细说了) 安装proguard后打开bin目录下的proguardgui.bat启动proguard如下图所示: 点击Input/Output,设置输入输出的jar包,input就是原jar,output就是混淆后的jar. 5.点击Input/Output中的add,添加该工程用到的jar,包括jre,以及web-info下的lib中的所有jar