1+ import os
2+ import sys
3+ import subprocess
4+
5+ print (__file__ )
6+
7+ samplepath = os .path .join (os .path .dirname (__file__ ), ".." , "samples" )
8+ resultdir = os .path .join (os .path .dirname (__file__ ), "source" , "samples_output" )
9+ resultdir = os .path .abspath (resultdir )
10+ os .chdir (samplepath )
11+
12+ python_exe = sys .executable
13+
14+ def generate_output_result (target , output ):
15+ print ("Generating result of <{0}>" .format (target ))
16+ p = subprocess .Popen ([python_exe , target ], stdout = subprocess .PIPE , stderr = subprocess .STDOUT , shell = True )
17+ result = p .communicate ()
18+ with open (os .path .join (resultdir , output ), "wb" ) as f :
19+ f .write ("(cmd) python {0}\n " .format (target ))
20+ f .write (result [0 ])
21+
22+
23+ if "-n" in sys .argv :
24+ sys .exit (0 )
25+
26+ generate_output_result (r"process\current_process.py" , "process_current_process.txt" )
27+ generate_output_result (r"process\remote_process.py" , "process_remote_process.txt" )
28+ generate_output_result (r"process\peb.py" , "process_peb.txt" )
29+ generate_output_result (r"process\iat_hook.py" , "process_iat_hook.txt" )
30+ generate_output_result (r"process\veh_segv.py" , "process_veh_segv.txt" )
31+ generate_output_result (r"process\apisetmap.py" , "process_apisetmap.txt" )
32+
33+
34+ generate_output_result (r"token\token_demo.py" , "token_token_demo.txt" )
35+
36+ generate_output_result (r"system.py" , "system.txt" )
37+ # Require admin for 'network.py'
38+ # Also require a local connection to port 80
39+ generate_output_result (r"network\network.py" , "network_network.txt" )
40+
41+ # Need to anonymise the output
42+ # generate_output_result(r"registry\registry.py", "registry_registry.txt")
43+
44+ generate_output_result (r"crypto\wintrust.py" , "crypto_wintrust.txt" )
45+
46+
47+ generate_output_result (r"debug\debugger_print_LdrLoaddll.py" , "debug_debugger_print_LdrLoaddll.txt" )
48+ generate_output_result (r"debug\debugger_membp_singlestep.py" , "debug_debugger_membp_singlestep.txt" )
49+ generate_output_result (r"debug\debug_functionbp.py" , "debug_debug_functionbp.txt" )
50+ generate_output_result (r"debug\attach.py" , "debug_attach.txt" )
51+ generate_output_result (r"debug\local_debugger.py" , "debug_local_debugger.txt" )
52+ generate_output_result (r"debug\debugger_on_setup.py" , "debug_debugger_on_setup.txt" )
53+
54+ # dbg.symbols
55+ generate_output_result (r"debug\symbols\virtsymdemo.py" , "debug_symbol_virtsymdemo.txt" )
56+ generate_output_result (r"debug\symbols\processsymdemo.py" , "debug_symbol_processsymdemo.txt" )
57+ generate_output_result (r"debug\symbol_debugger.py" , "debug_symbol_debugger.txt" )
58+
59+
60+ # Not generated: need parameters
61+ # generate_output_result(r"debug\symbols\symsearch.py", "debug_symbol_symsearch.txt")
62+
63+
64+
65+
66+
67+ generate_output_result (r"wmi\wmi_request.py" , "wmi_wmi_request.txt" )
68+ generate_output_result (r"wmi\create_process.py" , "wmi_create_process.txt" )
69+
70+ generate_output_result (r"com\com_inetfwpolicy2.py" , "com_com_inetfwpolicy2.txt" )
71+ generate_output_result (r"com\icallinterceptor.py" , "com_icallinterceptor.txt" )
72+
73+ generate_output_result (r"crypto\certificate.py" , "crypto_certificate.txt" )
74+
75+ # Those 2 create another process: cannot get full output with this simple implem
76+ # generate_output_result(r"alpc\simple_alpc.py", "alpc_simple_alpc.txt")
77+ # generate_output_result(r"alpc\advanced_alpc.py", "alpc_advanced_alpc.txt")
78+
79+ generate_output_result (r"rpc\lsass.py" , "rpc_lsass.txt" )
80+
81+ generate_output_result (r"pipe\child_send_object.py" , "pipe_child_send_object.txt" )
82+
83+ generate_output_result (r"scheduled_tasks\scheduled_task.py" , "scheduled_task_scheduled_task.txt" )
84+ generate_output_result (r"event_log\eventlog.py" , "event_log_eventlog.txt" )
85+
86+ generate_output_result (r"object_manager\findobj.py" , "object_manager_findobj.txt" )
87+ generate_output_result (r"object_manager\object_manager.py" , "object_manager_object_manager.txt" )
88+
89+ generate_output_result (r"security\security_descriptor.py" , "security_security_descriptor.txt" )
90+
91+
92+ generate_output_result (r"service\service_demo.py" , "service_service_demo.txt" )
93+
94+ generate_output_result (r"device_manager\device_manager.py" , "device_manager_device_manager.txt" )
95+
96+
97+ # Require ADMIN / NotAdmin run
98+ # generate_output_result(r"security\query_sacl.py", "security_query_sacl.txt")
0 commit comments