這段時間做了個c#的專案,因為要用商業,必須要防反編譯,到網上查了很多資料,加殼、混淆、加密、都試了,都不行,網上都有相應的腿殼、反混淆、解密方案,自己寫的代碼又被自己輕輕松松的反編譯出來,只有很少的錯誤,稍作調整又是一套完整的程式 頓時一臉蒙逼,到網上查了很久發現如果想c++編譯成機器碼應該是可以防反編譯的,別人反編譯出來的也是匯編代碼,這樣別人在想還原c#原始碼就難了,他有那么長時間還原還不如自己寫原始碼來的快。這就達到了防止反編譯的目的。不知道哪位大神能給小弟指點c#.net怎么編譯成機器碼???????
uj5u.com熱心網友回復:
混淆加殼,比如用vb加殼之類的uj5u.com熱心網友回復:
用c++改寫你的程式,都比什么C#編譯成機器碼容易uj5u.com熱心網友回復:
加殼混淆倒是沒問題,就是混淆后錯誤行號反饋不出來啊,有些加殼后還不穩定,哎,Net這個真是讓人蛋疼,不知道大家遇到過沒,我好幾個混淆后的總遇到莫明其妙的問題uj5u.com熱心網友回復:
加殼混淆吧,如果他們還能反編譯過來,說明你的軟體具有反編譯的價值,你擋都擋不住。uj5u.com熱心網友回復:
真正的防盜版基本都是聯網的uj5u.com熱心網友回復:
我們做專案,都提供給人家99.9%的源代碼的。uj5u.com熱心網友回復:
比如說你賣給別人一輛汽車,你看到別人能拆汽車是不是也“蒙蔽”呢?那說明你不是搞汽車的。如果市場上見到了類似款汽車,哪怕是部件外觀類似,正常的想法是“去法院告死他”,而不是把自己的汽車給毀成垃圾鐵釘。uj5u.com熱心網友回復:
比如說你賣別人汽車發動機,別人拆了卻看不懂,這才是發動機工程師要做的事情。軟體也是一樣,你不會采用高級的語法糖來撰寫軟體,也不會用高級的自己設計的模式來裝入軟體邏輯,而只會最簡單最低級的——費體力的——語法來撰寫軟體,這樣你們的軟體反編譯跟源代碼一樣。uj5u.com熱心網友回復:
加殼混淆,聯網認證,定期更換電子簽名uj5u.com熱心網友回復:
不做混淆,如樓主你自己說的,以前我也用過好多種,幾乎都被當成病毒---包括微軟的windows defender直接把程式當病毒給殺了……做聯網認證,只能這樣好一點……其實就是https還是可以偽造的,只能說好一點。。
uj5u.com熱心網友回復:
tmd或者vmp加殼uj5u.com熱心網友回復:
等微軟出編譯器uj5u.com熱心網友回復:
微軟都拿到很頭痛的uj5u.com熱心網友回復:
核心代碼申請專利,誰用就告他uj5u.com熱心網友回復:
到哪都有你,回答是牛頭不對馬嘴。。。道理誰都懂,咱們能不能聊點對某方面的技術的探討?不是你這么水帖的呀~~
uj5u.com熱心網友回復:
保證.NET程式的安全,我的做法是直接加密整個.NET程式檔案,可行的方法目前是有幾種的:1.用C++來解密.NET程式,然后呼叫.NET Runtime來運行解密后的程式檔案。(.NET是可以直接從記憶體中加載程式集運行的)
2.將程式作為資源進行加密,寫一個啟動程式,先解密出來再通過mono虛擬機承載.NET的運行。
3.現在.NET Core運行時是開源的,可以用C++加載Core運行時去承載.NET程式運行,當然也可以加密.NET程式檔案,這樣更安全。
uj5u.com熱心網友回復:
絕大多數的源代碼都沒有反編譯去研究的價值,你想多了。uj5u.com熱心網友回復:
其實這年頭了,也沒必要搞什么代碼加密。很多軟體都是服務端一套,客戶端/前端一套的分離式設計。比如服務端只公開個API,不用管客戶端/前端是什么都通殺,核心業務邏輯寫在服務端。好比服務端是個插座,什么樣的插頭隨便插,只要你遵守插座的定義就好了。
發布在公網的服務端上的代碼,除非有內鬼,不然別人也是拿不到的。還有,如果是給別人做的專案而非自己的產品,客戶肯定找你要原始碼的,你也不可能不給。
當然了,如果你只是做一些單機運行的,那就另當別論啦,目前來看,其實這種不是很多。
uj5u.com熱心網友回復:
任何可加密的東西都有可能被解密,只是難易程度不同而已。越是常見的加殼、混淆工具,嘗試做反編譯的人就越多,就越有可能被破解。反之不那么出名的工具,搞的人就很少。可從商業軟體入手,不要使用開源、免費的工具。轉載請註明出處,本文鏈接:https://www.uj5u.com/net/126027.html
標籤:C#
上一篇:急需幫助!vb.net 如何呼叫非托管dll,哪位大佬幫忙解決下,萬分感謝!!!
下一篇:fromdata上傳圖片到api
