久久久精品一区ed2k-女人被男人叉到高潮的视频-中文字幕乱码一区久久麻豆樱花-俄罗斯熟妇真实视频

java代碼混淆,java代碼混淆器

javaweb項(xiàng)目做混淆的詳細(xì)步驟

混淆的工具很多,最常用的為retroguard.

專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)香格里拉免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上1000家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

Java 代碼編譯后生成的 .class 中包含有源代碼中的所有信息(不包括注釋),尤其是在其中保存有調(diào)試信息的時(shí)候。所以一個(gè)按照正常方式編譯的 Java .class 文件可以非常輕易地被反編譯。反編譯工具有很多種,其中非常強(qiáng)大的一種是 jad。

為了避免出現(xiàn)這種情況,保護(hù)開(kāi)發(fā)者的勞動(dòng),又有一種叫做 Java 混淆器的工具被開(kāi)發(fā)出來(lái)。Java 混淆器的作用是對(duì)編譯好的代碼進(jìn)行混淆,使得其無(wú)法被反編譯或者反編譯后的代碼混亂難懂。Java 混淆器也有很多種,其中比較強(qiáng)大的一種是 RetroGuard(只說(shuō)比較強(qiáng)大是因?yàn)槲覍?duì)其功效還是有些懷疑的)。

這里我介紹一下 RetroGuard 的使用方法。

將下載的 .tar.gz 或者 .zip 文件解壓。有用的只有 retroguard.jar 一個(gè)文件,其它的是源代碼和文檔。

RetroGuard 是針對(duì) jar 文件做混淆的。使用之前需要先配置一下。可以手工編輯配置文件,更好的方法是使用 RetroGuard 提供的 GUI 工具來(lái)生成配置文件。使用方法如下:

java -classpath retroguard.jar;xxx.jar;yyy.zip;... RGgui

然后在 GUI 的 Wizard 中設(shè)置各個(gè)參數(shù)。上面的 -classpath 中應(yīng)該列出要混淆的 jar 所依賴的所有的包。

RGgui 的詳細(xì)使用方法可以看 RetroGuard 的文檔 docs.html。

配置文件生成后,就可以運(yùn)行 RetroGuard 進(jìn)行混淆了。使用方法如下:

java -classpath xxx.jar;yyy.zip;... RetroGuard vvv-unofb.jar vvv.jar vvv.rgs vvv.log

其中 vvv-unofb.jar 是未混淆的 jar 文件,vvv.jar 是混淆后生成的 jar 文件,vvv.rgs 是配置文件,vvv.log 是日志文件。缺省的配置文件名稱為 script.rgs,缺省的日志文件名稱為 retroguard.log。

在生成配置文件時(shí)需要注意的是:

1、所有 public 的類名、方法名、變量名應(yīng)該全部保留。因?yàn)樗性O(shè)置為 public 的內(nèi)容代表了整個(gè)包對(duì)外表現(xiàn)的接口。若某個(gè)內(nèi)容不想為外界訪問(wèn),就不應(yīng)該設(shè)置為 public 的。

2、若包中某個(gè)類使用了 java.lang.Class 或者 java.lang.ClassLoader 中的某個(gè)方法加載了一個(gè)類,若這個(gè)類在包外,不需要特別處理;若這個(gè)類在包內(nèi),則需要保留這個(gè)類的類名,否則混淆后會(huì)找不到這個(gè)類。

3、在包中的所有調(diào)試信息(源文件名、行號(hào)、變量/參數(shù)信息等等)應(yīng)全部刪除。

JAVA中容易混淆的幾個(gè)詞語(yǔ)分別是什么

我們?cè)谏厦娴某绦蛑锌吹搅艘痪錄](méi)有用的代碼,就是在MM類里的System.out.println("xxx");。沒(méi)有人關(guān)心基類MM是怎么看帥哥,因?yàn)樗皇且粋€(gè)模版,所以我們干脆就不要這句代碼,而且我們連{}也不要了,直接改寫這個(gè)方法為public abstract void toSeeGG();,那么這個(gè)方法稱做抽象方法(abstract method)?;怣M對(duì)我們來(lái)說(shuō)沒(méi)有實(shí)現(xiàn)的必要,于是我們把class MM{...}改寫為abstract class MM{...},那么這個(gè)類叫做抽象類(abstract class)。我們不禁要問(wèn),那么抽象類能不能含有非抽象的函數(shù)呢。答曰:可以。但是這在實(shí)際中沒(méi)有什么用處,唯一用到的地方是:1,main()函數(shù),用來(lái)測(cè)試你的類;2,考試中。那么我們還要問(wèn),子類可以不覆寫父類中抽象方法行不行?答曰:如果子類也是abstract,那么可以,否則不行。

比抽象類做的更徹底的是接口(注意,這里的接口是JAVA中真正意義的接口,非上文一開(kāi)始的接口,也既行為)。接口被設(shè)計(jì)出來(lái)的目的就是要讓你繼承的。等………,這是第一章,只讓大家知道一些概念就行了,上面我們說(shuō)的太多了。

BRUCE是個(gè)徹底的NN大師,我們接下來(lái)看到他把JAVA的低效率問(wèn)題說(shuō)的是那么的理所當(dāng)然,以至于我們看完后情不自禁也要說(shuō):

