Bug 1090535 - Add Windows Firewall whitelist entry. r=bbondy

This commit is contained in:
Robert Strong 2014-12-26 13:57:33 -08:00
Родитель f632c8537d
Коммит df7a49651e
15 изменённых файлов: 1245 добавлений и 0 удалений

Просмотреть файл

@ -589,6 +589,9 @@ Section "-Application" APP_IDX
${EndUnless}
${EndIf}
; Add the Firewall entries during install
Call AddFirewallEntries
!ifdef MOZ_MAINTENANCE_SERVICE
${If} $TmpVal == "HKLM"
; Add the registry keys for allowed certificates.

Просмотреть файл

@ -115,6 +115,9 @@ FunctionEnd
; Win7 taskbar and start menu link maintenance
Call FixShortcutAppModelIDs
; Add the Firewall entries after an update
Call AddFirewallEntries
; Only update the Clients\StartMenuInternet registry key values in HKLM if
; they don't exist or this installation is the same as the one set in those
; keys.
@ -1616,6 +1619,10 @@ Function FixShortcutAppModelIDs
${EndIf}
FunctionEnd
Function AddFirewallEntries
liteFirewallW::AddRule "$INSTDIR\${FileMainEXE}" "${BrandShortName} ($INSTDIR)"
FunctionEnd
; The !ifdef NO_LOG prevents warnings when compiling the installer.nsi due to
; this function only being used by the uninstaller.nsi.
!ifdef NO_LOG

Просмотреть файл

@ -464,6 +464,8 @@ Section "Uninstall"
${EndIf}
${EndIf}
liteFirewallW::RemoveRule "$INSTDIR\${FileMainEXE}" "${BrandShortName} ($INSTDIR)"
; Refresh desktop icons otherwise the start menu internet item won't be
; removed and other ugly things will happen like recreation of the app's
; clients registry key by the OS under some conditions.

Просмотреть файл

@ -0,0 +1,17 @@
liteFirewall is based on nsisFirewall.
nsisFirewall -- Small NSIS plugin for simple tasks with Windows Firewall
Web site: http://wiz0u.free.fr/prog/nsisFirewall
Copyright (c) 2007-2009 Olivier Marcoux
This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.

Просмотреть файл

@ -0,0 +1,39 @@
liteFirewall 1.0 -- based on nsisFirewall 1.2
http://liangsun.info/portfolio/nsis-plugin-litefirewall/
http://nsis.sourceforge.net/LiteFirewall_Plugin
---------------------------------------------------------
liteFirewall resolved the issue nsisFirewall exists on Vista/Windows 7 platforms.
It support the profiles (private, domain, public) of firewall rules.
It support Unicode NSIS, while another firewall plugin SimpleFC not.
------------------------------------------------------------
Usage
----------------------------------------------------------
liteFirewall::AddRule "<application path>" "<rule name>"
liteFirewall::RemoveRule "<application path>" "<rule name>"
<application path> is the full path to the application you want to be authorized to
access the network (or accept incoming connections)
<rule name> is the title that will be given to this exception entry in the firewall
control panel list
Notes
-----
1) Your installer must be run with administrator rights for liteFirewall to work
2) When compiling with more recent compiler than VC60, you need to choose the compilation
option to use static MFC library.
Sample scripts
--------------
; Add NOTEPAD to the authorized list
liteFirewall::AddRule "$WINDIR\Notepad.exe" "liteFirewall Test"
Pop $0
; Remove NOTEPAD from the authorized list
liteFirewall::RemoveRule "$WINDIR\Notepad.exe" "liteFirewall Test"
Pop $0

Просмотреть файл

