[英][c#]How to specify /GS, options to c# application?
如您所知, / GS是Visual C ++編譯器或鏈接器選項。
我可以在C#編譯器或鏈接器中指定/ GS嗎?
這些標志在c#應用程序中是否默認啟用?
[編輯]:更改問題內容:
2a。 默認情況下,在c#應用程序中是否啟用了這些功能(通過Visual C ++中的這些編譯器選項)?
有沒有辦法找出使用這些標志構建的.exe / .dll文件?
提前致謝。
C#中不存在這些選項,因為C#生成托管代碼,而C ++生成本機代碼(機器語言代碼)。 托管代碼被稱為“可驗證的”,因為它比C / C ++進行更嚴格的檢查,並以C ++和本機代碼無法執行的方式強制執行類型安全。 (這些檢查與用C ++ / CLI編寫的托管代碼無關。)
這主要是由於本機代碼直接在硬件上運行,而托管代碼在.NET運行時(CLR)內運行。
請允許我一一討論
我猜您正在嘗試執行代碼審核/運行靜態分析工具,以確保遵循安全性/ SDL最佳實踐 。 如果您繼續閱讀...
有一個名為Binscope的工具,可用於檢查您的本機/ C ++二進制文件是使用/ GS,/ SafeSafeH,/ NXCOMPAT和/ DYNAMICBASE編譯的。 這些是C ++特定的選項,使攻擊者更難利用緩沖區溢出。 (Binscope還檢查其他一些內容)
Binscope在C#/托管二進制文件中唯一要檢查的是它們是否使用強名稱。 最接近C#的binscope的是FxCop ,它將詳細說明托管的.Net代碼中的一系列潛在問題。 為了安全起見,請修復FxCop產生的所有安全警告,並且您在旅途中。
/ analyze標志使Visual Studio對您的本機代碼進行靜態分析,並讓您知道它是否發現可疑的內容。 C#/。Net等效項是FxCop的安全性部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.