Any idea where the registry keys for allowed applications are stored in windows 8?

I'm trying figure out how Windows Firewall functions by experimenting with Bittorrent's add exception to windows firewall option, I deleted the entry from the Firewall options and also located that the regkeys are in HKLM/System/CurrentControlSet/Services/SharedAccess/Parameters/FirewwallPolicy but I can't figure out what registries are made when an application is added as an exception in the Windows Registry.

Any help would be much appreciated, I have googled several places but nothing helpful so far.
Don't kick yourself too hard OP, the documentation to this stuff has been long since buried behind many a paywall. I am a bit surprised that you never noticed the file in your system32 directory called "FirewallAPI.dll" in your search for an answer. If you don't have a tool to crack it open on hand then I personally recommend "DLL Export Viewer" by NirSoft: http://www.nirsoft.net/utils/dll_export_viewer.html

For that matter, just assume that anything by NirSoft has my endorsement by default. I'm not exaggerating when I say this guy is up there with Mark Russinovich in their level of understanding and ability.
I had noticed the FirewallAPI.dll but I don't know what to do with it. I will download the software and see what it holds.

In addition, I saw that it's not recommended to make changes to the firewall registry because they won't function correctly.

Came across netsh advfirewall cmd command. It works better.
I already know all the GUI how to add exceptions, the reason I posted this in C++ forum is because I wanna do it all programmatically.

Something along these lines, perhaps (std::system() is not evil):
1
2
3
4
5
6
7
const std::string win_home = "C:\\Windows" ; // %SystemRoot%
const std::string netsh = win_home + "\\system32\\netsh.exe" ;
std::string netsh_cmd =  netsh + R"( advfirewall firewall add rule name="Allow my program" )" ;
netsh_cmd += R"(dir=in action=allow program="C:\what_ever\etc\my_program.exe")" ;
// elevate privileges 
std::system( netsh_cmd.c_str() ) ;
// drop privileges 
i'll try that. It looks like exactly what i've been looking for
Topic archived. No new replies allowed.