2011-10-21 58 views
1

或者以另一種方式理解如何在VB.NET中繞過Windows的防火牆?如何使應用程序可信?

+0

你已經做了什麼樣的研究?谷歌發現了什麼? – Framester

+1

繞過任何防火牆聽起來不太安全。你爲什麼需要?你只是想讓你的程序提示用戶允許?你只是想實際添加一個規則? – Jamie

回答

1

我發現本指南通過託管代碼訪問Windows防火牆API。這將允許你自動打開和關閉你的程序,這是你在找什麼?

http://blogs.msdn.com/b/securitytools/archive/2009/08/21/automating-windows-firewall-settings-with-c.aspx

它明確給出了這樣的例子,添加程序到受信任程序列表。

INetFwAuthorizedApplications applications; 
INetFwAuthorizedApplication application; 
application.Name = 「Internet Explorer」;/*set the name of the application */ 
application.ProcessImageFileName = "C:\\Program Files\\Internet Explorer\\iexplore.exe" /* set this property to the location of the executable file of the application*/ 
application.Enabled = true; //enable it 
/*now add this application to AuthorizedApplications collection */ 
Type NetFwMgrType = Type.GetTypeFromProgID("HNetCfg.FwMgr", false); 
INetFwMgr mgr = (INetFwMgr)Activator.CreateInstance(NetFwMgrType); 
applications = (INetFwAuthorizedApplications)mgr.LocalPolicy.CurrentProfile.AuthorizedApplications; 
applications.Add(application); 

編輯基於基於評論它看起來像你真的想看看評論 是代碼簽名。 http://en.wikipedia.org/wiki/Code_signing

這通常意味着購買證書(有點像SSL)並將其應用到您編譯的應用程序。這與.NET的簽名並不相同,這是賦予程序集一個強名的一部分,它有些不同。

+0

不,我的意思是,當您在另一臺計算機上啓動該程序時,防火牆會阻止該程序,並表示您正在從未經授權的發佈程序啓動程序,您確定要這樣做,然後單擊是或否 – Dimitar

+0

我已更新根據您的評論回答。 –

相關問題