Win Server
can be used to debug windows program with pwntools
, it's just like xinetd
which redirects windows program to computer port.
win_server execve_file port [timeout(ms)]
For example:
D:\>win_server babystack.exe 10009
And you also can set timetout to 1 second.
D:\>win_server babystack.exe 10009 1000
Win server
runs the do_child_work
as main thread at first, then creates two pipe for stdout
and stdin
, thirdly create child process, then creates two threads:
input
: It recive buffer asstdin
from remote socket with obstruction.output
: It send information which is from the stdout of program to remote socket with obstruction.
Finally, release resource.
Becase all funcions could be obstructed, so it is friendly to your CPU
.
E:\test>win_server.exe LazyFragmentationHeap.exe 10009
2019-11-05 21:03:11 START: Ex pid: 8400 from: 192.168.1.107:39098
2019-11-05 21:03:12 EXIT: Ex ExitCode: 5678 pid: 8400 from: 192.168.1.107:39098 duration: 1(sec)
The reason of exit code
1234
could be that the remote socket has closed connection, and5678
could be timeout.
cl win_server.c /MT /GS /O2