Operating System Programming Server Configuration

PWNAT: Windows Complied Version

Recently I complied the PWNAT on windows, and already got few mail asking on how I did that. So to help all fan of great software, I am uploading the Windows Compatible Source.

Disclaimer: I haven’t modify any license Information. All Copyrights and signature are same as Official release of Pwnat 0.3 Beta by Samy on his site. I only remove the compile error for Windows NMAKE Utility, and I have complied the software using NMake that got shipped with visual Studio 2008. But my guess is it will work fine with any nMake version.


1. To get it complied you need to have Windows SDKs 6.0A, I try to compile it with SDK 5.0 but it failed on Winsock Library.

2. Complied Version works fine on Windows XP SP2 and Later for me. I believe it works on Windows XP onwards.

Hope I cover all notes. So enough talking here is Download Link of the same:

I feel bad about this software is that it is first time when I try to contact some author he didn’t respond back, and that is why inspite been very good concept and software I found people are finding its solution somewhere else. I wish Samy, you take care of your software well. This Code is still 100% yours, I just move some line in few condition.

By Sumit Gupta

Sumit Gupta, a developer by choice.

8 replies on “PWNAT: Windows Complied Version”

hello when i try to use your compiled .exe my computer say :

pwnat.exe -c 8000 80
Listening on TCP
Failed to send ICMP packet: No error
Failed to send ICMP packet: No error

Well, I agree that this is my complied EXE, but it works exactly same as main developer code it. From the error it looks like either your router is blocking the outgoing traffic or you have windows firewall. PWNat is to override the incoming packet blocking, but it cannot fight outgoing tracffic rules, and you ened to enable firewall and router respectively if you have blocked them.

More over it need the pwnat -s to be started on some other machine too. Please check the PWnat documentation or my other article on its usage.

The makefile can be made faster by using an inference rule, which allows all .c files to be compiled in one run of cl.exe:

list.obj: list.c list.h common.h
socket.obj: socket.c socket.h common.h
client.obj: client.c client.h common.h
message.obj: message.c message.h common.h
destination.obj: destination.c destination.h
udpclient.obj: udpclient.c list.h socket.h client.h message.h common.h
udpserver.obj: udpserver.c list.h socket.h client.h message.h common.h
pwnat.obj: pwnat.c common.h
xgetopt.obj: xgetopt.c xgetopt.h
gettimeofday.obj: gettimeofday.c gettimeofday.h
packet.obj: packet.c packet.h

$(CC) $(CFLAGS) $<

Patch the middle section that is repetitive.

‘t would be useful if pwnat could take / figure out local ethernet ip address instead of needing it specified. e.g. DHCP installations.

Could try this in the mean time:

@echo off
ipconfig | sed -n -e “/Ethernet adapter/n” -e “s/.*IPv4.*: /set myip=/p” > setmyip.cmd
call setmyip.cmd
echo %myip%

Well this question is more for original developer, and technically it can be done. However why it is not is because, pwnat doesn’t necessarily need to be on same machine whose’ service you want to access, that service can be anywhere. Like you can use pwnat as Proxy server as well. As long as that service is accessible to pwnat it will forward data between client-server of pwnat. So, probably why developer didn’t code that in this.

could you compile a working one, the one you share here is crashing on any incoming connections. (w8/8.1)

I did get some error and since I Know C++ I was able to edit them and compile it. However, I didn’t use Visual Studio or GitHub version of source code. The original code if I remember correctly is written mainly for Unix/Linux system, so you have to make some changes in code before you get it compiled on windows especially on 64bit. I suggest to try for 32bit only at first.

Comments are closed.