導航:首頁 > 源碼編譯 > 編譯和破解

編譯和破解

發布時間:2022-05-22 17:54:50

Ⅰ 如何有效的防止java程序被反編譯和破解

由於Java位元組碼的抽象級別較高,因此它們較容易被反編譯。下面介紹了幾種常用的方法,用於保護Java位元組碼不被反編譯。通常,這些方法不能夠絕對防止程序被反編譯,而是加大反編譯的難度而已,因為這些方法都有自己的使用環境和弱點。
1.隔離Java程序
最簡單的方法就是讓用戶不能夠訪問到Java Class程序,這種方法是最根本的方法,具體實現有多種方式。例如,開發人員可以將關鍵的Java Class放在伺服器端,客戶端通過訪問伺服器的相關介面來獲得服務,而不是直接訪問Class文件。這樣黑客就沒有辦法反編譯Class文件。目前,通過介面提供服務的標准和協議也越來越多,例如 HTTP、Web Service、RPC等。但是有很多應用都不適合這種保護方式,例如對於單機運行的程序就無法隔離Java程序。
2.對Class文件進行加密
為了防止Class文件被直接反編譯,許多開發人員將一些關鍵的Class文件進行加密,例如對注冊碼、序列號管理相關的類等。在使用這些被加密的類之前,程序首先需要對這些類進行解密,而後再將這些類裝載到JVM當中。這些類的解密可以由硬體完成,也可以使用軟體完成。
在實現時,開發人員往往通過自定義ClassLoader類來完成加密類的裝載(注意由於安全性的原因,Applet不能夠支持自定義的ClassLoader)。自定義的ClassLoader首先找到加密的類,而後進行解密,最後將解密後的類裝載到JVM當中。在這種保護方式中,自定義的ClassLoader是非常關鍵的類。由於它本身不是被加密的,因此它可能成為黑客最先攻擊的目標。如果相關的解密密鑰和演算法被攻克,那麼被加密的類也很容易被解密。
3.轉換成本地代碼
將程序轉換成本地代碼也是一種防止反編譯的有效方法。因為本地代碼往往難以被反編譯。開發人員可以選擇將整個應用程序轉換成本地代碼,也可以選擇關鍵模塊轉換。如果僅僅轉換關鍵部分模塊,Java程序在使用這些模塊時,需要使用JNI技術進行調用。當然,在使用這種技術保護Java程序的同時,也犧牲了Java的跨平台特性。對於不同的平台,我們需要維護不同版本的本地代碼,這將加重軟體支持和維護的工作。不過對於一些關鍵的模塊,有時這種方案往往是必要的。為了保證這些本地代碼不被修改和替代,通常需要對這些代碼進行數字簽名。在使用這些本地代碼之前,往往需要對這些本地代碼進行認證,確保這些代碼沒有被黑客更改。如果簽名檢查通過,則調用相關JNI方法。
4.代碼混淆
代碼混淆是對Class文件進行重新組織和處理,使得處理後的代碼與處理前代碼完成相同的功能(語義)。但是混淆後的代碼很難被反編譯,即反編譯後得出的代碼是非常難懂、晦澀的,因此反編譯人員很難得出程序的真正語義。從理論上來說,黑客如果有足夠的時間,被混淆的代碼仍然可能被破解,甚至目前有些人正在研製反混淆的工具。但是從實際情況來看,由於混淆技術的多元化發展,混淆理論的成熟,經過混淆的Java代碼還是能夠很好地防止反編譯。下面我們會詳細介紹混淆技術,因為混淆是一種保護Java程序的重要技術。

Ⅱ 如何破解C語言編寫的軟體

c語言寫的程序很難反編譯、破解的,即使可以,也不可能得到源碼的。編譯的完成後已經轉化為機器語言了,不是完全可逆的過程
反匯編還是可以的。不過靜態反匯編之後看代碼不用指望能看得懂。
使用調試工具,比如:SoftICE和WinDBG
想要反編譯得到C代碼基本上已經是不可能的了。編譯之後,特別是優化之後,早就已經面目全非了,沒有辦法還原回去。

Ⅲ C#軟體如何良好的防止反編譯被破解

1. .NET這個技術其實是適合用來做互聯網軟體的,不適合用來開發單機軟體,所以其中一個思路就是把你的產品給互聯網化,引入伺服器參與。2. .NET也有將代碼轉換為本機代碼的辦法,.NET開發包里有個叫NGEN的工具,可以把中間代碼客戶端轉換成本機代碼客戶端,用轉換後的客戶端來進行發布,一方面可以增強運行的性能,另一方面也加大了破解的難度。

如果要從根本上解決你的問題,辦法就是不把所有代碼放到客戶機上,比如說大部分代碼放在雲上執行,讓用戶無從破解。

Ⅳ 如何使用安卓反編譯破解游戲

一、dexmp方法
dexmp是emulator自帶提供的查看dex文件的工具,可使用類似這樣的命令將dex文件mp到txt文件中:
D:/Program Files/android-sdk-windows-1.6_r1/platforms/android-1.6/tools>dexmp.exe -d classes.dex > spk.mp.txt
得到的文件內容,描述了類的信息,但實在是不好讀啊~~~~

二、dex2jar + XJad 方法

該方法是使用dex2jar.jar包,將classes.dex文件解包成jar,在通過XJad(或者其他class反編譯工具)進行java反編譯。如:
1、dex2jar.bat d:/play/classes.dex
默認的輸出路徑同classes.dex,生成的文件名為classes.dex.dex2jar.jar
2、使用XJad反編譯該jar包
之後的使用方法,大家都懂的:)