@ -0,0 +1,25 @@
; liteFirewall - Sample script
!ifdef TARGETDIR
!addplugindir "${TARGETDIR}"
!else
!addplugindir "..\bin"
!endif
Name "Sample liteFirewall"
OutFile "Sample.exe"
ShowInstDetails show
Section "Main program"
; Add NOTEPAD to the authorized list
liteFirewallW::AddRule "$WINDIR\Notepad.exe" "liteFirewall Test"
Pop $0
Exec "rundll32.exe shell32.dll,Control_RunDLL firewall.cpl"
MessageBox MB_OK "Program added to Firewall exception list.$\r$\n(close the control panel before clicking OK)"
; Remove NOTEPAD from the authorized list
liteFirewallW::RemoveRule "$WINDIR\Notepad.exe" "liteFirewall Test"
Pop $0
Exec "rundll32.exe shell32.dll,Control_RunDLL firewall.cpl"
MessageBox MB_OK "Program removed to Firewall exception list"
SectionEnd

Просмотреть файл

@ -0,0 +1,97 @@
#ifndef _EXDLL_H_
#define _EXDLL_H_
// only include this file from one place in your DLL.
// (it is all static, if you use it in two places it will fail)
#define EXDLL_INIT() { \
g_stringsize=string_size; \
g_stacktop=stacktop; \
g_variables=variables; }
// For page showing plug-ins
#define WM_NOTIFY_OUTER_NEXT (WM_USER+0x8)
#define WM_NOTIFY_CUSTOM_READY (WM_USER+0xd)
#define NOTIFY_BYE_BYE 'x'
typedef struct _stack_t {
struct _stack_t *next;
TCHAR text[1]; // this should be the length of string_size
} stack_t;
static unsigned int g_stringsize;
static stack_t **g_stacktop;
static TCHAR *g_variables;
static int __stdcall popstring(TCHAR *str); // 0 on success, 1 on empty stack
static void __stdcall pushstring(const TCHAR *str);
enum
{
INST_0, // $0
INST_1, // $1
INST_2, // $2
INST_3, // $3
INST_4, // $4
INST_5, // $5
INST_6, // $6
INST_7, // $7
INST_8, // $8
INST_9, // $9
INST_R0, // $R0
INST_R1, // $R1
INST_R2, // $R2
INST_R3, // $R3
INST_R4, // $R4
INST_R5, // $R5
INST_R6, // $R6
INST_R7, // $R7
INST_R8, // $R8
INST_R9, // $R9
INST_CMDLINE, // $CMDLINE
INST_INSTDIR, // $INSTDIR
INST_OUTDIR, // $OUTDIR
INST_EXEDIR, // $EXEDIR
INST_LANG, // $LANGUAGE
__INST_LAST
};
// utility functions (not required but often useful)
static int __stdcall popstring(TCHAR *str)
{
stack_t *th;
if (!g_stacktop || !*g_stacktop) return 1;
th=(*g_stacktop);
lstrcpy(str,th->text);
*g_stacktop = th->next;
GlobalFree((HGLOBAL)th);
return 0;
}
static void __stdcall pushstring(const TCHAR *str)
{
stack_t *th;
if (!g_stacktop) return;
th=(stack_t*)GlobalAlloc(GPTR,sizeof(stack_t)+g_stringsize*sizeof(TCHAR));
lstrcpyn(th->text,str,g_stringsize);
th->next=*g_stacktop;
*g_stacktop=th;
}
static TCHAR * __stdcall getuservariable(int varnum)
{
if (varnum < 0 || varnum >= __INST_LAST) return NULL;
return g_variables+varnum*g_stringsize;
}
static void __stdcall setuservariable(int varnum, const TCHAR *var)
{
if (var != NULL && varnum >= 0 && varnum < __INST_LAST)
lstrcpy(g_variables + varnum*g_stringsize, var);
}
#endif//_EXDLL_H_

Просмотреть файл

