朋友很久以前給我說(shuō)過(guò)反編譯的問(wèn)題,當(dāng)時(shí)沒(méi)有在意,總以為C++沒(méi)啥問(wèn)題,C#應(yīng)該不會(huì)差吧。
昨天朋友再次提到這個(gè)問(wèn)題,我覺(jué)得似乎有些嚴(yán)重,剛剛上網(wǎng)搜了一下,簡(jiǎn)直令我萬(wàn)分震驚。我的天,這是如今的軟件業(yè)嗎,C#寫(xiě)的程序就這樣輕易被搞定了嗎,隨便下一軟件,打開(kāi)自己的exe,代碼便順利反編譯出來(lái),一模一樣,基本上沒(méi)任何差別,而且還可以直接轉(zhuǎn)換為其它語(yǔ)言。
原本對(duì)C#了解不多,于是抓緊時(shí)間search了一把,也沒(méi)啥,僅僅是中間語(yǔ)言,可以很便捷地被反編譯,盡管微軟也提供了一些混淆的機(jī)制來(lái)防止反編譯,但似乎不怎么管用而且會(huì)很大程度上折磨開(kāi)發(fā)人員的激情,因?yàn)樽兞款?lèi)等名稱(chēng)被改的面目全非,public的變量還不能加入混淆的行列,否則,自己寫(xiě)的dll自己也無(wú)法調(diào)用,每次都如此,我如何調(diào)試如何打包,這又會(huì)徒增多少工作量...
我不知道微軟發(fā)布這類(lèi)產(chǎn)品的初衷是什么,盡管方便快捷,盡管見(jiàn)效快,但是黑道中人見(jiàn)效更快,而且甚至優(yōu)化和完善后比原作者做的還要好上很多很多。而且,微軟提供的工具也非常不適用,市面有比較好的工具但又都是付錢(qián)的,這又得徒增開(kāi)發(fā)投入,看來(lái),我真的找不出C#這類(lèi)軟件存在的必要了,至少對(duì)于企業(yè)用戶(hù)來(lái)講。當(dāng)然我可以買(mǎi)加密的,可以自行寫(xiě)加密進(jìn)一步保護(hù),而且目前基本上所有的軟件都得進(jìn)一步通過(guò)加密狗加密,但像C#這類(lèi)語(yǔ)言被反編譯的如此徹底,我還絕對(duì)沒(méi)有想到。如果真正如此泛濫的時(shí)候,我不知道這世界還能怎么運(yùn)作,版權(quán)、發(fā)明、創(chuàng)新等等都是扯淡。