国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

談談Java程序的反編譯

開發 后端
Java是一種簡單的,面向對象的,分布式的,解釋型的,健壯安全的,結構中立的,可移植的,性能優異、多線程的動態語言。本文介紹Java程序的反編譯,供參考。

所謂反編譯就是把編譯后的文件轉成源代碼,本來是看不到源碼的,反編譯后就可以看到了。作者因最近分析一些JAVA程序,對JAVA的反編譯進行了一番了解,下面將我所了解的情況作以下介紹,希望對JAVA愛好者有所幫助。

JAVA是采用一種稱做“字節編碼”的程序結構,分為小程序(嵌入到HTML文件中)和應用程序(直接在命令狀態下執行)兩種類型。無論哪種結構,一旦用JAVAC 命令編譯后,均變成后綴為CLASS的同名可執行文件。這種文件是不可閱讀的代碼。

經查閱了SUN公司的JDK(JDK1.1.3)文檔資料后,我找到了一個據稱是可反編譯JAVA的JAVAP文件(EXE),這個文件位于\JDK\BIN\ 下面,經按說明使用后,感到失望,原來這個“反編譯”僅可反編譯出JAVA程序的數據區(定義)、若干方法和類的引用等。

這里我用了一個簡單例子來說明問題。

JAVA的源程序hello_java.java如下:

 

  1. import java.applet.*;  
  2. import java.awt.*;  
  3. public class hello_java extends Applet  
  4. {  
  5. public void paint(Graphics g)  
  6. {  
  7. g.drawString("Hello Java!\n",20,20);  
  8. }  

 

經用反編譯命令:javap -c -package -public -private hello_java hello.java
得到的反編譯結果(hello.java)如下:(有關javap命令的選擇參數請見其使用說明,這里-c表示選擇了反編譯)
 

  1. Compiled from hello_java.java  
  2. public synchronized class hello_java extends java.applet.Applet  
  3. /* ACC_SUPER bit set */ 
  4. {  
  5. public void paint(java.awt.Graphics);  
  6. public hello_java();  
  7. Method void paint(java.awt.Graphics)  
  8. 0 aload_1  
  9. 1 ldc #1 
  10. 3 bipush 20 
  11. 5 bipush 20 
  12. 7 invokevirtual #6 
  13. 10 return 
  14. Method hello_java()  
  15. 0 aload_0  
  16. 1 invokespecial #5 V>  
  17. 4 return 

從上述結果不難看出該反編譯未能將源程序全譯出來,像語句g.drawString("Hello Java!\n",20,20); 就沒有。隨著程序量增加,未能編譯的JAVA語句還會更多。所以這個反編譯程序僅能起個參考作用。

幸虧有了INTERNET,筆者通過YAHOO很快找到了一個JAVA反編譯“自由軟件”(SHAREWARE),http://www.inter.nl.net/users/H.P.van.Vliet/mocha.htm 。 這個軟件叫MOCHA,據說是一位30來歲的加拿大的研究生所完成,僅是個“?”版,原因是這位叫做H.P.VAN.VLIET的小伙子患癌逝世了,十分可惜呀!

經使用MOCHA反編譯軟件,感到這個軟件十分好用,筆者試反編譯多個JAVA程序,均得到很好的結果。

這里給出如何使用這個軟件,首先,用WINZIP等將"mocha-b1.zip" 解開得到"mocha.zip"文件,"mocha.zip"不須再解開,這個包內包括了反編譯的類文件,只需將其拷貝到JDK所在的目錄下,如:c:\jdk\bin\ 此外,須設置路徑:SET CLASSPATH=c:\myclasses;c:\jdk\bin\mocha.zip

MOCHA用法:

 

  1. java mocha.Decompiler [-v] [-o] Class1.class Class2.class ... 

 

"java" 調用Java虛擬機

"mocha.Decompiler" 指示要進行JAVA反編譯

"-v" 選擇詳細輸出

"-o" 選寫入已有的.mocha 文件

"ClassX.class" 指出要反編譯類名

注意,不需給出輸出的JAVA文件名,因為MOCHA自動產生一個與CLASS同名但擴展名為MOCHA的JAVA源文件。

對于上例,可用命令:

 

  1. java mocha.Decompiler [-v] [-o] hello_java.class 

 

得到的源文件:

 

  1. /* Decompiled by Mocha from hello_java.class */ 
  2. /* Originally compiled from hello_java.java */ 
  3. import java.applet.Applet;  
  4. import java.awt.Graphics;  
  5. public synchronized class hello_java extends Applet  
  6. {  
  7. public void paint(Graphics g)  
  8. {  
  9. g.drawString("Hello Java!\n"2020);  
  10. }  
  11. public hello_java()  
  12. {  
  13. }  
  14. }  

 

我們不難發現,此文件與編譯前的JAVA源文件完全一樣!筆者曾經用MOCHA反編譯出最大為80K的源文件,均取得成功。

在此,筆者向英年早逝的VLIET表示敬意,感謝他給我們留下這個工具軟件。

【編輯推薦】

  1. Java反編譯之代碼混淆
  2. Java反編譯的幾種常用方法
  3. Eclipse反編譯插件Jadclipse介紹
  4. 防止JAVA字節碼反編譯問題解決方案

 

責任編輯:于鐵 來源: 比特網
相關推薦

2011-05-31 14:18:17

2011-05-31 14:38:04

Android 反編譯

2017-02-20 13:54:14

Java代碼編譯

2015-01-15 11:01:43

2021-03-07 16:31:35

Java編譯反編譯

2009-06-11 13:49:30

2009-06-11 14:11:33

代碼混淆Java反編譯

2018-05-11 10:16:41

微信小程序反編譯

2011-05-31 14:52:13

Android 反編譯 方法

2014-09-25 10:28:02

反編譯工具Java

2012-11-06 10:02:04

JavaJadEclipse

2018-05-11 10:22:05

小程序源碼分析

2015-01-15 10:15:16

Android反編譯-smail語法

2021-05-18 10:18:15

Java

2018-09-05 20:00:23

編程語言Java程序員

2017-11-27 15:43:49

Androidjadx反編譯

2014-08-05 10:51:09

Xcode警告Objective-C

2024-05-22 09:36:42

開源NET

2025-06-17 07:35:27

Spring程序jadx

2024-09-09 00:00:07

點贊
收藏

51CTO技術棧公眾號

国产欧美日韩精品一区二区免费| 国产精品日本一区二区不卡视频| 香蕉亚洲视频| 国产欧美日韩综合精品| 999福利在线视频| 91九色02白丝porn| 欧美成人福利在线观看| 成人av网址在线观看| 美国av一区二区三区| 亚洲精品国产首次亮相| 国产精品久久97| 妖精视频一区二区三区| 隔壁老王国产在线精品| 成人亚洲免费| 日韩在线视频网站| 欧美性suv| 亚洲欧美日韩一区二区三区在线| 国产中文在线播放| 亚洲欧洲在线免费| 欧洲美女精品免费观看视频| 久久综合电影一区| 国色天香久久精品国产一区| 精品久久久91| 亚洲一二三区视频| 欧美在线免费视频| 国产精品片aa在线观看| 91精品国产九九九久久久亚洲| 99国产精品免费网站| 欧美一级bbbbb性bbbb喷潮片| 精品在线手机视频| 成人疯狂猛交xxx| 亚洲精品裸体| 伊人久久大香线蕉成人综合网| 国产精品一区一区三区| 精品视频无码一区二区三区| 亚洲三级在线免费观看| 日本在线丨区| 欧美日韩午夜影院| www.youjizz.com在线| 亚洲欧美一区二区三区在线| 国产精品777777在线播放| 57pao成人永久免费视频| 久久亚洲国产| 欧美日本韩国在线| 岛国精品在线播放| 四虎av网址| 色综合中文综合网| av免费在线观看网站| 亚洲国产小视频在线观看| 日本成人一区二区| 国产精品中文在线| 日韩高清不卡在线| 日韩欧美国产片| 欧美日韩国产片| 久久亚洲精品爱爱| 国产精品久久久久av| 久久午夜视频| 欧在线一二三四区| 色视频成人在线观看免| 亚洲国产福利| 国产极品精品在线观看| 日韩中文字幕麻豆| 日本成人免费| 精品免费国产二区三区| 亚洲日本视频在线| 粉嫩精品一区二区三区在线观看| 国产精品夜夜爽| 最近中文字幕在线| 亚洲欧美日韩国产精品| 91精品网站在线观看| 日韩男人天堂| 精品久久久久久久中文字幕| 黄色网址在线播放| 亚洲色图偷窥自拍| 超碰在线亚洲| 韩国一区二区三区美女美女秀 | 亚洲精品日韩一| 久热国产在线| 日韩中文字幕免费视频| 亚洲精品国产成人影院| 日本福利视频一区| 在线亚洲高清视频| 网站一区二区| 日韩精品第一页| 亚洲一二三专区| 日本欧美韩国| 51国产成人精品午夜福中文下载| 国产91对白在线观看九色| 在线观看中文字幕| 久久精品久久久久久| 日韩亚洲国产精品| 大陆一级毛片| 在线视频免费一区二区| 黄色精品一区| 免费播放av| 久久精品久久久久久| 蜜臀av一区二区| 成人jjav| 日本中文字幕久久看| 国产精品自产自拍| 青青影院在线观看| 成人福利在线视频| 国产日韩亚洲欧美综合| 成人欧美大片| 欧美福利精品| 色综合一区二区| 伊甸园亚洲一区| 成人在线观看a| 中文在线不卡视频| 天堂成人免费av电影一区| 日韩欧美在线观看一区二区| 91福利视频网| 欧美国产在线观看| 91麻豆精品国产91久久久更新资源速度超快 | 免费视频一区二区| 久久电影中文字幕| 日韩美女免费线视频| 国产色婷婷亚洲99精品小说| 男人皇宫亚洲男人2020| 欧美精品国产精品久久久| 一本大道久久精品懂色aⅴ| 欧美视频免费| 蜜桃臀av在线| 成人福利视频网| 午夜精品福利一区二区蜜股av| 亚洲女娇小黑人粗硬| 99ri国产在线| 国产成人精品最新| 亚洲一区二区三区精品在线| 国产一区二区三区网| 激情视频网址| 国产一区私人高清影院| 欧美日韩国内自拍| 欧美va亚洲va日韩∨a综合色| 欧美著名女优| 91亚洲精品视频| 在线亚洲一区二区| 欧美日韩三级| 国产在线激情| 日韩欧美视频一区二区三区四区 | 国产三级视频在线播放线观看| 亚洲一区二区三区在线视频 | 国产精品99久久久久久动医院| 久草在线新资源| 91成人免费视频| 欧美三区在线观看| 视频一区欧美日韩| 欧美大片免费观看网址| 少妇人妻在线视频| 2019中文字幕免费视频| 午夜精品久久久久久久久| 国模吧视频一区| 91九色在线播放| 日韩精品―中文字幕| 久久久久久久久久久亚洲| 樱花草国产18久久久久| 红桃视频欧美| 一个人www视频在线免费观看| 国产极品粉嫩福利姬萌白酱| 91产国在线观看动作片喷水| 欧美性开放视频| 蜜臀精品久久久久久蜜臀| 日韩黄色在线| 高清国语自产在线观看| 国产美女精品在线观看| 精品爽片免费看久久| 久久精子c满五个校花| 久久国产影院| 久草在线视频资源| 虎白女粉嫩尤物福利视频| 国产91精品不卡视频| 91久久精品一区二区三区| 视频一区在线视频| 日韩在线精品强乱中文字幕| 亚洲国产精华液| 亚洲7777| 欧美一级片久久久久久久| 欧美三级在线播放| 成人激情校园春色| 四虎国产精品免费观看| 7777kkk亚洲综合欧美网站| wwwwxxxx日韩| 好吊色欧美一区二区三区四区 | 丁香一区二区三区| 老司机精品视频在线播放| 成人在线观看免费| 免费 成 人 黄 色| 91文字幕巨乱亚洲香蕉| 亚洲天堂免费在线| 欧美色另类天堂2015| 成人网页在线观看| 一本一道久久a久久精品蜜桃| 日韩免费电影| 极品白浆推特女神在线观看| 久久久久久久中文| 国产在线一区二区三区四区| 欧美激情视频免费观看| 欧美一区二区在线不卡| 一区二区三区视频在线看| 国产精品一区二区果冻传媒|