@ -0,0 +1,408 @@
/*
liteFirewall is based on nsisFirewall.
Modified by Liang Sun on 19, July, 2011
http://liangsun.info/portfolio/nsis-plugin-litefirewall/
http://nsis.sourceforge.net/LiteFirewall_Plugin
http://www.msnlite.org
*/
/*
nsisFirewall -- Small NSIS plugin for simple tasks with Windows Firewall
Web site: http://wiz0u.free.fr/prog/nsisFirewall
Copyright (c) 2007-2009 Olivier Marcoux
This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
*/
#include <windows.h>
#include <tchar.h>
#include <shlwapi.h>
//#include <stdio.h>
#ifdef NSIS
#include "exdll.h"
#endif
//#import "libid:58FBCF7C-E7A9-467C-80B3-FC65E8FCCA08"
#import "netfw.tlb"
#include <netfw.h>
using namespace NetFwTypeLib;
#pragma comment( lib, "ole32.lib" )
#pragma comment( lib, "oleaut32.lib" )
// Forward declarations
#ifdef NSIS
HINSTANCE g_hInstance;
#endif
HRESULT WFCOMInitialize(INetFwPolicy2** ppNetFwPolicy2);
HRESULT AddRule(LPCTSTR ExceptionName, LPCTSTR ProcessPath)
{
HRESULT result = CoInitialize(NULL);
if (FAILED(result))
return result;
result = REGDB_E_CLASSNOTREG;
HRESULT hrComInit = S_OK;
HRESULT hr = S_OK;
INetFwPolicy2 *pNetFwPolicy2 = NULL;
INetFwRules *pFwRules = NULL;
INetFwRule *pFwRule = NULL;
/* Start Mozilla modification */
INetFwRule *pFwRuleExisting = NULL;
// long CurrentProfilesBitMask = 0;
/* End Mozilla modification */
BSTR bstrRuleName = SysAllocString(ExceptionName);
BSTR bstrApplicationName = SysAllocString(ProcessPath);
BSTR bstrRuleInterfaceType = SysAllocString(L"All");
// Initialize COM.
hrComInit = CoInitializeEx(
0,
COINIT_APARTMENTTHREADED
);
// Ignore RPC_E_CHANGED_MODE; this just means that COM has already been
// initialized with a different mode. Since we don't care what the mode is,
// we'll just use the existing mode.
if (hrComInit != RPC_E_CHANGED_MODE)
{
if (FAILED(hrComInit))
{
printf("CoInitializeEx failed: 0x%08lx\n", hrComInit);
goto Cleanup;
}
}
// Retrieve INetFwPolicy2
hr = WFCOMInitialize(&pNetFwPolicy2);
if (FAILED(hr))
{
try
{
INetFwMgrPtr fwMgr(L"HNetCfg.FwMgr");
if (fwMgr)
{
INetFwAuthorizedApplicationPtr app(L"HNetCfg.FwAuthorizedApplication");
if (app)
{
app->ProcessImageFileName = ProcessPath;
app->Name = ExceptionName;
app->Scope = NetFwTypeLib::NET_FW_SCOPE_ALL;
app->IpVersion = NetFwTypeLib::NET_FW_IP_VERSION_ANY;
app->Enabled = VARIANT_TRUE;
fwMgr->LocalPolicy->CurrentProfile->AuthorizedApplications->Add(app);
}
}
}
catch (_com_error& e)
{
printf("%s", e.Error());
}
goto Cleanup;
}
// Retrieve INetFwRules
hr = pNetFwPolicy2->get_Rules(&pFwRules);
if (FAILED(hr))
{
printf("get_Rules failed: 0x%08lx\n", hr);
goto Cleanup;
}
/* Start Mozilla modification */
// Don't add a new rule if there is an existing rule with the same name.
hr = pFwRules->Item(bstrRuleName, &pFwRuleExisting);
// Release the INetFwRule object
if (pFwRuleExisting != NULL)
{
pFwRuleExisting->Release();
}
if (SUCCEEDED(hr))
{
printf("Firewall profile already exists\n");
goto Cleanup;
}
// Retrieve Current Profiles bitmask
// hr = pNetFwPolicy2->get_CurrentProfileTypes(&CurrentProfilesBitMask);
// if (FAILED(hr))
// {
// printf("get_CurrentProfileTypes failed: 0x%08lx\n", hr);
// goto Cleanup;
// }
// When possible we avoid adding firewall rules to the \ profile.
// If Public is currently active and it is not the only active profile, we remove it from the bitmask
// if ((CurrentProfilesBitMask & NET_FW_PROFILE2_PUBLIC) &&
// (CurrentProfilesBitMask != NET_FW_PROFILE2_PUBLIC))
// {
// CurrentProfilesBitMask ^= NET_FW_PROFILE2_PUBLIC;
// }
// Create a new Firewall Rule object.
hr = CoCreateInstance(
__uuidof(NetFwRule),
NULL,
CLSCTX_INPROC_SERVER,
__uuidof(INetFwRule),
(void**)&pFwRule);
if (FAILED(hr))
{
printf("CoCreateInstance for Firewall Rule failed: 0x%08lx\n", hr);
goto Cleanup;
}
// Populate the Firewall Rule object
pFwRule->put_Name(bstrRuleName);
pFwRule->put_Protocol(NetFwTypeLib::NET_FW_IP_PROTOCOL_TCP);
pFwRule->put_InterfaceTypes(bstrRuleInterfaceType);
pFwRule->put_Profiles(NET_FW_PROFILE2_PRIVATE);
pFwRule->put_Action(NET_FW_ACTION_ALLOW);
pFwRule->put_Enabled(VARIANT_TRUE);
pFwRule->put_ApplicationName(bstrApplicationName);
// Add the Firewall Rule
hr = pFwRules->Add(pFwRule);
if (FAILED(hr))
{
printf("Firewall Rule Add failed: 0x%08lx\n", hr);
goto Cleanup;
}
pFwRule->Release();
/* End Mozilla modification */
// Create a new Firewall Rule object.
hr = CoCreateInstance(
__uuidof(NetFwRule),
NULL,
CLSCTX_INPROC_SERVER,
__uuidof(INetFwRule),
(void**)&pFwRule);
if (FAILED(hr))
{
printf("CoCreateInstance for Firewall Rule failed: 0x%08lx\n", hr);
goto Cleanup;
}
// Populate the Firewall Rule object
pFwRule->put_Name(bstrRuleName);
/* Start Mozilla modification */
// pFwRule->put_Protocol(NET_FW_IP_PROTOCOL_ANY);
pFwRule->put_Protocol(NetFwTypeLib::NET_FW_IP_PROTOCOL_UDP);
/* End Mozilla modification */
pFwRule->put_InterfaceTypes(bstrRuleInterfaceType);
/* Start Mozilla modification */
// pFwRule->put_Profiles(CurrentProfilesBitMask);
pFwRule->put_Profiles(NET_FW_PROFILE2_PRIVATE);
/* End Mozilla modification */
pFwRule->put_Action(NET_FW_ACTION_ALLOW);
pFwRule->put_Enabled(VARIANT_TRUE);
pFwRule->put_ApplicationName(bstrApplicationName);
// Add the Firewall Rule
hr = pFwRules->Add(pFwRule);
if (FAILED(hr))
{
printf("Firewall Rule Add failed: 0x%08lx\n", hr);
goto Cleanup;
}
Cleanup:
// Free BSTR's
SysFreeString(bstrRuleName);
SysFreeString(bstrApplicationName);
SysFreeString(bstrRuleInterfaceType);
// Release the INetFwRule object
if (pFwRule != NULL)
{
pFwRule->Release();
}
// Release the INetFwRules object
if (pFwRules != NULL)
{
pFwRules->Release();
}
// Release the INetFwPolicy2 object
if (pNetFwPolicy2 != NULL)
{
pNetFwPolicy2->Release();
}
CoUninitialize();
return 0;
}
HRESULT RemoveRule(LPCTSTR ExceptionName, LPCTSTR ProcessPath)
{
HRESULT result = CoInitialize(NULL);
if (FAILED(result))
return result;
try
{
INetFwMgrPtr fwMgr(L"HNetCfg.FwMgr");
if (fwMgr)
{
fwMgr->LocalPolicy->CurrentProfile->AuthorizedApplications->Remove(ProcessPath);
result = S_OK;
}
}
catch (_com_error& e)
{
e;
}
HRESULT hrComInit = S_OK;
HRESULT hr = S_OK;
INetFwPolicy2 *pNetFwPolicy2 = NULL;
INetFwRules *pFwRules = NULL;
/* Start Mozilla modification */
// long CurrentProfilesBitMask = 0;
/* End Mozilla modification */
BSTR bstrRuleName = SysAllocString(ExceptionName);
// Retrieve INetFwPolicy2
hr = WFCOMInitialize(&pNetFwPolicy2);
if (FAILED(hr))
{
goto Cleanup;
}
// Retrieve INetFwRules
hr = pNetFwPolicy2->get_Rules(&pFwRules);
if (FAILED(hr))
{
printf("get_Rules failed: 0x%08lx\n", hr);
goto Cleanup;
}
/* Start Mozilla modification */
// Retrieve Current Profiles bitmask
// hr = pNetFwPolicy2->get_CurrentProfileTypes(&CurrentProfilesBitMask);
// if (FAILED(hr))
// {
// printf("get_CurrentProfileTypes failed: 0x%08lx\n", hr);
// goto Cleanup;
// }
// When possible we avoid adding firewall rules to the Public profile.
// If Public is currently active and it is not the only active profile, we remove it from the bitmask
// if ((CurrentProfilesBitMask & NET_FW_PROFILE2_PUBLIC) &&
// (CurrentProfilesBitMask != NET_FW_PROFILE2_PUBLIC))
// {
// CurrentProfilesBitMask ^= NET_FW_PROFILE2_PUBLIC;
// }
/* End Mozilla modification */
// Remove the Firewall Rule
hr = pFwRules->Remove(bstrRuleName);
if (FAILED(hr))
{
printf("Firewall Rule Remove failed: 0x%08lx\n", hr);
goto Cleanup;
}
Cleanup:
// Free BSTR's
SysFreeString(bstrRuleName);
// Release the INetFwRules object
if (pFwRules != NULL)
{
pFwRules->Release();
}
// Release the INetFwPolicy2 object
if (pNetFwPolicy2 != NULL)
{
pNetFwPolicy2->Release();
}
CoUninitialize();
return 0;
}
#ifdef NSIS
extern "C" void __declspec(dllexport) AddRule(HWND hwndParent, int string_size,
TCHAR *variables, stack_t **stacktop)
{
EXDLL_INIT();
TCHAR ExceptionName[256], ProcessPath[MAX_PATH];
popstring(ProcessPath);
popstring(ExceptionName);
HRESULT result = AddRule(ExceptionName, ProcessPath);
// push the result back to NSIS
TCHAR intBuffer[16];
wsprintf(intBuffer, _T("%d"), result);
pushstring(intBuffer);
}
extern "C" void __declspec(dllexport) RemoveRule(HWND hwndParent, int string_size,
TCHAR *variables, stack_t **stacktop)
{
EXDLL_INIT();
TCHAR ExceptionName[256], ProcessPath[MAX_PATH];
popstring(ProcessPath);
popstring(ExceptionName);
HRESULT result = RemoveRule(ExceptionName, ProcessPath);
// push the result back to NSIS
TCHAR intBuffer[16];
wsprintf(intBuffer, _T("%d"), result);
pushstring(intBuffer);
}
extern "C" BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD, LPVOID)
{
g_hInstance = hInstance;
return TRUE;
}
#endif
// Instantiate INetFwPolicy2
HRESULT WFCOMInitialize(INetFwPolicy2** ppNetFwPolicy2)
{
HRESULT hr = S_OK;
hr = CoCreateInstance(
__uuidof(NetFwPolicy2),
NULL,
CLSCTX_INPROC_SERVER,
__uuidof(INetFwPolicy2),
(void**)ppNetFwPolicy2);
if (FAILED(hr))
{
printf("CoCreateInstance for INetFwPolicy2 failed: 0x%08lx\n", hr);
goto Cleanup;
}
Cleanup:
return hr;
}

