2010-09-26 75 views
1

可能重複:
Jar executable that cannot be decompiled「undecompilable」 源代碼

我怎樣才能讓 「undecompilable」 源java嗎?我有一個microedition應用程序,有我需要隱藏的代碼 這可能嗎?

在此先感謝

+5

此問題已被許多僞裝問過*許多次。答案是1)使用混淆器,2)即使這樣也不會阻止確定的逆向工程師。 – 2010-09-26 09:39:50

+0

斯蒂芬C是對的。下面是一個關於這個主題的有趣的書,在交叉引用的問題中沒有引用:http://apress.com/book/view/9781590592656 – gkrogers 2010-09-26 21:06:30

+0

嘗試[Proguard](http://proguard.sourceforge.net/) )。 – Mot 2010-09-26 08:16:53

回答

0

你可以試試混淆,但是無論如何,沒有人會想要偷你的醬汁代碼,所以我想這更多是爲了安心。當涉及到它時,一切都可以在一定程度上分解,否則操作系統將無法運行任何程序!

+0

咦?我沒有得到關於操作系統的部分...... – Mchl 2010-09-26 08:25:59

+1

如果操作系統可以將可執行文件中的數據轉換爲處理器指令,那麼可以將其轉換爲程序集,至少在理論上可以將其轉換爲已知的任何編程語言男人,甚至LOLCODE。 – 2010-09-26 08:40:02

+1

@Mchl:即使是二進制機器代碼也有一定意義,因此可以用一些難度翻譯成更高級的表示形式 – IanGilham 2010-09-26 08:40:19

1

總之。您可以對代碼進行混淆處理,以避免某人閱讀並重復使用代碼。如果這是你想要的,它也可能使人們很難看到它的功能。但並非不可能。

-3

如果你真的想要你的用戶,你知道,使用該程序,他們需要能夠運行該程序。爲了能夠運行程序,CPU必須能夠瞭解該程序。 CPU比人類更愚蠢,所以這意味着人類也可以理解程序。

如果以人爲無法理解的方式混淆程序,這也意味着它不能被執行。

如果你不想讓人們訪問你的代碼,只有一個辦法:不要給他們。把它放在服務器上,讓你的用戶通過網絡連接到它。

但是,所有這些都是完全不必要的,因爲無論如何,您的代碼都會受版權法自動保護,這比任何模糊處理都要強大得多。

+1

代碼是在手機裏面,我沒有把它隱藏起來 – iberck 2010-09-26 16:09:19

+0

örg那麼,你寫的只是理論上的真實,甚至如此,只是在一個非常普遍的層面上。當然,有些方法可能會以「人類無法理解的方式混淆你的程序」,但要保持它的工作。雖然也許不是在這個特定的技術背景下。 – bzlm 2010-09-26 16:24:59