反编译class.jar怎么反编译成.class或者.java,哪位高手能帮一下忙?

反编译class  时间:2021-07-20  阅读:()

可以反编译.class文件吗?

当然可以了。

在java软件包的bin文件夹下有一个javap程序,就是用来反编译的。

用法如java一样。

就是先用javac变成字节码文件就是.class文件后,用javap 加上文件名就可以反编译了。

举个例子test.class,反编译用javap test就行了。

如何将.class文件反编译为.java文件

反编译工具jad简单用法 以下假设jad.exe在c:java目录下 一、基本用法 Usage:jad [option(s)] 直接输入类文件名,且支持通配符,如下所示。

c:java>jad example1.class c:java>jad *.class 结果是将example1.class反编译为example1.jad。

将example1.jad改为example1.java即得源文件。

二、Option -o 不提示,覆盖源文件 三、Option -s c:java>jad -sjava example1.class 反编译结果以.java为扩展名。

四、Option -p 将反编译结果输出到屏幕 c:java>jad -p example1.class 将反编译结果重定向到文件 c:java>jad -p example1.class>example1.java 五、Option -d 指定反编译的输出文件目录 c:java>jad -o -dtest -sjava *.class ps:这里是下载地址,不行的话可以加我的qq。

349316367。

我传给你。

什么?谢谢?呵呵,客气。

混淆的class文件怎么进行反编译

一般情况下Java应用的开发者为了保护代码不被别人抄袭,在生成class文件的时候都java文件进行了混淆,这种class文件用反编译工具得到的结果很难看懂,并且不能进行编译。

从研究的角度,浅析如何读懂这种反编译过来的文件。

例子一:赋值 反编译过来的代码如下: Node node; Node node1 = _$3.getChildNodes().item(0); node1; node1; JVM INSTR swap ; node; getChildNodes(); 0; item(); getChildNodes(); 0; item(); getNodeValue(); String s; s; 原始语句: Node node; Node node1 = currDocument.getChildNodes().item(0); node = node1; String s = node.getChildNodes().item(0).getChildNodes().item(0).getNodeValue(); 注解: JVM INSTR swap ; //赋值语句 练习: String s1; String s8 = node.getChildNodes().item(1).getChildNodes().item(0).getNodeValue(); s8; s8; JVM INSTR swap ; s1; 10; Integer.parseInt(); int i; i; 例子二:不带参数创建对象 反编译过来的代码如下: JVM INSTR new #244 ; JVM INSTR dup ; JVM INSTR swap ; CrossTable(); CrossTable crosstable; crosstable; 原始语句: CrossTable crosstable = new CrossTable(); 注解: 练习: JVM INSTR new #246 ; JVM INSTR dup ; JVM INSTR swap ; Database(); Object obj; obj; 例子三:带参数创建对象 反编译过来的代码如下: JVM INSTR new #262 ; JVM INSTR dup ; JVM INSTR swap ; String.valueOf(s2); StringBuffer(); s.substring(j, i); append(); s6; append(); toString(); s2; 原始语句: s2 = (new StringBuffer(String.valueOf(s2))).append(s.substring(j, i)).append(s6).toString(); 注解: 此语句实际上是:s2 += s.substring(j, i) + s6; 练习: 例子四:for循环 反编译过来的代码如下: int k = 0; goto _L4 _L8: ... k++; _L4: if(k < as.length) goto _L8; else goto _L7 原始语句: for(int k=0;k < as.length;k++) { ... } 注解: 例子五:while循环 反编译过来的代码如下: String s1 = ""; goto _L1 _L3: JVM INSTR new #262 ; JVM INSTR dup ; JVM INSTR swap ; String.valueOf(s1); StringBuffer(); _$2(resultset, s, l); append(); toString(); s1; _L1: if(resultset.next()) goto _L3; else goto _L2 原始语句: String s1 = ""; while(resultset.next()) { s1 = s1 + resultSetToString(resultset, s, l); }

如何修改反编译出来的class文件

没办法完全反编译所以的class文件为java文件的,因为java中编译具有不可逆性。

但是可以将每个文件反编译,之后直接放到相应的包路径下来进行重新编码。

第一步:通过附件的“jd-gui”打开jar文件; 第二步:将每个class文件的内容,粘贴到一个新建的java工程中(包路径必须相同); 第三步:修改需要修改的类,之后如果运行没问题的话,直接导出为jar包即可。

备注:其实此过程中出错的几率还是很大的,如果能够实现百分百编译的话,那么所以的项目也就间接开源了,这肯定是不现实的。

.jar怎么反编译成.class或者.java,哪位高手能帮一下忙?

jar 可以用解压工具打开的,比如winrar winzip等等 打开解压就能得到里边class文件了。

如果想看每个类的源代码再用java piler反编译class文件就能看到java的源代码了。

舍利云30元/月起;美国CERA云服务器,原生ip,低至28元/月起

目前舍利云服务器的主要特色是适合seo和建站,性价比方面非常不错,舍利云的产品以BGP线路速度优质稳定而著称,对于产品的线路和带宽有着极其严格的讲究,这主要表现在其对母鸡的超售有严格的管控,与此同时舍利云也尽心尽力为用户提供完美服务。目前,香港cn2云服务器,5M/10M带宽,价格低至30元/月,可试用1天;;美国cera云服务器,原生ip,低至28元/月起。一、香港CN2云服务器香港CN2精品线...

vpsdime:夏日促销活动,美国达拉斯VPS,2G内存/2核/20gSSD/1T流量,$20/年

vpsdime怎么样?vpsdime是2013年注册的国外VPS主机商,实际上他还有一系列的其他域名站点如Winity.io, Backupsy,Cloudive, Virtora等等,母公司“Nodisto IT”相对来说还是很靠谱了的商家。VPSDime主要提供各种高配低价VPS套餐,其中Linux VPS和存储VPS基于OpenVZ架构,高级VPS基于KVM。VPSDime在上个季度的Low...

TmhHost暑假活动:高端线路VPS季付8折优惠,可选洛杉矶CN2 GIA/日本软银/香港三网CN2 GIA/韩国双向CN2等

tmhhost怎么样?tmhhost正在搞暑假大促销活动,全部是高端线路VPS,现在直接季付8折优惠,活动截止时间是8月31日。可选机房及线路有美国洛杉矶cn2 gia+200G高防、洛杉矶三网CN2 GIA、洛杉矶CERA机房CN2 GIA,日本软银(100M带宽)、香港BGP直连200M带宽、香港三网CN2 GIA、韩国双向CN2。点击进入:tmhhost官方网站地址tmhhost优惠码:Tm...

反编译class为你推荐
im社区什么是IWOM?常用软件开发工具单片机有哪些开发工具?微软将停止支持32位Win10系统win10 64位怎么兼容32位腾讯汽车论坛腾讯·大楚网的核心产品99客服软件下载99客服软件不兼容 win8无法清除dns缓存无法清除dns缓存 设置好后重起又是无法清除500人同时怎么将微信群升级成500人发送验证码关联手机号码发送短信验证码oa源码phpoa开源协同oa办公系统v4.0官方免费版怎么用oa系统包含哪些模块OA系统一般包含哪些功能模块?
查域名 Vultr 外国服务器 私服服务器 免费smtp服务器 ftp教程 服务器维护方案 服务器干什么用的 中国电信测速网 国外免费asp空间 免费phpmysql空间 彩虹云 空间首页登陆 免费邮件服务器 丽萨 湖南idc 深圳域名 中国联通宽带测试 中国电信宽带测速 美国达拉斯 更多