Просмотреть файл

@ -0,0 +1,204 @@
# Microsoft Developer Studio Project File - Name="liteFirewall" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=liteFirewall - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "liteFirewall.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "liteFirewall.mak" CFG="liteFirewall - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "liteFirewall - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "liteFirewall - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "liteFirewall - Win32 Release UNICODE" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "liteFirewall - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MD /W3 /GX /Zi /O1 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GX /Zi /O1 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "NSIS" /FR /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 kernel32.lib user32.lib shlwapi.lib /nologo /dll /machine:I386 /out:"../bin/liteFirewall.dll" /OPT:REF /OPT:NOWIN98
# SUBTRACT LINK32 /pdb:none /debug /nodefaultlib
# Begin Special Build Tool
IntDir=.\Release
ProjDir=.
TargetDir=\Prog\shared\bin
SOURCE="$(InputPath)"
PostBuild_Desc=Building Sample Installer...
PostBuild_Cmds="%ProgramFiles%\NSIS\makensis" /V2 "/DTARGETDIR=$(TargetDir)" "/DINTDIR=$(IntDir)" "$(ProjDir)\Sample.nsi"
# End Special Build Tool
!ELSEIF "$(CFG)" == "liteFirewall - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_UNICODE" /D "UNICODE" /D "NSIS" /FR /YX /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib user32.lib shlwapi.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# SUBTRACT LINK32 /nodefaultlib
# Begin Special Build Tool
IntDir=.\Debug
ProjDir=.
TargetDir=.\Debug
SOURCE="$(InputPath)"
PostBuild_Desc=Building Sample Installer...
PostBuild_Cmds="%ProgramFiles%\NSIS\makensis" /V4 /DTARGETDIR=$(TargetDir) /DINTDIR=$(IntDir) $(ProjDir)\Sample.nsi
# End Special Build Tool
!ELSEIF "$(CFG)" == "liteFirewall - Win32 Release UNICODE"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release_UNICODE"
# PROP BASE Intermediate_Dir "Release_UNICODE"
# PROP BASE Ignore_Export_Lib 0
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release_UNICODE"
# PROP Intermediate_Dir "Release_UNICODE"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MD /W3 /GX /Zi /O1 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "NSIS" /FR /YX /FD /c
# ADD CPP /nologo /MD /W3 /GX /Zi /O1 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_UNICODE" /D "UNICODE" /D "NSIS" /FR /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib shlwapi.lib /nologo /dll /machine:I386 /out:"../bin/liteFirewall.dll" /OPT:REF /OPT:NOWIN98
# SUBTRACT BASE LINK32 /pdb:none /debug /nodefaultlib
# ADD LINK32 kernel32.lib user32.lib shlwapi.lib /nologo /dll /machine:I386 /out:"../bin/liteFirewallW.dll" /OPT:REF /OPT:NOWIN98
# SUBTRACT LINK32 /pdb:none /debug /nodefaultlib
# Begin Special Build Tool
IntDir=.\Release_UNICODE
ProjDir=.
TargetDir=\Prog\shared\bin
SOURCE="$(InputPath)"
PostBuild_Desc=Building Sample Installer...
PostBuild_Cmds="%ProgramFiles%\NSIS\makensis" /V2 "/DTARGETDIR=$(TargetDir)" "/DINTDIR=$(IntDir)" "$(ProjDir)\Sample.nsi"
# End Special Build Tool
!ENDIF
# Begin Target
# Name "liteFirewall - Win32 Release"
# Name "liteFirewall - Win32 Debug"
# Name "liteFirewall - Win32 Release UNICODE"
# Begin Source File
SOURCE=.\exdll.h
# End Source File
# Begin Source File
SOURCE=.\License.txt
# End Source File
# Begin Source File
SOURCE=.\liteFirewall.cpp
# End Source File
# Begin Source File
SOURCE=.\ReadMe.txt
# End Source File
# Begin Source File
SOURCE=.\Sample.nsi
!IF "$(CFG)" == "liteFirewall - Win32 Release"
# Begin Custom Build
ProjDir=.
InputPath=.\Sample.nsi
"$(ProjDir)\Sample.exe" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
rem Force Post-Build Step
# End Custom Build
!ELSEIF "$(CFG)" == "liteFirewall - Win32 Debug"
# Begin Custom Build
ProjDir=.
InputPath=.\Sample.nsi
"$(ProjDir)\Sample.exe" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
rem Force Post-Build Step
# End Custom Build
!ELSEIF "$(CFG)" == "liteFirewall - Win32 Release UNICODE"
# Begin Custom Build
ProjDir=.
InputPath=.\Sample.nsi
"$(ProjDir)\Sample.exe" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
rem Force Post-Build Step
# End Custom Build
!ENDIF
# End Source File
# End Target
# End Project