該方法的好處在於,通過XJad反編譯後,大家可直接開到java源文件,缺點在於只能反編譯出開發時的java文件,而開發時使用的lib包不能反編譯出來。

三、AXMLPrinter2.jar + baksmali.jar + smali.jar 方法

這個方法就強大了,AXMLPrinter2是還原AndroidManifest.xml和main.xml的工具,直接打開這兩個xml文件是亂碼,而通過還原之後,可以很明白的看到裡面的內容(我猜測還是使用了位元組異或的方式加的密)。
baksmali.jar是反解析dex的工具,smali.jar則是再還原成dex的工具
操作方式如下:

1、java -jar AXMLPrinter2.jar D:/play/AndroidManifest.xml > AndroidManifest.txt
2、java -jar AXMLPrinter2.jar D:/play/res/layout/main.xml > main.txt
3、java -jar baksmali-1.2.5.jar -o classout/ d:/play/classes.dex

Ⅳ 一個 編譯好的c語言.exe程序,如何破解看到源代碼

exe文件是二進制的了,而且在編譯的過程中編譯器也會進行優化,C語言好像沒有好的反編譯軟體,其他語言的反編譯軟體反編譯出來的也跟實際的代碼差別很大,幾乎不同,還有就是反匯編,不過這需要你對匯編語言比較了解。

Ⅵ android名詞解釋 破解和反編譯一樣嗎

android:是谷歌公司旗下的一種專注於移動端的系統
(手機、平板、智能手錶、智能電視之類的)

反編譯是一種破解手段
反編譯屬於破解,而破解的辦法不止反編譯

望採納

Ⅶ Android APP的破解技術有哪些如何防止反編譯

由於Android系統的開放性,導致Android
APK很容易被他人破解或是反編譯,下面給大家介紹常用的APP破解工具和技術要求。同時根據自己以往的防破解經驗,跟大家分析下如何防止反編譯。
Android
APK運行環境依賴的文件/文件夾
res、DEX、主配文件Lib
只是簡單的加密甚至沒有任何保護措施。APKtool(一種反編譯工具)可輕易將其輕松破解,再配合其他各種工具基本可以做到:源碼暴露(代碼混淆也幾乎起不到任何安全作用)、資源文件裸奔、主配文件可任意修改、核心SO庫暴露、暴力破解惡意利用等。部分大公司會對其應用APK包進行防二次打包和防APKtool破解,但其代碼都是寫在JAVA層,另外APKtool的可升級導致其安全保護級別也是非常低的。

Ⅷ 防止自己的APP被反編譯或破解,通常有哪些方法

混淆代碼:
Android APP的源碼進行混淆後混淆器將代碼中的所有變數、函數、類的名稱加密為簡短的英文字母代號,在APP被破解後增加破解者對代碼的閱讀難度。 但是混淆的功效只能運作在APP已經被破解後,而且只是增加破解者的難度時間,對其防止破解的作用意義不是很大。
防二次打包:
二次打包是指將APK拆包後重新打包,二次打包必將丟失原有的簽名。大多數的Android開發者都是將簽名信息作為認證標准,所以只要原有的簽名信息改變,APK就無法正常運行。但是如果將這個認證信息功能屏蔽掉,防二次打包就失效了!
我們先通過APK安全保護平台,對這款Android APK進行安全保護。
步驟如下:
登錄/注冊→上傳APK→等待系統加密→完成後下載APK→給APK簽名→完成!

注意:
在APK源代碼安全保護平台,個人信息要填寫完整,否則無法正常使用。APK加密完成後,系統會發出郵件通知加密完成。最後下載APK包再次完成簽名,就可以正常使用了!

Ⅸ 求助,PIC的C編譯器 破解方法

用PICC。PICC這個軟體已經被Microchip 收購了,你用的MPLAB8.5的安裝包里帶有PICC for PIC12/16 編譯器,可以編譯PIC12和PIC16系列單片機的C語言文件。安裝MPLAB8.5的時候注意把hi-PICC for PIC12/16選項勾上就行。裝完後在MPLAB軟體中建立項目的時候選擇HI-PICC即可

Ⅹ java語言編譯出來的class文件很容易被反編譯和破解,因此java語言其實並不是那麼安全的。對

所以有了「代碼混淆」。在編譯的時候將變數名、方法名、類名替換成無意義的字元串,添加無用代碼等,反編譯後也沒人看得懂代碼。

閱讀全文

與編譯和破解相關的資料

熱點內容
南京解壓車要帶什麼 瀏覽:562
天堂2編譯視頻教程 瀏覽:392
伺服器沒有進程怎麼辦 瀏覽:784
阿里雲發布新物種神龍雲伺服器 瀏覽:59
數據結構遞歸演算法統計二叉樹節點 瀏覽:666
ev3怎麼編程 瀏覽:702
gzip壓縮教程 瀏覽:349
解壓模擬例子 瀏覽:984
流媒體伺服器如何實現視頻轉發 瀏覽:57
linux字元串md5 瀏覽:302
支撐突破選股源碼怎麼設置 瀏覽:934
湖南戴爾伺服器維修雲主機 瀏覽:494
解壓到文件夾的視頻都自動隱藏了 瀏覽:569
閱讀器支持php 瀏覽:222
人生需求怎麼解壓 瀏覽:795
pdf列印機找不到 瀏覽:1001
如何同時使用兩個apache伺服器 瀏覽:723
國外php論壇 瀏覽:966
災難是命令 瀏覽:604
linux火狐瀏覽器安裝 瀏覽:71