2013-03-24 103 views
0

我想阻止我的遊戲客戶端反編譯。 有沒有一個選項,我可以如何使用.htaccess或任何其他方法保護.jar文件,以便客戶端(瀏覽用戶,通過applet加載客戶端)將無法獲取文件&反編譯它。使用.htaccess保護.jar?

我總是想知道是否有解決方案,是嗎?也許創建一個crypt代碼,並且每當服務器嘗試獲取客戶端jar時,它將通過GET發送crypt代碼,如果crypt代碼匹配,它將從該頁面加載客戶端,我不知道,應該有一個辦法 ?

謝謝!

回答

1

對於瀏覽器執行applet,它需要下載包含applet代碼的jar文件。如果它下載它,它可用於反編譯。爲了防止這種情況發生,您可以混淆字節碼或根本不使用applet,只需使用傳統的Web應用程序,其中的代碼位於服務器端,客戶端只能看到HTML和JavaScript代碼。

+0

這怎麼可能?那麼用戶無法加載客戶端? – 2013-03-24 12:44:20

+0

* * *有哪些可能? – 2013-03-24 12:45:12

+0

可以混淆字節碼,或者不使用applet的一切,只需使用一個傳統的Web應用程序,其中的代碼是在服務器端,客戶端只能看到HTML和JavaScript代碼。 – 2013-03-24 12:45:28

0

不可以。您可以停止瀏覽器獲取文件,但它將無法運行它。

也許創造一個地穴代碼,每當服務器試圖獲取客戶端的jar,它會通過GET發送一個地穴的代碼,如果隱窩代碼匹配,它將從頁面加載客戶端,

用戶可以看到代碼並仍然獲取該文件。

0

還有沒有什麼你可以做,以防止用戶抓住未加密的字節碼。

什麼都沒有。

用戶的機器需要未加密形式的applet的字節碼才能執行它們。由於用戶(具有足夠的知識)完全控制了他的機器的功能,因此可以假定控制將擴展到允許他/她在解密的某個點處截取字節碼。

如果用戶可以攔截小程序的字節碼,那麼他/她可以更改他們擊敗您放入代碼的任何聰明的東西。這包括更改字節碼以打敗您用來檢測字節碼更改的任何措施。

「只是讓它,所以他們必須在瀏覽器中使用它,然後檢查他們是否從我們的URL訪問它」可以工作嗎?

沒有。用戶可以修改該小程序以刪除該檢查。

「你也可以讓PHP創建一個會話變量在哈希和檢查,如果是哈存在,我們的散列算法匹配」

都能跟得上。用戶可以修改該小程序以刪除該檢查。

我不知道,應該有解決方案嗎?

不幸的是,除了運行需要在服務器端保護的所有東西之外,沒有可行的解決方案。

順便說一句,這個問題是不是唯一到Java。具有技術知識和動機的人可以在Javascript中打敗任何篡改保護措施,甚至可以在用戶安裝的本地代碼插件(如果他足夠愚蠢)中打敗任何篡改保護措施。

+0

如何運行所有服務器端,然後通過JavaScript,HTML加載客戶端? 會爲用戶提供'LAG'嗎? – 2013-03-24 13:00:29

+0

這取決於應用程序。但是,可能答案是肯定的,用戶會遇到「滯後」。 – 2013-03-24 13:02:12