Просмотреть файл

@ -0,0 +1,29 @@
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "liteFirewall"=.\liteFirewall.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################

Просмотреть файл

@ -0,0 +1,23 @@

Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "liteFirewall", "liteFirewall.vcproj", "{F7462DF9-A430-4185-9AFC-8FAEA0FB98EA}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release UNICODE|Win32 = Release UNICODE|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{F7462DF9-A430-4185-9AFC-8FAEA0FB98EA}.Debug|Win32.ActiveCfg = Debug|Win32
{F7462DF9-A430-4185-9AFC-8FAEA0FB98EA}.Debug|Win32.Build.0 = Debug|Win32
{F7462DF9-A430-4185-9AFC-8FAEA0FB98EA}.Release UNICODE|Win32.ActiveCfg = Release UNICODE|Win32
{F7462DF9-A430-4185-9AFC-8FAEA0FB98EA}.Release UNICODE|Win32.Build.0 = Release UNICODE|Win32
{F7462DF9-A430-4185-9AFC-8FAEA0FB98EA}.Release|Win32.ActiveCfg = Release|Win32
{F7462DF9-A430-4185-9AFC-8FAEA0FB98EA}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

Просмотреть файл

@ -0,0 +1,390 @@
<?xml version="1.0" encoding="gb2312"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="liteFirewall"
ProjectGUID="{F7462DF9-A430-4185-9AFC-8FAEA0FB98EA}"
TargetFrameworkVersion="0"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory=".\Debug"
IntermediateDirectory=".\Debug"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="1"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1"
TypeLibraryName=".\Debug/liteFirewall.tlb"
HeaderFileName=""
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="_DEBUG;WIN32;_WINDOWS;UNICODE;NSIS"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
PrecompiledHeaderFile=".\Debug/liteFirewall.pch"
AssemblerListingLocation=".\Debug/"
ObjectFile=".\Debug/"
ProgramDataBaseFileName=".\Debug/"
BrowseInformation="1"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="1033"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="shlwapi.lib"
OutputFile=".\Debug/liteFirewall.dll"
LinkIncremental="2"
SuppressStartupBanner="true"
GenerateDebugInformation="true"
ProgramDatabaseFile=".\Debug/liteFirewall.pdb"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
ImportLibrary=".\Debug/liteFirewall.lib"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\Debug/liteFirewall.bsc"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
Description="Building Sample Installer..."
CommandLine="&quot;E:\Program Files (x86)\NSIS\Unicode\makensis&quot; /V4 /DTARGETDIR=$(TargetDir) /DINTDIR=$(IntDir) $(ProjectDir)Sample.nsi"
/>
</Configuration>
<Configuration
Name="Release UNICODE|Win32"
OutputDirectory=".\Release_UNICODE"
IntermediateDirectory=".\Release_UNICODE"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="1"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1"
TypeLibraryName=".\Release_UNICODE/liteFirewall.tlb"
HeaderFileName=""
/>
<Tool
Name="VCCLCompilerTool"
Optimization="1"
InlineFunctionExpansion="1"
PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;UNICODE;NSIS"
StringPooling="true"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
PrecompiledHeaderFile=".\Release_UNICODE/liteFirewall.pch"
AssemblerListingLocation=".\Release_UNICODE/"
ObjectFile=".\Release_UNICODE/"
ProgramDataBaseFileName=".\Release_UNICODE/"
BrowseInformation="1"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="1033"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="shlwapi.lib"
OutputFile="../bin/liteFirewallW.dll"
LinkIncremental="1"
SuppressStartupBanner="true"
ProgramDatabaseFile=".\Release_UNICODE/liteFirewallW.pdb"
OptimizeReferences="2"
OptimizeForWindows98="1"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
ImportLibrary=".\Release_UNICODE/liteFirewallW.lib"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\Release_UNICODE/liteFirewall.bsc"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
Description="Building Sample Installer..."
CommandLine="&quot;E:\Program Files (x86)\NSIS\Unicode\makensis&quot; /V2 /DTARGETDIR=$(TargetDir) /DINTDIR=$(IntDir) $(ProjectDir)Sample.nsi"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory=".\Release"
IntermediateDirectory=".\Release"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="1"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1"
TypeLibraryName=".\Release/liteFirewall.tlb"
HeaderFileName=""
/>
<Tool
Name="VCCLCompilerTool"
Optimization="1"
InlineFunctionExpansion="1"
PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;NSIS"
StringPooling="true"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
PrecompiledHeaderFile=".\Release/liteFirewall.pch"
AssemblerListingLocation=".\Release/"
ObjectFile=".\Release/"
ProgramDataBaseFileName=".\Release/"
BrowseInformation="1"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="1033"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="shlwapi.lib"
OutputFile="../bin/liteFirewall.dll"
LinkIncremental="1"
SuppressStartupBanner="true"
ProgramDatabaseFile=".\Release/liteFirewall.pdb"
OptimizeReferences="2"
OptimizeForWindows98="1"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
ImportLibrary=".\Release/liteFirewall.lib"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\Release/liteFirewall.bsc"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
Description="Building Sample Installer..."
CommandLine="&quot;E:\Program Files (x86)\NSIS\Unicode\makensis&quot; /V2 /DTARGETDIR=$(TargetDir) /DINTDIR=$(IntDir) $(ProjectDir)Sample.nsi"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<File
RelativePath="exdll.h"
>
</File>
<File
RelativePath="License.txt"
>
</File>
<File
RelativePath="liteFirewall.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release UNICODE|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath="ReadMe.txt"
>
</File>
<File
RelativePath="Sample.nsi"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
CommandLine="rem Force Post-Build Step&#x0D;&#x0A;"
Outputs="$(ProjectDir)Sample.exe"
/>
</FileConfiguration>
<FileConfiguration
Name="Release UNICODE|Win32"
>
<Tool
Name="VCCustomBuildTool"
CommandLine="rem Force Post-Build Step&#x0D;&#x0A;"
Outputs="$(ProjectDir)Sample.exe"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCustomBuildTool"
CommandLine="rem Force Post-Build Step&#x0D;&#x0A;"
Outputs="$(ProjectDir)Sample.exe"
/>
</FileConfiguration>
</File>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

Двоичные данные
other-licenses/nsis/Contrib/liteFirewall/netfw.tlb Normal file

Двоичный файл не отображается.

Двоичные данные
other-licenses/nsis/Plugins/liteFirewallW.dll Normal file

Двоичный файл не отображается.

Просмотреть файл

@ -30,6 +30,7 @@ CUSTOM_NSIS_PLUGINS = \
CityHash.dll \
InetBgDL.dll \
InvokeShellVerb.dll \
liteFirewallW.dll \
ServicesHelper.dll \
ShellLink.dll \
UAC.dll \