恩,JAVA就應(yīng)該這樣做,讓C++見(jiàn)鬼去吧。面向?qū)ο?,于是所有東東都是對(duì)象,有對(duì)象便有對(duì)象的產(chǎn)生和毀滅。程序運(yùn)行的時(shí)候,對(duì)象產(chǎn)生在內(nèi)存中。內(nèi)存分配有三種策略,分別是靜態(tài)的,棧式的(stack),和堆式的(heap)。C++使用前兩種策略,JAVA僅使用后者。兩者有什么區(qū)別呢?喜歡尋根究底的朋友請(qǐng)參考本站JSP/JAVA分壇的“棧存儲(chǔ)(stack)和堆存儲(chǔ)(heap)的區(qū)別 ”,我們只要記住,后者在內(nèi)存中的尋址要花更長(zhǎng)的時(shí)間,因此JAVA的效率低。但是JAVA提供了根據(jù)heap特點(diǎn)產(chǎn)生的垃圾回收機(jī)制。垃圾回收機(jī)制完成這樣的任務(wù),當(dāng)你的對(duì)象不在使用的時(shí)候它會(huì)自動(dòng)察覺(jué)并消滅。你不用再擔(dān)心發(fā)生內(nèi)存泄露了。而這是每個(gè)C++程序員最頭疼的事情。所以,你選擇吧,是要安全還是要效率。

其實(shí)第一章接下來(lái)講的東西對(duì)于初學(xué)者來(lái)說(shuō)已經(jīng)并不重要了,以上你的知識(shí)你明白了之后,在接下來(lái)的學(xué)習(xí)上你會(huì)輕松很多。我建議你不要看的那么清晰了。我想我們應(yīng)該開(kāi)始,馬上進(jìn)入第二章了。

以上是云棲社區(qū)小編為您精心準(zhǔn)備的的內(nèi)容,在云棲社區(qū)的博客、問(wèn)答、公眾號(hào)、人物、課程等欄目也有 的相關(guān)內(nèi)容,歡迎繼續(xù)使用右上角搜索按鈕進(jìn)行搜索java , 對(duì)象 , class , 方法 , 抽象 , mm , 一個(gè) , java覆寫 易混淆 抓關(guān)鍵詞理解課文、抓關(guān)鍵詞理解句子、閱讀理解關(guān)鍵詞、論文關(guān)鍵詞一般幾個(gè)、關(guān)鍵詞一般有幾個(gè),以便于您獲取更多的相關(guān)知識(shí)。

JAVA 有對(duì)源代碼進(jìn)行混淆的混淆器么

不需要對(duì)源代碼混淆。class有這種功能的,在J2ME中混淆是必須的,結(jié)果跟你說(shuō)的一樣,不過(guò)原理不是你那么走的,混淆以后的class反編譯也會(huì)讓人看不懂,全部變成了a,b,c,d這樣的名字。

如何分析經(jīng)過(guò)混淆后的java代碼

混淆代碼 是為了防止class文件被反編譯用的 但是程序的功能還是正常的 和你正常運(yùn)行一樣

如果連變量名都混淆了,就是說(shuō)所有有具體意義的英文變量名都用a,b,c,x,y等等來(lái)表示,那這是不可能還原的,因?yàn)殡娔X也不可能知道你這個(gè)a實(shí)際上代表了你的年齡而那個(gè)c代表了你老婆的胸圍!

但如果只是個(gè)事混淆,那網(wǎng)上倒有不少工具可以格式化源代碼!自己搜一搜吧!推薦一款編輯器,IntelliJ,很不錯(cuò),值得一提的是,我用過(guò)的眾多編輯器中,這款編輯器的代碼格式化功能最強(qiáng)大!

求教Java web項(xiàng)目一般怎樣做代碼混淆或加密

一、java web項(xiàng)目混淆

proguard4.8工具,說(shuō)是支持war的,可混淆過(guò)后少了classes目錄了,自然成功不了。網(wǎng)上搜的過(guò)程不詳說(shuō)了,最后找著--“J2EE-web工程ProGuard代碼混淆07_28”,網(wǎng)址:

根據(jù)提示一步步完成。

把web項(xiàng)目打成jar包后用proguard進(jìn)行混淆,然后把混淆過(guò)后的class目錄替換發(fā)布包war中的對(duì)應(yīng)目錄,啟動(dòng)運(yùn)行是正常的。

主要注意利用proguard生成xxx.pro文件,然后手動(dòng)加工-keep class WebRoot.WEB-INFO.lib.* 等項(xiàng)目中不需要混淆的包和類。

二、java web項(xiàng)目打成.exe

沒(méi)找到免費(fèi)的,這搜到個(gè)收費(fèi)的--Jinstall,試了下功能挺好,

可以加密、集成jdk、tomcat,如果數(shù)據(jù)庫(kù)是mysql也集成,其他數(shù)據(jù)庫(kù)的話要設(shè)置數(shù)據(jù)庫(kù)的url.

本文名稱:java代碼混淆,java代碼混淆器
文章出自:http://sd-ha.com/article44/dsspehe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、GoogleApp開(kāi)發(fā)、建站公司企業(yè)網(wǎng)站制作、網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化