librex 0.0.20 → 0.0.21

Sign up to get free protection for your applications and to get access to all the features.
Files changed (435) hide show
  1. data/Rakefile +1 -0
  2. data/lib/rex/LICENSE +29 -0
  3. data/lib/rex/arch.rb +103 -0
  4. data/lib/rex/arch/sparc.rb +75 -0
  5. data/lib/rex/arch/sparc.rb.ut.rb +18 -0
  6. data/lib/rex/arch/x86.rb +513 -0
  7. data/lib/rex/arch/x86.rb.ut.rb +93 -0
  8. data/lib/rex/assembly/nasm.rb +104 -0
  9. data/lib/rex/assembly/nasm.rb.ut.rb +22 -0
  10. data/lib/rex/codepage.map +104 -0
  11. data/lib/rex/compat.rb +311 -0
  12. data/lib/rex/constants.rb +113 -0
  13. data/lib/rex/elfparsey.rb +11 -0
  14. data/lib/rex/elfparsey/elf.rb +123 -0
  15. data/lib/rex/elfparsey/elfbase.rb +258 -0
  16. data/lib/rex/elfparsey/exceptions.rb +27 -0
  17. data/lib/rex/elfscan.rb +12 -0
  18. data/lib/rex/elfscan/scanner.rb +207 -0
  19. data/lib/rex/elfscan/search.rb +46 -0
  20. data/lib/rex/encoder/alpha2.rb +31 -0
  21. data/lib/rex/encoder/alpha2/alpha_mixed.rb +68 -0
  22. data/lib/rex/encoder/alpha2/alpha_upper.rb +79 -0
  23. data/lib/rex/encoder/alpha2/generic.rb +114 -0
  24. data/lib/rex/encoder/alpha2/unicode_mixed.rb +117 -0
  25. data/lib/rex/encoder/alpha2/unicode_upper.rb +129 -0
  26. data/lib/rex/encoder/ndr.rb +89 -0
  27. data/lib/rex/encoder/ndr.rb.ut.rb +44 -0
  28. data/lib/rex/encoder/nonalpha.rb +61 -0
  29. data/lib/rex/encoder/nonupper.rb +64 -0
  30. data/lib/rex/encoder/xdr.rb +106 -0
  31. data/lib/rex/encoder/xdr.rb.ut.rb +29 -0
  32. data/lib/rex/encoder/xor.rb +69 -0
  33. data/lib/rex/encoder/xor/dword.rb +13 -0
  34. data/lib/rex/encoder/xor/dword_additive.rb +13 -0
  35. data/lib/rex/encoders/xor_dword.rb +35 -0
  36. data/lib/rex/encoders/xor_dword_additive.rb +53 -0
  37. data/lib/rex/encoders/xor_dword_additive.rb.ut.rb +12 -0
  38. data/lib/rex/encoding/xor.rb +20 -0
  39. data/lib/rex/encoding/xor.rb.ts.rb +14 -0
  40. data/lib/rex/encoding/xor/byte.rb +15 -0
  41. data/lib/rex/encoding/xor/byte.rb.ut.rb +21 -0
  42. data/lib/rex/encoding/xor/dword.rb +21 -0
  43. data/lib/rex/encoding/xor/dword.rb.ut.rb +15 -0
  44. data/lib/rex/encoding/xor/dword_additive.rb +92 -0
  45. data/lib/rex/encoding/xor/dword_additive.rb.ut.rb +15 -0
  46. data/lib/rex/encoding/xor/exceptions.rb +17 -0
  47. data/lib/rex/encoding/xor/generic.rb +146 -0
  48. data/lib/rex/encoding/xor/generic.rb.ut.rb +120 -0
  49. data/lib/rex/encoding/xor/qword.rb +15 -0
  50. data/lib/rex/encoding/xor/word.rb +21 -0
  51. data/lib/rex/encoding/xor/word.rb.ut.rb +13 -0
  52. data/lib/rex/exceptions.rb +275 -0
  53. data/lib/rex/exceptions.rb.ut.rb +44 -0
  54. data/lib/rex/exploitation/cmdstager.rb +9 -0
  55. data/lib/rex/exploitation/cmdstager/base.rb +175 -0
  56. data/lib/rex/exploitation/cmdstager/debug_asm.rb +142 -0
  57. data/lib/rex/exploitation/cmdstager/debug_write.rb +136 -0
  58. data/lib/rex/exploitation/cmdstager/tftp.rb +63 -0
  59. data/lib/rex/exploitation/cmdstager/vbs.rb +128 -0
  60. data/lib/rex/exploitation/egghunter.rb +277 -0
  61. data/lib/rex/exploitation/egghunter.rb.ut.rb +25 -0
  62. data/lib/rex/exploitation/encryptjs.rb +77 -0
  63. data/lib/rex/exploitation/heaplib.js.b64 +331 -0
  64. data/lib/rex/exploitation/heaplib.rb +94 -0
  65. data/lib/rex/exploitation/javascriptosdetect.rb +897 -0
  66. data/lib/rex/exploitation/obfuscatejs.rb +335 -0
  67. data/lib/rex/exploitation/omelet.rb +320 -0
  68. data/lib/rex/exploitation/omelet.rb.ut.rb +13 -0
  69. data/lib/rex/exploitation/opcodedb.rb +818 -0
  70. data/lib/rex/exploitation/opcodedb.rb.ut.rb +279 -0
  71. data/lib/rex/exploitation/seh.rb +92 -0
  72. data/lib/rex/exploitation/seh.rb.ut.rb +19 -0
  73. data/lib/rex/file.rb +112 -0
  74. data/lib/rex/file.rb.ut.rb +16 -0
  75. data/lib/rex/image_source.rb +12 -0
  76. data/lib/rex/image_source/disk.rb +60 -0
  77. data/lib/rex/image_source/image_source.rb +46 -0
  78. data/lib/rex/image_source/memory.rb +37 -0
  79. data/lib/rex/io/bidirectional_pipe.rb +157 -0
  80. data/lib/rex/io/datagram_abstraction.rb +35 -0
  81. data/lib/rex/io/ring_buffer.rb +364 -0
  82. data/lib/rex/io/stream.rb +319 -0
  83. data/lib/rex/io/stream_abstraction.rb +197 -0
  84. data/lib/rex/io/stream_server.rb +211 -0
  85. data/lib/rex/job_container.rb +187 -0
  86. data/lib/rex/logging.rb +4 -0
  87. data/lib/rex/logging/log_dispatcher.rb +179 -0
  88. data/lib/rex/logging/log_sink.rb +42 -0
  89. data/lib/rex/logging/sinks/flatfile.rb +55 -0
  90. data/lib/rex/logging/sinks/stderr.rb +43 -0
  91. data/lib/rex/machparsey.rb +9 -0
  92. data/lib/rex/machparsey/exceptions.rb +34 -0
  93. data/lib/rex/machparsey/mach.rb +209 -0
  94. data/lib/rex/machparsey/machbase.rb +408 -0
  95. data/lib/rex/machscan.rb +9 -0
  96. data/lib/rex/machscan/scanner.rb +217 -0
  97. data/lib/rex/mime.rb +9 -0
  98. data/lib/rex/mime/header.rb +77 -0
  99. data/lib/rex/mime/message.rb +144 -0
  100. data/lib/rex/mime/part.rb +20 -0
  101. data/lib/rex/nop/opty2.rb +108 -0
  102. data/lib/rex/nop/opty2.rb.ut.rb +23 -0
  103. data/lib/rex/nop/opty2_tables.rb +300 -0
  104. data/lib/rex/ole.rb +205 -0
  105. data/lib/rex/ole/clsid.rb +47 -0
  106. data/lib/rex/ole/difat.rb +141 -0
  107. data/lib/rex/ole/directory.rb +231 -0
  108. data/lib/rex/ole/direntry.rb +240 -0
  109. data/lib/rex/ole/docs/dependencies.txt +8 -0
  110. data/lib/rex/ole/docs/references.txt +1 -0
  111. data/lib/rex/ole/fat.rb +99 -0
  112. data/lib/rex/ole/header.rb +204 -0
  113. data/lib/rex/ole/minifat.rb +77 -0
  114. data/lib/rex/ole/propset.rb +144 -0
  115. data/lib/rex/ole/samples/create_ole.rb +27 -0
  116. data/lib/rex/ole/samples/dir.rb +35 -0
  117. data/lib/rex/ole/samples/dump_stream.rb +34 -0
  118. data/lib/rex/ole/samples/ole_info.rb +23 -0
  119. data/lib/rex/ole/storage.rb +395 -0
  120. data/lib/rex/ole/stream.rb +53 -0
  121. data/lib/rex/ole/substorage.rb +49 -0
  122. data/lib/rex/ole/util.rb +157 -0
  123. data/lib/rex/parser/arguments.rb +97 -0
  124. data/lib/rex/parser/arguments.rb.ut.rb +67 -0
  125. data/lib/rex/parser/ini.rb +185 -0
  126. data/lib/rex/parser/ini.rb.ut.rb +29 -0
  127. data/lib/rex/parser/ip360_aspl_xml.rb +102 -0
  128. data/lib/rex/parser/ip360_xml.rb +97 -0
  129. data/lib/rex/parser/nessus_xml.rb +118 -0
  130. data/lib/rex/parser/netsparker_xml.rb +94 -0
  131. data/lib/rex/parser/nexpose_xml.rb +136 -0
  132. data/lib/rex/parser/nmap_xml.rb +137 -0
  133. data/lib/rex/parser/retina_xml.rb +109 -0
  134. data/lib/rex/payloads.rb +1 -0
  135. data/lib/rex/payloads/win32.rb +2 -0
  136. data/lib/rex/payloads/win32/common.rb +26 -0
  137. data/lib/rex/payloads/win32/kernel.rb +53 -0
  138. data/lib/rex/payloads/win32/kernel/common.rb +54 -0
  139. data/lib/rex/payloads/win32/kernel/migration.rb +12 -0
  140. data/lib/rex/payloads/win32/kernel/recovery.rb +50 -0
  141. data/lib/rex/payloads/win32/kernel/stager.rb +194 -0
  142. data/lib/rex/peparsey.rb +12 -0
  143. data/lib/rex/peparsey/exceptions.rb +32 -0
  144. data/lib/rex/peparsey/pe.rb +212 -0
  145. data/lib/rex/peparsey/pe_memdump.rb +63 -0
  146. data/lib/rex/peparsey/pebase.rb +1680 -0
  147. data/lib/rex/peparsey/section.rb +136 -0
  148. data/lib/rex/pescan.rb +13 -0
  149. data/lib/rex/pescan/analyze.rb +309 -0
  150. data/lib/rex/pescan/scanner.rb +206 -0
  151. data/lib/rex/pescan/search.rb +56 -0
  152. data/lib/rex/platforms.rb +1 -0
  153. data/lib/rex/platforms/windows.rb +51 -0
  154. data/lib/rex/poly.rb +132 -0
  155. data/lib/rex/poly/block.rb +477 -0
  156. data/lib/rex/poly/register.rb +100 -0
  157. data/lib/rex/poly/register/x86.rb +40 -0
  158. data/lib/rex/post.rb +8 -0
  159. data/lib/rex/post/dir.rb +51 -0
  160. data/lib/rex/post/file.rb +172 -0
  161. data/lib/rex/post/file_stat.rb +220 -0
  162. data/lib/rex/post/gen.pl +13 -0
  163. data/lib/rex/post/io.rb +182 -0
  164. data/lib/rex/post/meterpreter.rb +4 -0
  165. data/lib/rex/post/meterpreter/channel.rb +445 -0
  166. data/lib/rex/post/meterpreter/channel_container.rb +54 -0
  167. data/lib/rex/post/meterpreter/channels/pool.rb +160 -0
  168. data/lib/rex/post/meterpreter/channels/pools/file.rb +62 -0
  169. data/lib/rex/post/meterpreter/channels/pools/stream_pool.rb +103 -0
  170. data/lib/rex/post/meterpreter/channels/stream.rb +87 -0
  171. data/lib/rex/post/meterpreter/client.rb +364 -0
  172. data/lib/rex/post/meterpreter/client_core.rb +274 -0
  173. data/lib/rex/post/meterpreter/dependencies.rb +3 -0
  174. data/lib/rex/post/meterpreter/extension.rb +32 -0
  175. data/lib/rex/post/meterpreter/extensions/espia/espia.rb +58 -0
  176. data/lib/rex/post/meterpreter/extensions/espia/tlv.rb +16 -0
  177. data/lib/rex/post/meterpreter/extensions/incognito/incognito.rb +94 -0
  178. data/lib/rex/post/meterpreter/extensions/incognito/tlv.rb +21 -0
  179. data/lib/rex/post/meterpreter/extensions/networkpug/networkpug.rb +57 -0
  180. data/lib/rex/post/meterpreter/extensions/networkpug/tlv.rb +15 -0
  181. data/lib/rex/post/meterpreter/extensions/priv/fs.rb +118 -0
  182. data/lib/rex/post/meterpreter/extensions/priv/passwd.rb +61 -0
  183. data/lib/rex/post/meterpreter/extensions/priv/priv.rb +111 -0
  184. data/lib/rex/post/meterpreter/extensions/priv/tlv.rb +28 -0
  185. data/lib/rex/post/meterpreter/extensions/sniffer/sniffer.rb +101 -0
  186. data/lib/rex/post/meterpreter/extensions/sniffer/tlv.rb +26 -0
  187. data/lib/rex/post/meterpreter/extensions/stdapi/constants.rb +333 -0
  188. data/lib/rex/post/meterpreter/extensions/stdapi/fs/dir.rb +282 -0
  189. data/lib/rex/post/meterpreter/extensions/stdapi/fs/file.rb +266 -0
  190. data/lib/rex/post/meterpreter/extensions/stdapi/fs/file_stat.rb +103 -0
  191. data/lib/rex/post/meterpreter/extensions/stdapi/fs/io.rb +48 -0
  192. data/lib/rex/post/meterpreter/extensions/stdapi/net/config.rb +144 -0
  193. data/lib/rex/post/meterpreter/extensions/stdapi/net/interface.rb +73 -0
  194. data/lib/rex/post/meterpreter/extensions/stdapi/net/route.rb +56 -0
  195. data/lib/rex/post/meterpreter/extensions/stdapi/net/socket.rb +137 -0
  196. data/lib/rex/post/meterpreter/extensions/stdapi/net/socket_subsystem/tcp_client_channel.rb +180 -0
  197. data/lib/rex/post/meterpreter/extensions/stdapi/net/socket_subsystem/tcp_server_channel.rb +167 -0
  198. data/lib/rex/post/meterpreter/extensions/stdapi/net/socket_subsystem/udp_channel.rb +208 -0
  199. data/lib/rex/post/meterpreter/extensions/stdapi/railgun.rb.ts.rb +6 -0
  200. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/api_constants.rb +38106 -0
  201. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/api_constants.rb.ut.rb +31 -0
  202. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/buffer_item.rb +47 -0
  203. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/buffer_item.rb.ut.rb +36 -0
  204. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/def/def_advapi32.rb +1818 -0
  205. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/def/def_iphlpapi.rb +96 -0
  206. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/def/def_kernel32.rb +3848 -0
  207. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/def/def_netapi32.rb +26 -0
  208. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/def/def_ntdll.rb +153 -0
  209. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/def/def_shell32.rb +21 -0
  210. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/def/def_user32.rb +3169 -0
  211. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/def/def_ws2_32.rb +599 -0
  212. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/dll.rb +318 -0
  213. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/dll_function.rb +100 -0
  214. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/dll_function.rb.ut.rb +42 -0
  215. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/dll_helper.rb +148 -0
  216. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/dll_helper.rb.ut.rb +127 -0
  217. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/multicall.rb +309 -0
  218. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/railgun.rb +204 -0
  219. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/tlv.rb +51 -0
  220. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/util.rb +630 -0
  221. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/win_const_manager.rb +75 -0
  222. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/win_const_manager.rb.ut.rb +103 -0
  223. data/lib/rex/post/meterpreter/extensions/stdapi/stdapi.rb +149 -0
  224. data/lib/rex/post/meterpreter/extensions/stdapi/sys/config.rb +97 -0
  225. data/lib/rex/post/meterpreter/extensions/stdapi/sys/event_log.rb +192 -0
  226. data/lib/rex/post/meterpreter/extensions/stdapi/sys/event_log_subsystem/event_record.rb +41 -0
  227. data/lib/rex/post/meterpreter/extensions/stdapi/sys/power.rb +61 -0
  228. data/lib/rex/post/meterpreter/extensions/stdapi/sys/process.rb +370 -0
  229. data/lib/rex/post/meterpreter/extensions/stdapi/sys/process_subsystem/image.rb +129 -0
  230. data/lib/rex/post/meterpreter/extensions/stdapi/sys/process_subsystem/io.rb +55 -0
  231. data/lib/rex/post/meterpreter/extensions/stdapi/sys/process_subsystem/memory.rb +336 -0
  232. data/lib/rex/post/meterpreter/extensions/stdapi/sys/process_subsystem/thread.rb +141 -0
  233. data/lib/rex/post/meterpreter/extensions/stdapi/sys/registry.rb +279 -0
  234. data/lib/rex/post/meterpreter/extensions/stdapi/sys/registry_subsystem/registry_key.rb +193 -0
  235. data/lib/rex/post/meterpreter/extensions/stdapi/sys/registry_subsystem/registry_value.rb +102 -0
  236. data/lib/rex/post/meterpreter/extensions/stdapi/sys/thread.rb +180 -0
  237. data/lib/rex/post/meterpreter/extensions/stdapi/tlv.rb +211 -0
  238. data/lib/rex/post/meterpreter/extensions/stdapi/ui.rb +227 -0
  239. data/lib/rex/post/meterpreter/extensions/stdapi/webcam/webcam.rb +63 -0
  240. data/lib/rex/post/meterpreter/inbound_packet_handler.rb +30 -0
  241. data/lib/rex/post/meterpreter/object_aliases.rb +83 -0
  242. data/lib/rex/post/meterpreter/packet.rb +688 -0
  243. data/lib/rex/post/meterpreter/packet_dispatcher.rb +431 -0
  244. data/lib/rex/post/meterpreter/packet_parser.rb +94 -0
  245. data/lib/rex/post/meterpreter/packet_response_waiter.rb +83 -0
  246. data/lib/rex/post/meterpreter/ui/console.rb +137 -0
  247. data/lib/rex/post/meterpreter/ui/console/command_dispatcher.rb +62 -0
  248. data/lib/rex/post/meterpreter/ui/console/command_dispatcher/core.rb +730 -0
  249. data/lib/rex/post/meterpreter/ui/console/command_dispatcher/espia.rb +108 -0
  250. data/lib/rex/post/meterpreter/ui/console/command_dispatcher/incognito.rb +241 -0
  251. data/lib/rex/post/meterpreter/ui/console/command_dispatcher/networkpug.rb +231 -0
  252. data/lib/rex/post/meterpreter/ui/console/command_dispatcher/priv.rb +61 -0
  253. data/lib/rex/post/meterpreter/ui/console/command_dispatcher/priv/elevate.rb +98 -0
  254. data/lib/rex/post/meterpreter/ui/console/command_dispatcher/priv/passwd.rb +51 -0
  255. data/lib/rex/post/meterpreter/ui/console/command_dispatcher/priv/timestomp.rb +132 -0
  256. data/lib/rex/post/meterpreter/ui/console/command_dispatcher/sniffer.rb +187 -0
  257. data/lib/rex/post/meterpreter/ui/console/command_dispatcher/stdapi.rb +65 -0
  258. data/lib/rex/post/meterpreter/ui/console/command_dispatcher/stdapi/fs.rb +442 -0
  259. data/lib/rex/post/meterpreter/ui/console/command_dispatcher/stdapi/net.rb +298 -0
  260. data/lib/rex/post/meterpreter/ui/console/command_dispatcher/stdapi/sys.rb +486 -0
  261. data/lib/rex/post/meterpreter/ui/console/command_dispatcher/stdapi/ui.rb +315 -0
  262. data/lib/rex/post/meterpreter/ui/console/command_dispatcher/stdapi/webcam.rb +157 -0
  263. data/lib/rex/post/meterpreter/ui/console/interactive_channel.rb +95 -0
  264. data/lib/rex/post/permission.rb +26 -0
  265. data/lib/rex/post/process.rb +57 -0
  266. data/lib/rex/post/thread.rb +57 -0
  267. data/lib/rex/post/ui.rb +52 -0
  268. data/lib/rex/proto.rb +13 -0
  269. data/lib/rex/proto.rb.ts.rb +8 -0
  270. data/lib/rex/proto/dcerpc.rb +6 -0
  271. data/lib/rex/proto/dcerpc.rb.ts.rb +9 -0
  272. data/lib/rex/proto/dcerpc/client.rb +361 -0
  273. data/lib/rex/proto/dcerpc/client.rb.ut.rb +491 -0
  274. data/lib/rex/proto/dcerpc/exceptions.rb +150 -0
  275. data/lib/rex/proto/dcerpc/handle.rb +47 -0
  276. data/lib/rex/proto/dcerpc/handle.rb.ut.rb +85 -0
  277. data/lib/rex/proto/dcerpc/ndr.rb +72 -0
  278. data/lib/rex/proto/dcerpc/ndr.rb.ut.rb +41 -0
  279. data/lib/rex/proto/dcerpc/packet.rb +253 -0
  280. data/lib/rex/proto/dcerpc/packet.rb.ut.rb +56 -0
  281. data/lib/rex/proto/dcerpc/response.rb +187 -0
  282. data/lib/rex/proto/dcerpc/response.rb.ut.rb +15 -0
  283. data/lib/rex/proto/dcerpc/uuid.rb +84 -0
  284. data/lib/rex/proto/dcerpc/uuid.rb.ut.rb +46 -0
  285. data/lib/rex/proto/dhcp.rb +7 -0
  286. data/lib/rex/proto/dhcp/constants.rb +33 -0
  287. data/lib/rex/proto/dhcp/server.rb +292 -0
  288. data/lib/rex/proto/drda.rb +5 -0
  289. data/lib/rex/proto/drda.rb.ts.rb +17 -0
  290. data/lib/rex/proto/drda/constants.rb +49 -0
  291. data/lib/rex/proto/drda/constants.rb.ut.rb +23 -0
  292. data/lib/rex/proto/drda/packet.rb +252 -0
  293. data/lib/rex/proto/drda/packet.rb.ut.rb +109 -0
  294. data/lib/rex/proto/drda/utils.rb +123 -0
  295. data/lib/rex/proto/drda/utils.rb.ut.rb +84 -0
  296. data/lib/rex/proto/http.rb +5 -0
  297. data/lib/rex/proto/http.rb.ts.rb +12 -0
  298. data/lib/rex/proto/http/client.rb +821 -0
  299. data/lib/rex/proto/http/client.rb.ut.rb +95 -0
  300. data/lib/rex/proto/http/handler.rb +46 -0
  301. data/lib/rex/proto/http/handler/erb.rb +128 -0
  302. data/lib/rex/proto/http/handler/erb.rb.ut.rb +21 -0
  303. data/lib/rex/proto/http/handler/erb.rb.ut.rb.rhtml +1 -0
  304. data/lib/rex/proto/http/handler/proc.rb +60 -0
  305. data/lib/rex/proto/http/handler/proc.rb.ut.rb +24 -0
  306. data/lib/rex/proto/http/header.rb +161 -0
  307. data/lib/rex/proto/http/header.rb.ut.rb +46 -0
  308. data/lib/rex/proto/http/packet.rb +407 -0
  309. data/lib/rex/proto/http/packet.rb.ut.rb +165 -0
  310. data/lib/rex/proto/http/request.rb +356 -0
  311. data/lib/rex/proto/http/request.rb.ut.rb +214 -0
  312. data/lib/rex/proto/http/response.rb +90 -0
  313. data/lib/rex/proto/http/response.rb.ut.rb +149 -0
  314. data/lib/rex/proto/http/server.rb +369 -0
  315. data/lib/rex/proto/http/server.rb.ut.rb +79 -0
  316. data/lib/rex/proto/ntlm.rb +7 -0
  317. data/lib/rex/proto/ntlm.rb.ut.rb +177 -0
  318. data/lib/rex/proto/ntlm/base.rb +326 -0
  319. data/lib/rex/proto/ntlm/constants.rb +74 -0
  320. data/lib/rex/proto/ntlm/crypt.rb +415 -0
  321. data/lib/rex/proto/ntlm/exceptions.rb +16 -0
  322. data/lib/rex/proto/ntlm/message.rb +536 -0
  323. data/lib/rex/proto/ntlm/utils.rb +764 -0
  324. data/lib/rex/proto/proxy/socks4a.rb +440 -0
  325. data/lib/rex/proto/rfb.rb +19 -0
  326. data/lib/rex/proto/rfb.rb.ut.rb +37 -0
  327. data/lib/rex/proto/rfb/cipher.rb +84 -0
  328. data/lib/rex/proto/rfb/client.rb +207 -0
  329. data/lib/rex/proto/rfb/constants.rb +52 -0
  330. data/lib/rex/proto/smb.rb +7 -0
  331. data/lib/rex/proto/smb.rb.ts.rb +8 -0
  332. data/lib/rex/proto/smb/client.rb +1952 -0
  333. data/lib/rex/proto/smb/client.rb.ut.rb +223 -0
  334. data/lib/rex/proto/smb/constants.rb +1047 -0
  335. data/lib/rex/proto/smb/constants.rb.ut.rb +18 -0
  336. data/lib/rex/proto/smb/crypt.rb +36 -0
  337. data/lib/rex/proto/smb/evasions.rb +66 -0
  338. data/lib/rex/proto/smb/exceptions.rb +858 -0
  339. data/lib/rex/proto/smb/simpleclient.rb +306 -0
  340. data/lib/rex/proto/smb/simpleclient.rb.ut.rb +128 -0
  341. data/lib/rex/proto/smb/utils.rb +103 -0
  342. data/lib/rex/proto/smb/utils.rb.ut.rb +20 -0
  343. data/lib/rex/proto/sunrpc.rb +1 -0
  344. data/lib/rex/proto/sunrpc/client.rb +195 -0
  345. data/lib/rex/proto/tftp.rb +12 -0
  346. data/lib/rex/proto/tftp/constants.rb +39 -0
  347. data/lib/rex/proto/tftp/server.rb +497 -0
  348. data/lib/rex/proto/tftp/server.rb.ut.rb +28 -0
  349. data/lib/rex/script.rb +42 -0
  350. data/lib/rex/script/base.rb +59 -0
  351. data/lib/rex/script/meterpreter.rb +15 -0
  352. data/lib/rex/script/shell.rb +9 -0
  353. data/lib/rex/service.rb +48 -0
  354. data/lib/rex/service_manager.rb +141 -0
  355. data/lib/rex/service_manager.rb.ut.rb +32 -0
  356. data/lib/rex/services/local_relay.rb +423 -0
  357. data/lib/rex/socket.rb +684 -0
  358. data/lib/rex/socket.rb.ut.rb +107 -0
  359. data/lib/rex/socket/comm.rb +119 -0
  360. data/lib/rex/socket/comm/local.rb +412 -0
  361. data/lib/rex/socket/comm/local.rb.ut.rb +75 -0
  362. data/lib/rex/socket/ip.rb +130 -0
  363. data/lib/rex/socket/parameters.rb +345 -0
  364. data/lib/rex/socket/parameters.rb.ut.rb +51 -0
  365. data/lib/rex/socket/range_walker.rb +346 -0
  366. data/lib/rex/socket/range_walker.rb.ut.rb +55 -0
  367. data/lib/rex/socket/ssl_tcp.rb +184 -0
  368. data/lib/rex/socket/ssl_tcp.rb.ut.rb +39 -0
  369. data/lib/rex/socket/ssl_tcp_server.rb +122 -0
  370. data/lib/rex/socket/ssl_tcp_server.rb.ut.rb +61 -0
  371. data/lib/rex/socket/subnet_walker.rb +75 -0
  372. data/lib/rex/socket/subnet_walker.rb.ut.rb +28 -0
  373. data/lib/rex/socket/switch_board.rb +278 -0
  374. data/lib/rex/socket/switch_board.rb.ut.rb +52 -0
  375. data/lib/rex/socket/tcp.rb +76 -0
  376. data/lib/rex/socket/tcp.rb.ut.rb +64 -0
  377. data/lib/rex/socket/tcp_server.rb +66 -0
  378. data/lib/rex/socket/tcp_server.rb.ut.rb +44 -0
  379. data/lib/rex/socket/udp.rb +164 -0
  380. data/lib/rex/socket/udp.rb.ut.rb +44 -0
  381. data/lib/rex/struct2.rb +5 -0
  382. data/lib/rex/struct2/c_struct.rb +181 -0
  383. data/lib/rex/struct2/c_struct_template.rb +39 -0
  384. data/lib/rex/struct2/constant.rb +26 -0
  385. data/lib/rex/struct2/element.rb +44 -0
  386. data/lib/rex/struct2/generic.rb +73 -0
  387. data/lib/rex/struct2/restraint.rb +54 -0
  388. data/lib/rex/struct2/s_string.rb +72 -0
  389. data/lib/rex/struct2/s_struct.rb +111 -0
  390. data/lib/rex/sync.rb +6 -0
  391. data/lib/rex/sync/event.rb +94 -0
  392. data/lib/rex/sync/read_write_lock.rb +176 -0
  393. data/lib/rex/sync/ref.rb +57 -0
  394. data/lib/rex/sync/thread_safe.rb +82 -0
  395. data/lib/rex/test.rb +35 -0
  396. data/lib/rex/text.rb +1163 -0
  397. data/lib/rex/text.rb.ut.rb +190 -0
  398. data/lib/rex/thread_factory.rb +42 -0
  399. data/lib/rex/time.rb +65 -0
  400. data/lib/rex/transformer.rb +115 -0
  401. data/lib/rex/transformer.rb.ut.rb +38 -0
  402. data/lib/rex/ui.rb +21 -0
  403. data/lib/rex/ui/interactive.rb +298 -0
  404. data/lib/rex/ui/output.rb +78 -0
  405. data/lib/rex/ui/output/none.rb +18 -0
  406. data/lib/rex/ui/progress_tracker.rb +96 -0
  407. data/lib/rex/ui/subscriber.rb +149 -0
  408. data/lib/rex/ui/text/color.rb +97 -0
  409. data/lib/rex/ui/text/color.rb.ut.rb +18 -0
  410. data/lib/rex/ui/text/dispatcher_shell.rb +467 -0
  411. data/lib/rex/ui/text/input.rb +117 -0
  412. data/lib/rex/ui/text/input/buffer.rb +75 -0
  413. data/lib/rex/ui/text/input/readline.rb +129 -0
  414. data/lib/rex/ui/text/input/socket.rb +95 -0
  415. data/lib/rex/ui/text/input/stdio.rb +45 -0
  416. data/lib/rex/ui/text/irb_shell.rb +57 -0
  417. data/lib/rex/ui/text/output.rb +80 -0
  418. data/lib/rex/ui/text/output/buffer.rb +61 -0
  419. data/lib/rex/ui/text/output/file.rb +43 -0
  420. data/lib/rex/ui/text/output/socket.rb +43 -0
  421. data/lib/rex/ui/text/output/stdio.rb +40 -0
  422. data/lib/rex/ui/text/progress_tracker.rb +56 -0
  423. data/lib/rex/ui/text/progress_tracker.rb.ut.rb +34 -0
  424. data/lib/rex/ui/text/shell.rb +328 -0
  425. data/lib/rex/ui/text/table.rb +279 -0
  426. data/lib/rex/ui/text/table.rb.ut.rb +55 -0
  427. data/lib/rex/zip.rb +93 -0
  428. data/lib/rex/zip/archive.rb +184 -0
  429. data/lib/rex/zip/blocks.rb +182 -0
  430. data/lib/rex/zip/entry.rb +104 -0
  431. data/lib/rex/zip/samples/comment.rb +32 -0
  432. data/lib/rex/zip/samples/mkwar.rb +138 -0
  433. data/lib/rex/zip/samples/mkzip.rb +19 -0
  434. data/lib/rex/zip/samples/recursive.rb +58 -0
  435. metadata +434 -1
@@ -0,0 +1,31 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $:.unshift(File.join(File.dirname(__FILE__), '..', '..', '..','..','..','..','..', 'lib'))
4
+
5
+ require 'rex/post/meterpreter/extensions/stdapi/railgun/api_constants'
6
+ require 'rex/post/meterpreter/extensions/stdapi/railgun/win_const_manager'
7
+ require 'rex/text'
8
+ require 'test/unit'
9
+
10
+ module Rex
11
+ module Post
12
+ module Meterpreter
13
+ module Extensions
14
+ module Stdapi
15
+ module Railgun
16
+ class ApiConstants::UnitTest < Test::Unit::TestCase
17
+ def test_add_constants
18
+ const_manager = WinConstManager.new
19
+
20
+ ApiConstants.add_constants(const_manager)
21
+
22
+ assert_equal(0, const_manager.parse('SUCCESS'),
23
+ "ApiConstants.add_constants should have added WinAPI constants to given constant manager")
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,47 @@
1
+ # Copyright (c) 2010, patrickHVE@googlemail.com
2
+ # All rights reserved.
3
+ #
4
+ # Redistribution and use in source and binary forms, with or without
5
+ # modification, are permitted provided that the following conditions are met:
6
+ # * Redistributions of source code must retain the above copyright
7
+ # notice, this list of conditions and the following disclaimer.
8
+ # * Redistributions in binary form must reproduce the above copyright
9
+ # notice, this list of conditions and the following disclaimer in the
10
+ # documentation and/or other materials provided with the distribution.
11
+ # * The names of the author may not be used to endorse or promote products
12
+ # derived from this software without specific prior written permission.
13
+ #
14
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
15
+ # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
16
+ # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17
+ # DISCLAIMED. IN NO EVENT SHALL patrickHVE@googlemail.com BE LIABLE FOR ANY
18
+ # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19
+ # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20
+ # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
21
+ # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22
+ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
23
+ # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24
+
25
+ module Rex
26
+ module Post
27
+ module Meterpreter
28
+ module Extensions
29
+ module Stdapi
30
+ module Railgun
31
+
32
+ #
33
+ #
34
+ #
35
+ class BufferItem
36
+
37
+ attr_reader :belongs_to_param_n, :addr, :length_in_bytes, :datatype
38
+
39
+ def initialize(belongs_to_param_n, addr, length_in_bytes, datatype)
40
+ @belongs_to_param_n = belongs_to_param_n
41
+ @addr = addr
42
+ @length_in_bytes = length_in_bytes
43
+ @datatype = datatype
44
+ end
45
+ end
46
+
47
+ end; end; end; end; end; end
@@ -0,0 +1,36 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $:.unshift(File.join(File.dirname(__FILE__), '..', '..', '..','..','..','..','..', 'lib'))
4
+
5
+ require 'rex/post/meterpreter/extensions/stdapi/railgun/buffer_item'
6
+ require 'test/unit'
7
+
8
+ module Rex
9
+ module Post
10
+ module Meterpreter
11
+ module Extensions
12
+ module Stdapi
13
+ module Railgun
14
+ class BufferItem::UnitTest < Test::Unit::TestCase
15
+
16
+ def test_initialization
17
+ target_belongs_to_param_n = 1
18
+ target_addr = 232323
19
+ target_length_in_bytes = 4
20
+ target_datatype = "DWORD"
21
+
22
+ item = BufferItem.new(target_belongs_to_param_n, target_addr,
23
+ target_length_in_bytes, target_datatype)
24
+
25
+ assert_equal(target_belongs_to_param_n, item.belongs_to_param_n)
26
+ assert_equal(target_addr, item.addr)
27
+ assert_equal(target_length_in_bytes, item.length_in_bytes)
28
+ assert_equal(target_datatype, item.datatype)
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,1818 @@
1
+ module Rex
2
+ module Post
3
+ module Meterpreter
4
+ module Extensions
5
+ module Stdapi
6
+ module Railgun
7
+ module Def
8
+
9
+ class Def_advapi32
10
+
11
+ def self.add_imports(railgun)
12
+
13
+ railgun.add_dll('advapi32')
14
+
15
+ # Function to open the Service Control Database
16
+ railgun.add_function( 'advapi32', 'OpenSCManagerA','DWORD',[
17
+ [ "PCHAR", "lpMachineName", "inout" ],
18
+ [ "PCHAR", "lpDatabaseName", "inout" ],
19
+ [ "DWORD", "dwDesiredAccess", "in" ]
20
+ ])
21
+
22
+ # Function for creating a Service
23
+ railgun.add_function( 'advapi32', 'CreateServiceA','DWORD',[
24
+ [ "DWORD", "hSCManager", "in" ],
25
+ [ "PCHAR", "lpServiceName", "in" ],
26
+ [ "PCHAR", "lpDisplayName", "in" ],
27
+ [ "DWORD", "dwDesiredAccess", "in" ],
28
+ [ "DWORD", "dwServiceType", "in" ],
29
+ [ "DWORD", "dwStartType", "in" ],
30
+ [ "DWORD", "dwErrorControl", "in" ],
31
+ [ "PCHAR", "lpBinaryPathName", "in" ],
32
+ [ "PCHAR", "lpLoadOrderGroup", "in" ],
33
+ [ "PDWORD", "lpdwTagId", "out" ],
34
+ [ "PCHAR", "lpDependencies", "in" ],
35
+ [ "PCHAR", "lpServiceStartName", "in" ],
36
+ [ "PCHAR", "lpPassword", "in" ]
37
+ ])
38
+
39
+ railgun.add_function( 'advapi32', 'OpenServiceA','DWORD',[
40
+ [ "DWORD", "hSCManager", "in" ],
41
+ [ "PCHAR", "lpServiceName", "in" ],
42
+ [ "DWORD", "dwDesiredAccess", "in" ]
43
+ ])
44
+
45
+ #access rights: SERVICE_CHANGE_CONFIG (0x0002) SERVICE_START (0x0010)
46
+ #SERVICE_STOP (0x0020)
47
+
48
+ railgun.add_function( 'advapi32', 'StartServiceA','BOOL',[
49
+ [ "DWORD", "hService", "in" ],
50
+ [ "DWORD", "dwNumServiceArgs", "in" ],
51
+ [ "PCHAR", "lpServiceArgVectors", "in" ]
52
+ ])
53
+
54
+ railgun.add_function( 'advapi32', 'ControlService','BOOL',[
55
+ [ "DWORD", "hService", "in" ],
56
+ [ "DWORD", "dwControl", "in" ],
57
+ [ "PBLOB", "lpServiceStatus", "out" ]
58
+ ])
59
+
60
+ #SERVICE_CONTROL_STOP = 0x00000001
61
+
62
+ # _SERVICE_STATUS is an array of 7 DWORDS - dwServiceType;
63
+ #dwCurrentState; dwControlsAccepted; dwWin32ExitCode;
64
+ #dwServiceSpecificExitCode; dwCheckPoint; dwWaitHint;
65
+
66
+ railgun.add_function( 'advapi32', 'ChangeServiceConfigA','BOOL',[
67
+ [ "DWORD", "hService", "in" ],
68
+ [ "DWORD", "dwServiceType", "in" ],
69
+ [ "DWORD", "dwStartType", "in" ],
70
+ [ "DWORD", "dwErrorControl", "in" ],
71
+ [ "PCHAR", "lpBinaryPathName", "in" ],
72
+ [ "PCHAR", "lpLoadOrderGroup", "in" ],
73
+ [ "PDWORD", "lpdwTagId", "out" ],
74
+ [ "PCHAR", "lpDependencies", "in" ],
75
+ [ "PCHAR", "lpServiceStartName", "in" ],
76
+ [ "PCHAR", "lpPassword", "in" ],
77
+ [ "PCHAR", "lpDisplayName", "in" ]
78
+ ])
79
+
80
+ railgun.add_function( 'advapi32', 'CloseServiceHandle','BOOL',[
81
+ [ "DWORD", "hSCObject", "in" ]
82
+ ])
83
+
84
+ railgun.add_function( 'advapi32', 'AbortSystemShutdownA', 'BOOL',[
85
+ ["PCHAR","lpMachineName","in"],
86
+ ])
87
+
88
+ railgun.add_function( 'advapi32', 'AbortSystemShutdownW', 'BOOL',[
89
+ ["PWCHAR","lpMachineName","in"],
90
+ ])
91
+
92
+ railgun.add_function( 'advapi32', 'InitiateSystemShutdownA', 'BOOL',[
93
+ ["PCHAR","lpMachineName","in"],
94
+ ["PCHAR","lpMessage","in"],
95
+ ["DWORD","dwTimeout","in"],
96
+ ["BOOL","bForceAppsClosed","in"],
97
+ ["BOOL","bRebootAfterShutdown","in"],
98
+ ])
99
+
100
+ railgun.add_function( 'advapi32', 'InitiateSystemShutdownExA', 'BOOL',[
101
+ ["PCHAR","lpMachineName","in"],
102
+ ["PCHAR","lpMessage","in"],
103
+ ["DWORD","dwTimeout","in"],
104
+ ["BOOL","bForceAppsClosed","in"],
105
+ ["BOOL","bRebootAfterShutdown","in"],
106
+ ["DWORD","dwReason","in"],
107
+ ])
108
+
109
+ railgun.add_function( 'advapi32', 'InitiateSystemShutdownExW', 'BOOL',[
110
+ ["PWCHAR","lpMachineName","in"],
111
+ ["PWCHAR","lpMessage","in"],
112
+ ["DWORD","dwTimeout","in"],
113
+ ["BOOL","bForceAppsClosed","in"],
114
+ ["BOOL","bRebootAfterShutdown","in"],
115
+ ["DWORD","dwReason","in"],
116
+ ])
117
+
118
+ railgun.add_function( 'advapi32', 'InitiateSystemShutdownW', 'BOOL',[
119
+ ["PWCHAR","lpMachineName","in"],
120
+ ["PWCHAR","lpMessage","in"],
121
+ ["DWORD","dwTimeout","in"],
122
+ ["BOOL","bForceAppsClosed","in"],
123
+ ["BOOL","bRebootAfterShutdown","in"],
124
+ ])
125
+
126
+ railgun.add_function( 'advapi32', 'RegCloseKey', 'DWORD',[
127
+ ["DWORD","hKey","in"],
128
+ ])
129
+
130
+ railgun.add_function( 'advapi32', 'RegConnectRegistryA', 'DWORD',[
131
+ ["PCHAR","lpMachineName","in"],
132
+ ["DWORD","hKey","in"],
133
+ ["PDWORD","phkResult","out"],
134
+ ])
135
+
136
+ railgun.add_function( 'advapi32', 'RegConnectRegistryExA', 'DWORD',[
137
+ ["PCHAR","lpMachineName","in"],
138
+ ["DWORD","hKey","in"],
139
+ ["DWORD","Flags","in"],
140
+ ["PDWORD","phkResult","out"],
141
+ ])
142
+
143
+ railgun.add_function( 'advapi32', 'RegConnectRegistryExW', 'DWORD',[
144
+ ["PWCHAR","lpMachineName","in"],
145
+ ["DWORD","hKey","in"],
146
+ ["DWORD","Flags","in"],
147
+ ["PDWORD","phkResult","out"],
148
+ ])
149
+
150
+ railgun.add_function( 'advapi32', 'RegConnectRegistryW', 'DWORD',[
151
+ ["PWCHAR","lpMachineName","in"],
152
+ ["DWORD","hKey","in"],
153
+ ["PDWORD","phkResult","out"],
154
+ ])
155
+
156
+ railgun.add_function( 'advapi32', 'RegCreateKeyA', 'DWORD',[
157
+ ["DWORD","hKey","in"],
158
+ ["PCHAR","lpSubKey","in"],
159
+ ["PDWORD","phkResult","out"],
160
+ ])
161
+
162
+ railgun.add_function( 'advapi32', 'RegCreateKeyExA', 'DWORD',[
163
+ ["DWORD","hKey","in"],
164
+ ["PCHAR","lpSubKey","in"],
165
+ ["DWORD","Reserved","inout"],
166
+ ["PCHAR","lpClass","in"],
167
+ ["DWORD","dwOptions","in"],
168
+ ["DWORD","samDesired","in"],
169
+ ["PBLOB","lpSecurityAttributes","in"],
170
+ ["PDWORD","phkResult","out"],
171
+ ["PDWORD","lpdwDisposition","out"],
172
+ ])
173
+
174
+ railgun.add_function( 'advapi32', 'RegCreateKeyExW', 'DWORD',[
175
+ ["DWORD","hKey","in"],
176
+ ["PWCHAR","lpSubKey","in"],
177
+ ["DWORD","Reserved","inout"],
178
+ ["PWCHAR","lpClass","in"],
179
+ ["DWORD","dwOptions","in"],
180
+ ["DWORD","samDesired","in"],
181
+ ["PBLOB","lpSecurityAttributes","in"],
182
+ ["PDWORD","phkResult","out"],
183
+ ["PDWORD","lpdwDisposition","out"],
184
+ ])
185
+
186
+ railgun.add_function( 'advapi32', 'RegCreateKeyW', 'DWORD',[
187
+ ["DWORD","hKey","in"],
188
+ ["PWCHAR","lpSubKey","in"],
189
+ ["PDWORD","phkResult","out"],
190
+ ])
191
+
192
+ railgun.add_function( 'advapi32', 'RegDeleteKeyA', 'DWORD',[
193
+ ["DWORD","hKey","in"],
194
+ ["PCHAR","lpSubKey","in"],
195
+ ])
196
+
197
+ railgun.add_function( 'advapi32', 'RegDeleteKeyExA', 'DWORD',[
198
+ ["DWORD","hKey","in"],
199
+ ["PCHAR","lpSubKey","in"],
200
+ ["DWORD","samDesired","in"],
201
+ ["DWORD","Reserved","inout"],
202
+ ])
203
+
204
+ railgun.add_function( 'advapi32', 'RegDeleteKeyExW', 'DWORD',[
205
+ ["DWORD","hKey","in"],
206
+ ["PWCHAR","lpSubKey","in"],
207
+ ["DWORD","samDesired","in"],
208
+ ["DWORD","Reserved","inout"],
209
+ ])
210
+
211
+ railgun.add_function( 'advapi32', 'RegDeleteKeyW', 'DWORD',[
212
+ ["DWORD","hKey","in"],
213
+ ["PWCHAR","lpSubKey","in"],
214
+ ])
215
+
216
+ railgun.add_function( 'advapi32', 'RegDeleteValueA', 'DWORD',[
217
+ ["DWORD","hKey","in"],
218
+ ["PCHAR","lpValueName","in"],
219
+ ])
220
+
221
+ railgun.add_function( 'advapi32', 'RegDeleteValueW', 'DWORD',[
222
+ ["DWORD","hKey","in"],
223
+ ["PWCHAR","lpValueName","in"],
224
+ ])
225
+
226
+ railgun.add_function( 'advapi32', 'RegDisablePredefinedCache', 'DWORD',[
227
+ ])
228
+
229
+ railgun.add_function( 'advapi32', 'RegDisableReflectionKey', 'DWORD',[
230
+ ["DWORD","hBase","in"],
231
+ ])
232
+
233
+ railgun.add_function( 'advapi32', 'RegEnableReflectionKey', 'DWORD',[
234
+ ["DWORD","hBase","in"],
235
+ ])
236
+
237
+ railgun.add_function( 'advapi32', 'RegEnumKeyA', 'DWORD',[
238
+ ["DWORD","hKey","in"],
239
+ ["DWORD","dwIndex","in"],
240
+ ["PCHAR","lpName","out"],
241
+ ["DWORD","cchName","in"],
242
+ ])
243
+
244
+ railgun.add_function( 'advapi32', 'RegEnumKeyExA', 'DWORD',[
245
+ ["DWORD","hKey","in"],
246
+ ["DWORD","dwIndex","in"],
247
+ ["PCHAR","lpName","out"],
248
+ ["PDWORD","lpcchName","inout"],
249
+ ["PDWORD","lpReserved","inout"],
250
+ ["PCHAR","lpClass","inout"],
251
+ ["PDWORD","lpcchClass","inout"],
252
+ ["PBLOB","lpftLastWriteTime","out"],
253
+ ])
254
+
255
+ railgun.add_function( 'advapi32', 'RegEnumKeyExW', 'DWORD',[
256
+ ["DWORD","hKey","in"],
257
+ ["DWORD","dwIndex","in"],
258
+ ["PWCHAR","lpName","out"],
259
+ ["PDWORD","lpcchName","inout"],
260
+ ["PDWORD","lpReserved","inout"],
261
+ ["PWCHAR","lpClass","inout"],
262
+ ["PDWORD","lpcchClass","inout"],
263
+ ["PBLOB","lpftLastWriteTime","out"],
264
+ ])
265
+
266
+ railgun.add_function( 'advapi32', 'RegEnumKeyW', 'DWORD',[
267
+ ["DWORD","hKey","in"],
268
+ ["DWORD","dwIndex","in"],
269
+ ["PWCHAR","lpName","out"],
270
+ ["DWORD","cchName","in"],
271
+ ])
272
+
273
+ railgun.add_function( 'advapi32', 'RegEnumValueA', 'DWORD',[
274
+ ["DWORD","hKey","in"],
275
+ ["DWORD","dwIndex","in"],
276
+ ["PCHAR","lpValueName","out"],
277
+ ["PDWORD","lpcchValueName","inout"],
278
+ ["PDWORD","lpReserved","inout"],
279
+ ["PDWORD","lpType","out"],
280
+ ["PBLOB","lpData","out"],
281
+ ["PDWORD","lpcbData","inout"],
282
+ ])
283
+
284
+ railgun.add_function( 'advapi32', 'RegEnumValueW', 'DWORD',[
285
+ ["DWORD","hKey","in"],
286
+ ["DWORD","dwIndex","in"],
287
+ ["PWCHAR","lpValueName","out"],
288
+ ["PDWORD","lpcchValueName","inout"],
289
+ ["PDWORD","lpReserved","inout"],
290
+ ["PDWORD","lpType","out"],
291
+ ["PBLOB","lpData","out"],
292
+ ["PDWORD","lpcbData","inout"],
293
+ ])
294
+
295
+ railgun.add_function( 'advapi32', 'RegFlushKey', 'DWORD',[
296
+ ["DWORD","hKey","in"],
297
+ ])
298
+
299
+ railgun.add_function( 'advapi32', 'RegGetKeySecurity', 'DWORD',[
300
+ ["DWORD","hKey","in"],
301
+ ["PBLOB","SecurityInformation","in"],
302
+ ["PBLOB","pSecurityDescriptor","out"],
303
+ ["PDWORD","lpcbSecurityDescriptor","inout"],
304
+ ])
305
+
306
+ railgun.add_function( 'advapi32', 'RegGetValueA', 'DWORD',[
307
+ ["DWORD","hkey","in"],
308
+ ["PCHAR","lpSubKey","in"],
309
+ ["PCHAR","lpValue","in"],
310
+ ["DWORD","dwFlags","in"],
311
+ ["PDWORD","pdwType","out"],
312
+ ["PBLOB","pvData","out"],
313
+ ["PDWORD","pcbData","inout"],
314
+ ])
315
+
316
+ railgun.add_function( 'advapi32', 'RegGetValueW', 'DWORD',[
317
+ ["DWORD","hkey","in"],
318
+ ["PWCHAR","lpSubKey","in"],
319
+ ["PWCHAR","lpValue","in"],
320
+ ["DWORD","dwFlags","in"],
321
+ ["PDWORD","pdwType","out"],
322
+ ["PBLOB","pvData","out"],
323
+ ["PDWORD","pcbData","inout"],
324
+ ])
325
+
326
+ railgun.add_function( 'advapi32', 'RegLoadKeyA', 'DWORD',[
327
+ ["DWORD","hKey","in"],
328
+ ["PCHAR","lpSubKey","in"],
329
+ ["PCHAR","lpFile","in"],
330
+ ])
331
+
332
+ railgun.add_function( 'advapi32', 'RegLoadKeyW', 'DWORD',[
333
+ ["DWORD","hKey","in"],
334
+ ["PWCHAR","lpSubKey","in"],
335
+ ["PWCHAR","lpFile","in"],
336
+ ])
337
+
338
+ railgun.add_function( 'advapi32', 'RegNotifyChangeKeyValue', 'DWORD',[
339
+ ["DWORD","hKey","in"],
340
+ ["BOOL","bWatchSubtree","in"],
341
+ ["DWORD","dwNotifyFilter","in"],
342
+ ["DWORD","hEvent","in"],
343
+ ["BOOL","fAsynchronous","in"],
344
+ ])
345
+
346
+ railgun.add_function( 'advapi32', 'RegOpenCurrentUser', 'DWORD',[
347
+ ["DWORD","samDesired","in"],
348
+ ["PDWORD","phkResult","out"],
349
+ ])
350
+
351
+ railgun.add_function( 'advapi32', 'RegOpenKeyA', 'DWORD',[
352
+ ["DWORD","hKey","in"],
353
+ ["PCHAR","lpSubKey","in"],
354
+ ["PDWORD","phkResult","out"],
355
+ ])
356
+
357
+ railgun.add_function( 'advapi32', 'RegOpenKeyExA', 'DWORD',[
358
+ ["DWORD","hKey","in"],
359
+ ["PCHAR","lpSubKey","in"],
360
+ ["DWORD","ulOptions","inout"],
361
+ ["DWORD","samDesired","in"],
362
+ ["PDWORD","phkResult","out"],
363
+ ])
364
+
365
+ railgun.add_function( 'advapi32', 'RegOpenKeyExW', 'DWORD',[
366
+ ["DWORD","hKey","in"],
367
+ ["PWCHAR","lpSubKey","in"],
368
+ ["DWORD","ulOptions","inout"],
369
+ ["DWORD","samDesired","in"],
370
+ ["PDWORD","phkResult","out"],
371
+ ])
372
+
373
+ railgun.add_function( 'advapi32', 'RegOpenKeyW', 'DWORD',[
374
+ ["DWORD","hKey","in"],
375
+ ["PWCHAR","lpSubKey","in"],
376
+ ["PDWORD","phkResult","out"],
377
+ ])
378
+
379
+ railgun.add_function( 'advapi32', 'RegOpenUserClassesRoot', 'DWORD',[
380
+ ["DWORD","hToken","in"],
381
+ ["DWORD","dwOptions","inout"],
382
+ ["DWORD","samDesired","in"],
383
+ ["PDWORD","phkResult","out"],
384
+ ])
385
+
386
+ railgun.add_function( 'advapi32', 'RegOverridePredefKey', 'DWORD',[
387
+ ["DWORD","hKey","in"],
388
+ ["DWORD","hNewHKey","in"],
389
+ ])
390
+
391
+ railgun.add_function( 'advapi32', 'RegQueryInfoKeyA', 'DWORD',[
392
+ ["DWORD","hKey","in"],
393
+ ["PCHAR","lpClass","out"],
394
+ ["PDWORD","lpcchClass","inout"],
395
+ ["PDWORD","lpReserved","inout"],
396
+ ["PDWORD","lpcSubKeys","out"],
397
+ ["PDWORD","lpcbMaxSubKeyLen","out"],
398
+ ["PDWORD","lpcbMaxClassLen","out"],
399
+ ["PDWORD","lpcValues","out"],
400
+ ["PDWORD","lpcbMaxValueNameLen","out"],
401
+ ["PDWORD","lpcbMaxValueLen","out"],
402
+ ["PDWORD","lpcbSecurityDescriptor","out"],
403
+ ["PBLOB","lpftLastWriteTime","out"],
404
+ ])
405
+
406
+ railgun.add_function( 'advapi32', 'RegQueryInfoKeyW', 'DWORD',[
407
+ ["DWORD","hKey","in"],
408
+ ["PWCHAR","lpClass","out"],
409
+ ["PDWORD","lpcchClass","inout"],
410
+ ["PDWORD","lpReserved","inout"],
411
+ ["PDWORD","lpcSubKeys","out"],
412
+ ["PDWORD","lpcbMaxSubKeyLen","out"],
413
+ ["PDWORD","lpcbMaxClassLen","out"],
414
+ ["PDWORD","lpcValues","out"],
415
+ ["PDWORD","lpcbMaxValueNameLen","out"],
416
+ ["PDWORD","lpcbMaxValueLen","out"],
417
+ ["PDWORD","lpcbSecurityDescriptor","out"],
418
+ ["PBLOB","lpftLastWriteTime","out"],
419
+ ])
420
+
421
+ railgun.add_function( 'advapi32', 'RegQueryMultipleValuesA', 'DWORD',[
422
+ ["DWORD","hKey","in"],
423
+ ["PBLOB","val_list","out"],
424
+ ["DWORD","num_vals","in"],
425
+ ["PCHAR","lpValueBuf","out"],
426
+ ["PDWORD","ldwTotsize","inout"],
427
+ ])
428
+
429
+ railgun.add_function( 'advapi32', 'RegQueryMultipleValuesW', 'DWORD',[
430
+ ["DWORD","hKey","in"],
431
+ ["PBLOB","val_list","out"],
432
+ ["DWORD","num_vals","in"],
433
+ ["PWCHAR","lpValueBuf","out"],
434
+ ["PDWORD","ldwTotsize","inout"],
435
+ ])
436
+
437
+ railgun.add_function( 'advapi32', 'RegQueryReflectionKey', 'DWORD',[
438
+ ["DWORD","hBase","in"],
439
+ ["PBLOB","bIsReflectionDisabled","out"],
440
+ ])
441
+
442
+ railgun.add_function( 'advapi32', 'RegQueryValueA', 'DWORD',[
443
+ ["DWORD","hKey","in"],
444
+ ["PCHAR","lpSubKey","in"],
445
+ ["PCHAR","lpData","out"],
446
+ ["PDWORD","lpcbData","inout"],
447
+ ])
448
+
449
+ railgun.add_function( 'advapi32', 'RegQueryValueExA', 'DWORD',[
450
+ ["DWORD","hKey","in"],
451
+ ["PCHAR","lpValueName","in"],
452
+ ["PDWORD","lpReserved","inout"],
453
+ ["PDWORD","lpType","out"],
454
+ ["PBLOB","lpData","out"],
455
+ ["PDWORD","lpcbData","inout"],
456
+ ])
457
+
458
+ railgun.add_function( 'advapi32', 'RegQueryValueExW', 'DWORD',[
459
+ ["DWORD","hKey","in"],
460
+ ["PWCHAR","lpValueName","in"],
461
+ ["PDWORD","lpReserved","inout"],
462
+ ["PDWORD","lpType","out"],
463
+ ["PBLOB","lpData","out"],
464
+ ["PDWORD","lpcbData","inout"],
465
+ ])
466
+
467
+ railgun.add_function( 'advapi32', 'RegQueryValueW', 'DWORD',[
468
+ ["DWORD","hKey","in"],
469
+ ["PWCHAR","lpSubKey","in"],
470
+ ["PWCHAR","lpData","out"],
471
+ ["PDWORD","lpcbData","inout"],
472
+ ])
473
+
474
+ railgun.add_function( 'advapi32', 'RegReplaceKeyA', 'DWORD',[
475
+ ["DWORD","hKey","in"],
476
+ ["PCHAR","lpSubKey","in"],
477
+ ["PCHAR","lpNewFile","in"],
478
+ ["PCHAR","lpOldFile","in"],
479
+ ])
480
+
481
+ railgun.add_function( 'advapi32', 'RegReplaceKeyW', 'DWORD',[
482
+ ["DWORD","hKey","in"],
483
+ ["PWCHAR","lpSubKey","in"],
484
+ ["PWCHAR","lpNewFile","in"],
485
+ ["PWCHAR","lpOldFile","in"],
486
+ ])
487
+
488
+ railgun.add_function( 'advapi32', 'RegRestoreKeyA', 'DWORD',[
489
+ ["DWORD","hKey","in"],
490
+ ["PCHAR","lpFile","in"],
491
+ ["DWORD","dwFlags","in"],
492
+ ])
493
+
494
+ railgun.add_function( 'advapi32', 'RegRestoreKeyW', 'DWORD',[
495
+ ["DWORD","hKey","in"],
496
+ ["PWCHAR","lpFile","in"],
497
+ ["DWORD","dwFlags","in"],
498
+ ])
499
+
500
+ railgun.add_function( 'advapi32', 'RegSaveKeyA', 'DWORD',[
501
+ ["DWORD","hKey","in"],
502
+ ["PCHAR","lpFile","in"],
503
+ ["PBLOB","lpSecurityAttributes","in"],
504
+ ])
505
+
506
+ railgun.add_function( 'advapi32', 'RegSaveKeyExA', 'DWORD',[
507
+ ["DWORD","hKey","in"],
508
+ ["PCHAR","lpFile","in"],
509
+ ["PBLOB","lpSecurityAttributes","in"],
510
+ ["DWORD","Flags","in"],
511
+ ])
512
+
513
+ railgun.add_function( 'advapi32', 'RegSaveKeyExW', 'DWORD',[
514
+ ["DWORD","hKey","in"],
515
+ ["PWCHAR","lpFile","in"],
516
+ ["PBLOB","lpSecurityAttributes","in"],
517
+ ["DWORD","Flags","in"],
518
+ ])
519
+
520
+ railgun.add_function( 'advapi32', 'RegSaveKeyW', 'DWORD',[
521
+ ["DWORD","hKey","in"],
522
+ ["PWCHAR","lpFile","in"],
523
+ ["PBLOB","lpSecurityAttributes","in"],
524
+ ])
525
+
526
+ railgun.add_function( 'advapi32', 'RegSetKeySecurity', 'DWORD',[
527
+ ["DWORD","hKey","in"],
528
+ ["PBLOB","SecurityInformation","in"],
529
+ ["PBLOB","pSecurityDescriptor","in"],
530
+ ])
531
+
532
+ railgun.add_function( 'advapi32', 'RegSetValueA', 'DWORD',[
533
+ ["DWORD","hKey","in"],
534
+ ["PCHAR","lpSubKey","in"],
535
+ ["DWORD","dwType","in"],
536
+ ["PCHAR","lpData","in"],
537
+ ["DWORD","cbData","in"],
538
+ ])
539
+
540
+ railgun.add_function( 'advapi32', 'RegSetValueExA', 'DWORD',[
541
+ ["DWORD","hKey","in"],
542
+ ["PCHAR","lpValueName","in"],
543
+ ["DWORD","Reserved","inout"],
544
+ ["DWORD","dwType","in"],
545
+ ["PBLOB","lpData","in"],
546
+ ["DWORD","cbData","in"],
547
+ ])
548
+
549
+ railgun.add_function( 'advapi32', 'RegSetValueExW', 'DWORD',[
550
+ ["DWORD","hKey","in"],
551
+ ["PWCHAR","lpValueName","in"],
552
+ ["DWORD","Reserved","inout"],
553
+ ["DWORD","dwType","in"],
554
+ ["PBLOB","lpData","in"],
555
+ ["DWORD","cbData","in"],
556
+ ])
557
+
558
+ railgun.add_function( 'advapi32', 'RegSetValueW', 'DWORD',[
559
+ ["DWORD","hKey","in"],
560
+ ["PWCHAR","lpSubKey","in"],
561
+ ["DWORD","dwType","in"],
562
+ ["PWCHAR","lpData","in"],
563
+ ["DWORD","cbData","in"],
564
+ ])
565
+
566
+ railgun.add_function( 'advapi32', 'RegUnLoadKeyA', 'DWORD',[
567
+ ["DWORD","hKey","in"],
568
+ ["PCHAR","lpSubKey","in"],
569
+ ])
570
+
571
+ railgun.add_function( 'advapi32', 'RegUnLoadKeyW', 'DWORD',[
572
+ ["DWORD","hKey","in"],
573
+ ["PWCHAR","lpSubKey","in"],
574
+ ])
575
+
576
+ railgun.add_function( 'advapi32', 'Wow64Win32ApiEntry', 'DWORD',[
577
+ ["DWORD","dwFuncNumber","in"],
578
+ ["DWORD","dwFlag","in"],
579
+ ["DWORD","dwRes","in"],
580
+ ])
581
+
582
+ railgun.add_function( 'advapi32', 'AccessCheck', 'BOOL',[
583
+ ["PBLOB","pSecurityDescriptor","in"],
584
+ ["DWORD","ClientToken","in"],
585
+ ["DWORD","DesiredAccess","in"],
586
+ ["PBLOB","GenericMapping","in"],
587
+ ["PBLOB","PrivilegeSet","out"],
588
+ ["PDWORD","PrivilegeSetLength","inout"],
589
+ ["PDWORD","GrantedAccess","out"],
590
+ ["PBLOB","AccessStatus","out"],
591
+ ])
592
+
593
+ railgun.add_function( 'advapi32', 'AccessCheckAndAuditAlarmA', 'BOOL',[
594
+ ["PCHAR","SubsystemName","in"],
595
+ ["PBLOB","HandleId","in"],
596
+ ["PCHAR","ObjectTypeName","in"],
597
+ ["PCHAR","ObjectName","in"],
598
+ ["PBLOB","SecurityDescriptor","in"],
599
+ ["DWORD","DesiredAccess","in"],
600
+ ["PBLOB","GenericMapping","in"],
601
+ ["BOOL","ObjectCreation","in"],
602
+ ["PDWORD","GrantedAccess","out"],
603
+ ["PBLOB","AccessStatus","out"],
604
+ ["PBLOB","pfGenerateOnClose","out"],
605
+ ])
606
+
607
+ railgun.add_function( 'advapi32', 'AccessCheckAndAuditAlarmW', 'BOOL',[
608
+ ["PWCHAR","SubsystemName","in"],
609
+ ["PBLOB","HandleId","in"],
610
+ ["PWCHAR","ObjectTypeName","in"],
611
+ ["PWCHAR","ObjectName","in"],
612
+ ["PBLOB","SecurityDescriptor","in"],
613
+ ["DWORD","DesiredAccess","in"],
614
+ ["PBLOB","GenericMapping","in"],
615
+ ["BOOL","ObjectCreation","in"],
616
+ ["PDWORD","GrantedAccess","out"],
617
+ ["PBLOB","AccessStatus","out"],
618
+ ["PBLOB","pfGenerateOnClose","out"],
619
+ ])
620
+
621
+ railgun.add_function( 'advapi32', 'AccessCheckByType', 'BOOL',[
622
+ ["PBLOB","pSecurityDescriptor","in"],
623
+ ["LPVOID","PrincipalSelfSid","in"],
624
+ ["DWORD","ClientToken","in"],
625
+ ["DWORD","DesiredAccess","in"],
626
+ ["PBLOB","ObjectTypeList","inout"],
627
+ ["DWORD","ObjectTypeListLength","in"],
628
+ ["PBLOB","GenericMapping","in"],
629
+ ["PBLOB","PrivilegeSet","out"],
630
+ ["PDWORD","PrivilegeSetLength","inout"],
631
+ ["PDWORD","GrantedAccess","out"],
632
+ ["PBLOB","AccessStatus","out"],
633
+ ])
634
+
635
+ railgun.add_function( 'advapi32', 'AccessCheckByTypeAndAuditAlarmA', 'BOOL',[
636
+ ["PCHAR","SubsystemName","in"],
637
+ ["PBLOB","HandleId","in"],
638
+ ["PCHAR","ObjectTypeName","in"],
639
+ ["PCHAR","ObjectName","in"],
640
+ ["PBLOB","SecurityDescriptor","in"],
641
+ ["LPVOID","PrincipalSelfSid","in"],
642
+ ["DWORD","DesiredAccess","in"],
643
+ ["DWORD","AuditType","in"],
644
+ ["DWORD","Flags","in"],
645
+ ["PBLOB","ObjectTypeList","inout"],
646
+ ["DWORD","ObjectTypeListLength","in"],
647
+ ["PBLOB","GenericMapping","in"],
648
+ ["BOOL","ObjectCreation","in"],
649
+ ["PDWORD","GrantedAccess","out"],
650
+ ["PBLOB","AccessStatus","out"],
651
+ ["PBLOB","pfGenerateOnClose","out"],
652
+ ])
653
+
654
+ railgun.add_function( 'advapi32', 'AccessCheckByTypeAndAuditAlarmW', 'BOOL',[
655
+ ["PWCHAR","SubsystemName","in"],
656
+ ["PBLOB","HandleId","in"],
657
+ ["PWCHAR","ObjectTypeName","in"],
658
+ ["PWCHAR","ObjectName","in"],
659
+ ["PBLOB","SecurityDescriptor","in"],
660
+ ["LPVOID","PrincipalSelfSid","in"],
661
+ ["DWORD","DesiredAccess","in"],
662
+ ["DWORD","AuditType","in"],
663
+ ["DWORD","Flags","in"],
664
+ ["PBLOB","ObjectTypeList","inout"],
665
+ ["DWORD","ObjectTypeListLength","in"],
666
+ ["PBLOB","GenericMapping","in"],
667
+ ["BOOL","ObjectCreation","in"],
668
+ ["PDWORD","GrantedAccess","out"],
669
+ ["PBLOB","AccessStatus","out"],
670
+ ["PBLOB","pfGenerateOnClose","out"],
671
+ ])
672
+
673
+ railgun.add_function( 'advapi32', 'AccessCheckByTypeResultList', 'BOOL',[
674
+ ["PBLOB","pSecurityDescriptor","in"],
675
+ ["LPVOID","PrincipalSelfSid","in"],
676
+ ["DWORD","ClientToken","in"],
677
+ ["DWORD","DesiredAccess","in"],
678
+ ["PBLOB","ObjectTypeList","inout"],
679
+ ["DWORD","ObjectTypeListLength","in"],
680
+ ["PBLOB","GenericMapping","in"],
681
+ ["PBLOB","PrivilegeSet","out"],
682
+ ["PDWORD","PrivilegeSetLength","inout"],
683
+ ["PDWORD","GrantedAccessList","out"],
684
+ ["PDWORD","AccessStatusList","out"],
685
+ ])
686
+
687
+ railgun.add_function( 'advapi32', 'AccessCheckByTypeResultListAndAuditAlarmA', 'BOOL',[
688
+ ["PCHAR","SubsystemName","in"],
689
+ ["PBLOB","HandleId","in"],
690
+ ["PCHAR","ObjectTypeName","in"],
691
+ ["PCHAR","ObjectName","in"],
692
+ ["PBLOB","SecurityDescriptor","in"],
693
+ ["LPVOID","PrincipalSelfSid","in"],
694
+ ["DWORD","DesiredAccess","in"],
695
+ ["DWORD","AuditType","in"],
696
+ ["DWORD","Flags","in"],
697
+ ["PBLOB","ObjectTypeList","inout"],
698
+ ["DWORD","ObjectTypeListLength","in"],
699
+ ["PBLOB","GenericMapping","in"],
700
+ ["BOOL","ObjectCreation","in"],
701
+ ["PDWORD","GrantedAccess","out"],
702
+ ["PDWORD","AccessStatusList","out"],
703
+ ["PBLOB","pfGenerateOnClose","out"],
704
+ ])
705
+
706
+ railgun.add_function( 'advapi32', 'AccessCheckByTypeResultListAndAuditAlarmByHandleA', 'BOOL',[
707
+ ["PCHAR","SubsystemName","in"],
708
+ ["PBLOB","HandleId","in"],
709
+ ["DWORD","ClientToken","in"],
710
+ ["PCHAR","ObjectTypeName","in"],
711
+ ["PCHAR","ObjectName","in"],
712
+ ["PBLOB","SecurityDescriptor","in"],
713
+ ["LPVOID","PrincipalSelfSid","in"],
714
+ ["DWORD","DesiredAccess","in"],
715
+ ["DWORD","AuditType","in"],
716
+ ["DWORD","Flags","in"],
717
+ ["PBLOB","ObjectTypeList","inout"],
718
+ ["DWORD","ObjectTypeListLength","in"],
719
+ ["PBLOB","GenericMapping","in"],
720
+ ["BOOL","ObjectCreation","in"],
721
+ ["PDWORD","GrantedAccess","out"],
722
+ ["PDWORD","AccessStatusList","out"],
723
+ ["PBLOB","pfGenerateOnClose","out"],
724
+ ])
725
+
726
+ railgun.add_function( 'advapi32', 'AccessCheckByTypeResultListAndAuditAlarmByHandleW', 'BOOL',[
727
+ ["PWCHAR","SubsystemName","in"],
728
+ ["PBLOB","HandleId","in"],
729
+ ["DWORD","ClientToken","in"],
730
+ ["PWCHAR","ObjectTypeName","in"],
731
+ ["PWCHAR","ObjectName","in"],
732
+ ["PBLOB","SecurityDescriptor","in"],
733
+ ["LPVOID","PrincipalSelfSid","in"],
734
+ ["DWORD","DesiredAccess","in"],
735
+ ["DWORD","AuditType","in"],
736
+ ["DWORD","Flags","in"],
737
+ ["PBLOB","ObjectTypeList","inout"],
738
+ ["DWORD","ObjectTypeListLength","in"],
739
+ ["PBLOB","GenericMapping","in"],
740
+ ["BOOL","ObjectCreation","in"],
741
+ ["PDWORD","GrantedAccess","out"],
742
+ ["PDWORD","AccessStatusList","out"],
743
+ ["PBLOB","pfGenerateOnClose","out"],
744
+ ])
745
+
746
+ railgun.add_function( 'advapi32', 'AccessCheckByTypeResultListAndAuditAlarmW', 'BOOL',[
747
+ ["PWCHAR","SubsystemName","in"],
748
+ ["PBLOB","HandleId","in"],
749
+ ["PWCHAR","ObjectTypeName","in"],
750
+ ["PWCHAR","ObjectName","in"],
751
+ ["PBLOB","SecurityDescriptor","in"],
752
+ ["LPVOID","PrincipalSelfSid","in"],
753
+ ["DWORD","DesiredAccess","in"],
754
+ ["DWORD","AuditType","in"],
755
+ ["DWORD","Flags","in"],
756
+ ["PBLOB","ObjectTypeList","inout"],
757
+ ["DWORD","ObjectTypeListLength","in"],
758
+ ["PBLOB","GenericMapping","in"],
759
+ ["BOOL","ObjectCreation","in"],
760
+ ["PDWORD","GrantedAccess","out"],
761
+ ["PDWORD","AccessStatusList","out"],
762
+ ["PBLOB","pfGenerateOnClose","out"],
763
+ ])
764
+
765
+ railgun.add_function( 'advapi32', 'AddAccessAllowedAce', 'BOOL',[
766
+ ["PBLOB","pAcl","inout"],
767
+ ["DWORD","dwAceRevision","in"],
768
+ ["DWORD","AccessMask","in"],
769
+ ["LPVOID","pSid","in"],
770
+ ])
771
+
772
+ railgun.add_function( 'advapi32', 'AddAccessAllowedAceEx', 'BOOL',[
773
+ ["PBLOB","pAcl","inout"],
774
+ ["DWORD","dwAceRevision","in"],
775
+ ["DWORD","AceFlags","in"],
776
+ ["DWORD","AccessMask","in"],
777
+ ["LPVOID","pSid","in"],
778
+ ])
779
+
780
+ railgun.add_function( 'advapi32', 'AddAccessAllowedObjectAce', 'BOOL',[
781
+ ["PBLOB","pAcl","inout"],
782
+ ["DWORD","dwAceRevision","in"],
783
+ ["DWORD","AceFlags","in"],
784
+ ["DWORD","AccessMask","in"],
785
+ ["PBLOB","ObjectTypeGuid","in"],
786
+ ["PBLOB","InheritedObjectTypeGuid","in"],
787
+ ["LPVOID","pSid","in"],
788
+ ])
789
+
790
+ railgun.add_function( 'advapi32', 'AddAccessDeniedAce', 'BOOL',[
791
+ ["PBLOB","pAcl","inout"],
792
+ ["DWORD","dwAceRevision","in"],
793
+ ["DWORD","AccessMask","in"],
794
+ ["LPVOID","pSid","in"],
795
+ ])
796
+
797
+ railgun.add_function( 'advapi32', 'AddAccessDeniedAceEx', 'BOOL',[
798
+ ["PBLOB","pAcl","inout"],
799
+ ["DWORD","dwAceRevision","in"],
800
+ ["DWORD","AceFlags","in"],
801
+ ["DWORD","AccessMask","in"],
802
+ ["LPVOID","pSid","in"],
803
+ ])
804
+
805
+ railgun.add_function( 'advapi32', 'AddAccessDeniedObjectAce', 'BOOL',[
806
+ ["PBLOB","pAcl","inout"],
807
+ ["DWORD","dwAceRevision","in"],
808
+ ["DWORD","AceFlags","in"],
809
+ ["DWORD","AccessMask","in"],
810
+ ["PBLOB","ObjectTypeGuid","in"],
811
+ ["PBLOB","InheritedObjectTypeGuid","in"],
812
+ ["LPVOID","pSid","in"],
813
+ ])
814
+
815
+ railgun.add_function( 'advapi32', 'AddAce', 'BOOL',[
816
+ ["PBLOB","pAcl","inout"],
817
+ ["DWORD","dwAceRevision","in"],
818
+ ["DWORD","dwStartingAceIndex","in"],
819
+ ["PBLOB","pAceList","in"],
820
+ ["DWORD","nAceListLength","in"],
821
+ ])
822
+
823
+ railgun.add_function( 'advapi32', 'AddAuditAccessAce', 'BOOL',[
824
+ ["PBLOB","pAcl","inout"],
825
+ ["DWORD","dwAceRevision","in"],
826
+ ["DWORD","dwAccessMask","in"],
827
+ ["LPVOID","pSid","in"],
828
+ ["BOOL","bAuditSuccess","in"],
829
+ ["BOOL","bAuditFailure","in"],
830
+ ])
831
+
832
+ railgun.add_function( 'advapi32', 'AddAuditAccessAceEx', 'BOOL',[
833
+ ["PBLOB","pAcl","inout"],
834
+ ["DWORD","dwAceRevision","in"],
835
+ ["DWORD","AceFlags","in"],
836
+ ["DWORD","dwAccessMask","in"],
837
+ ["LPVOID","pSid","in"],
838
+ ["BOOL","bAuditSuccess","in"],
839
+ ["BOOL","bAuditFailure","in"],
840
+ ])
841
+
842
+ railgun.add_function( 'advapi32', 'AddAuditAccessObjectAce', 'BOOL',[
843
+ ["PBLOB","pAcl","inout"],
844
+ ["DWORD","dwAceRevision","in"],
845
+ ["DWORD","AceFlags","in"],
846
+ ["DWORD","AccessMask","in"],
847
+ ["PBLOB","ObjectTypeGuid","in"],
848
+ ["PBLOB","InheritedObjectTypeGuid","in"],
849
+ ["LPVOID","pSid","in"],
850
+ ["BOOL","bAuditSuccess","in"],
851
+ ["BOOL","bAuditFailure","in"],
852
+ ])
853
+
854
+ railgun.add_function( 'advapi32', 'AdjustTokenGroups', 'BOOL',[
855
+ ["DWORD","TokenHandle","in"],
856
+ ["BOOL","ResetToDefault","in"],
857
+ ["PBLOB","NewState","in"],
858
+ ["DWORD","BufferLength","in"],
859
+ ["PBLOB","PreviousState","out"],
860
+ ["PDWORD","ReturnLength","out"],
861
+ ])
862
+
863
+ railgun.add_function( 'advapi32', 'AdjustTokenPrivileges', 'BOOL',[
864
+ ["DWORD","TokenHandle","in"],
865
+ ["BOOL","DisableAllPrivileges","in"],
866
+ ["PBLOB","NewState","in"],
867
+ ["DWORD","BufferLength","in"],
868
+ ["PBLOB","PreviousState","out"],
869
+ ["PDWORD","ReturnLength","out"],
870
+ ])
871
+
872
+ railgun.add_function( 'advapi32', 'AllocateAndInitializeSid', 'BOOL',[
873
+ ["PBLOB","pIdentifierAuthority","in"],
874
+ ["BYTE","nSubAuthorityCount","in"],
875
+ ["DWORD","nSubAuthority0","in"],
876
+ ["DWORD","nSubAuthority1","in"],
877
+ ["DWORD","nSubAuthority2","in"],
878
+ ["DWORD","nSubAuthority3","in"],
879
+ ["DWORD","nSubAuthority4","in"],
880
+ ["DWORD","nSubAuthority5","in"],
881
+ ["DWORD","nSubAuthority6","in"],
882
+ ["DWORD","nSubAuthority7","in"],
883
+ ["PDWORD","pSid","out"],
884
+ ])
885
+
886
+ railgun.add_function( 'advapi32', 'AllocateLocallyUniqueId', 'BOOL',[
887
+ ["PBLOB","Luid","out"],
888
+ ])
889
+
890
+ railgun.add_function( 'advapi32', 'AreAllAccessesGranted', 'BOOL',[
891
+ ["DWORD","GrantedAccess","in"],
892
+ ["DWORD","DesiredAccess","in"],
893
+ ])
894
+
895
+ railgun.add_function( 'advapi32', 'AreAnyAccessesGranted', 'BOOL',[
896
+ ["DWORD","GrantedAccess","in"],
897
+ ["DWORD","DesiredAccess","in"],
898
+ ])
899
+
900
+ railgun.add_function( 'advapi32', 'BackupEventLogA', 'BOOL',[
901
+ ["DWORD","hEventLog","in"],
902
+ ["PCHAR","lpBackupFileName","in"],
903
+ ])
904
+
905
+ railgun.add_function( 'advapi32', 'BackupEventLogW', 'BOOL',[
906
+ ["DWORD","hEventLog","in"],
907
+ ["PWCHAR","lpBackupFileName","in"],
908
+ ])
909
+
910
+ railgun.add_function( 'advapi32', 'CheckTokenMembership', 'BOOL',[
911
+ ["DWORD","TokenHandle","in"],
912
+ ["PBLOB","SidToCheck","in"],
913
+ ["PBLOB","IsMember","out"],
914
+ ])
915
+
916
+ railgun.add_function( 'advapi32', 'ClearEventLogA', 'BOOL',[
917
+ ["DWORD","hEventLog","in"],
918
+ ["PCHAR","lpBackupFileName","in"],
919
+ ])
920
+
921
+ railgun.add_function( 'advapi32', 'ClearEventLogW', 'BOOL',[
922
+ ["DWORD","hEventLog","in"],
923
+ ["PWCHAR","lpBackupFileName","in"],
924
+ ])
925
+
926
+ railgun.add_function( 'advapi32', 'CloseEncryptedFileRaw', 'VOID',[
927
+ ["PBLOB","pvContext","in"],
928
+ ])
929
+
930
+ railgun.add_function( 'advapi32', 'CloseEventLog', 'BOOL',[
931
+ ["DWORD","hEventLog","in"],
932
+ ])
933
+
934
+ railgun.add_function( 'advapi32', 'ConvertToAutoInheritPrivateObjectSecurity', 'BOOL',[
935
+ ["PBLOB","ParentDescriptor","in"],
936
+ ["PBLOB","CurrentSecurityDescriptor","in"],
937
+ ["PBLOB","NewSecurityDescriptor","out"],
938
+ ["PBLOB","ObjectType","in"],
939
+ ["BOOL","IsDirectoryObject","in"],
940
+ ["PBLOB","GenericMapping","in"],
941
+ ])
942
+
943
+ railgun.add_function( 'advapi32', 'ConvertStringSidToSidA', 'BOOL',[
944
+ ["PCHAR","StringSid","in"],
945
+ ["PDWORD","pSid","out"],
946
+ ])
947
+
948
+ railgun.add_function( 'advapi32', 'ConvertStringSidToSidW', 'BOOL',[
949
+ ["PWCHAR","StringSid","in"],
950
+ ["PDWORD","pSid","out"],
951
+ ])
952
+
953
+ railgun.add_function( 'advapi32', 'CopySid', 'BOOL',[
954
+ ["DWORD","nDestinationSidLength","in"],
955
+ ["PBLOB","pDestinationSid","out"],
956
+ ["LPVOID","pSourceSid","in"],
957
+ ])
958
+
959
+ railgun.add_function( 'advapi32', 'CreatePrivateObjectSecurity', 'BOOL',[
960
+ ["PBLOB","ParentDescriptor","in"],
961
+ ["PBLOB","CreatorDescriptor","in"],
962
+ ["PBLOB","NewDescriptor","out"],
963
+ ["BOOL","IsDirectoryObject","in"],
964
+ ["DWORD","Token","in"],
965
+ ["PBLOB","GenericMapping","in"],
966
+ ])
967
+
968
+ railgun.add_function( 'advapi32', 'CreatePrivateObjectSecurityEx', 'BOOL',[
969
+ ["PBLOB","ParentDescriptor","in"],
970
+ ["PBLOB","CreatorDescriptor","in"],
971
+ ["PBLOB","NewDescriptor","out"],
972
+ ["PBLOB","ObjectType","in"],
973
+ ["BOOL","IsContainerObject","in"],
974
+ ["DWORD","AutoInheritFlags","in"],
975
+ ["DWORD","Token","in"],
976
+ ["PBLOB","GenericMapping","in"],
977
+ ])
978
+
979
+ railgun.add_function( 'advapi32', 'CreatePrivateObjectSecurityWithMultipleInheritance', 'BOOL',[
980
+ ["PBLOB","ParentDescriptor","in"],
981
+ ["PBLOB","CreatorDescriptor","in"],
982
+ ["PBLOB","NewDescriptor","out"],
983
+ ["PBLOB","ObjectTypes","in"],
984
+ ["DWORD","GuidCount","in"],
985
+ ["BOOL","IsContainerObject","in"],
986
+ ["DWORD","AutoInheritFlags","in"],
987
+ ["DWORD","Token","in"],
988
+ ["PBLOB","GenericMapping","in"],
989
+ ])
990
+
991
+ railgun.add_function( 'advapi32', 'CreateProcessAsUserA', 'BOOL',[
992
+ ["DWORD","hToken","in"],
993
+ ["PCHAR","lpApplicationName","in"],
994
+ ["PCHAR","lpCommandLine","inout"],
995
+ ["PBLOB","lpProcessAttributes","in"],
996
+ ["PBLOB","lpThreadAttributes","in"],
997
+ ["BOOL","bInheritHandles","in"],
998
+ ["DWORD","dwCreationFlags","in"],
999
+ ["PBLOB","lpEnvironment","in"],
1000
+ ["PCHAR","lpCurrentDirectory","in"],
1001
+ ["PBLOB","lpStartupInfo","in"],
1002
+ ["PBLOB","lpProcessInformation","out"],
1003
+ ])
1004
+
1005
+ railgun.add_function( 'advapi32', 'CreateProcessAsUserW', 'BOOL',[
1006
+ ["DWORD","hToken","in"],
1007
+ ["PWCHAR","lpApplicationName","in"],
1008
+ ["PWCHAR","lpCommandLine","inout"],
1009
+ ["PBLOB","lpProcessAttributes","in"],
1010
+ ["PBLOB","lpThreadAttributes","in"],
1011
+ ["BOOL","bInheritHandles","in"],
1012
+ ["DWORD","dwCreationFlags","in"],
1013
+ ["PBLOB","lpEnvironment","in"],
1014
+ ["PWCHAR","lpCurrentDirectory","in"],
1015
+ ["PBLOB","lpStartupInfo","in"],
1016
+ ["PBLOB","lpProcessInformation","out"],
1017
+ ])
1018
+
1019
+ railgun.add_function( 'advapi32', 'CreateProcessWithLogonW', 'BOOL',[
1020
+ ["PWCHAR","lpUsername","in"],
1021
+ ["PWCHAR","lpDomain","in"],
1022
+ ["PWCHAR","lpPassword","in"],
1023
+ ["DWORD","dwLogonFlags","in"],
1024
+ ["PWCHAR","lpApplicationName","in"],
1025
+ ["PWCHAR","lpCommandLine","inout"],
1026
+ ["DWORD","dwCreationFlags","in"],
1027
+ ["PBLOB","lpEnvironment","in"],
1028
+ ["PWCHAR","lpCurrentDirectory","in"],
1029
+ ["PBLOB","lpStartupInfo","in"],
1030
+ ["PBLOB","lpProcessInformation","out"],
1031
+ ])
1032
+
1033
+ railgun.add_function( 'advapi32', 'CreateProcessWithTokenW', 'BOOL',[
1034
+ ["DWORD","hToken","in"],
1035
+ ["DWORD","dwLogonFlags","in"],
1036
+ ["PWCHAR","lpApplicationName","in"],
1037
+ ["PWCHAR","lpCommandLine","inout"],
1038
+ ["DWORD","dwCreationFlags","in"],
1039
+ ["PBLOB","lpEnvironment","in"],
1040
+ ["PWCHAR","lpCurrentDirectory","in"],
1041
+ ["PBLOB","lpStartupInfo","in"],
1042
+ ["PBLOB","lpProcessInformation","out"],
1043
+ ])
1044
+
1045
+ railgun.add_function( 'advapi32', 'CreateRestrictedToken', 'BOOL',[
1046
+ ["DWORD","ExistingTokenHandle","in"],
1047
+ ["DWORD","Flags","in"],
1048
+ ["DWORD","DisableSidCount","in"],
1049
+ ["PBLOB","SidsToDisable","in"],
1050
+ ["DWORD","DeletePrivilegeCount","in"],
1051
+ ["PBLOB","PrivilegesToDelete","in"],
1052
+ ["DWORD","RestrictedSidCount","in"],
1053
+ ["PBLOB","SidsToRestrict","in"],
1054
+ ["PDWORD","NewTokenHandle","out"],
1055
+ ])
1056
+
1057
+ railgun.add_function( 'advapi32', 'CreateWellKnownSid', 'BOOL',[
1058
+ ["DWORD","WellKnownSidType","in"],
1059
+ ["PBLOB","DomainSid","in"],
1060
+ ["PBLOB","pSid","out"],
1061
+ ["PDWORD","cbSid","inout"],
1062
+ ])
1063
+
1064
+ railgun.add_function( 'advapi32', 'DecryptFileA', 'BOOL',[
1065
+ ["PCHAR","lpFileName","in"],
1066
+ ["DWORD","dwReserved","inout"],
1067
+ ])
1068
+
1069
+ railgun.add_function( 'advapi32', 'DecryptFileW', 'BOOL',[
1070
+ ["PWCHAR","lpFileName","in"],
1071
+ ["DWORD","dwReserved","inout"],
1072
+ ])
1073
+
1074
+ railgun.add_function( 'advapi32', 'DeleteAce', 'BOOL',[
1075
+ ["PBLOB","pAcl","inout"],
1076
+ ["DWORD","dwAceIndex","in"],
1077
+ ])
1078
+
1079
+ railgun.add_function( 'advapi32', 'DeregisterEventSource', 'BOOL',[
1080
+ ["DWORD","hEventLog","in"],
1081
+ ])
1082
+
1083
+ railgun.add_function( 'advapi32', 'DestroyPrivateObjectSecurity', 'BOOL',[
1084
+ ["PBLOB","ObjectDescriptor","in"],
1085
+ ])
1086
+
1087
+ railgun.add_function( 'advapi32', 'DuplicateToken', 'BOOL',[
1088
+ ["DWORD","ExistingTokenHandle","in"],
1089
+ ["DWORD","ImpersonationLevel","in"],
1090
+ ["PDWORD","DuplicateTokenHandle","out"],
1091
+ ])
1092
+
1093
+ railgun.add_function( 'advapi32', 'DuplicateTokenEx', 'BOOL',[
1094
+ ["DWORD","hExistingToken","in"],
1095
+ ["DWORD","dwDesiredAccess","in"],
1096
+ ["PBLOB","lpTokenAttributes","in"],
1097
+ ["DWORD","ImpersonationLevel","in"],
1098
+ ["DWORD","TokenType","in"],
1099
+ ["PDWORD","phNewToken","out"],
1100
+ ])
1101
+
1102
+ railgun.add_function( 'advapi32', 'EncryptFileA', 'BOOL',[
1103
+ ["PCHAR","lpFileName","in"],
1104
+ ])
1105
+
1106
+ railgun.add_function( 'advapi32', 'EncryptFileW', 'BOOL',[
1107
+ ["PWCHAR","lpFileName","in"],
1108
+ ])
1109
+
1110
+ railgun.add_function( 'advapi32', 'EqualDomainSid', 'BOOL',[
1111
+ ["LPVOID","pSid1","in"],
1112
+ ["LPVOID","pSid2","in"],
1113
+ ["PBLOB","pfEqual","out"],
1114
+ ])
1115
+
1116
+ railgun.add_function( 'advapi32', 'EqualPrefixSid', 'BOOL',[
1117
+ ["LPVOID","pSid1","in"],
1118
+ ["LPVOID","pSid2","in"],
1119
+ ])
1120
+
1121
+ railgun.add_function( 'advapi32', 'EqualSid', 'BOOL',[
1122
+ ["LPVOID","pSid1","in"],
1123
+ ["LPVOID","pSid2","in"],
1124
+ ])
1125
+
1126
+ railgun.add_function( 'advapi32', 'FileEncryptionStatusA', 'BOOL',[
1127
+ ["PCHAR","lpFileName","in"],
1128
+ ["PDWORD","lpStatus","out"],
1129
+ ])
1130
+
1131
+ railgun.add_function( 'advapi32', 'FileEncryptionStatusW', 'BOOL',[
1132
+ ["PWCHAR","lpFileName","in"],
1133
+ ["PDWORD","lpStatus","out"],
1134
+ ])
1135
+
1136
+ railgun.add_function( 'advapi32', 'FindFirstFreeAce', 'BOOL',[
1137
+ ["PBLOB","pAcl","in"],
1138
+ ["PBLOB","pAce","out"],
1139
+ ])
1140
+
1141
+ railgun.add_function( 'advapi32', 'FreeSid', 'LPVOID',[
1142
+ ["LPVOID","pSid","in"],
1143
+ ])
1144
+
1145
+ railgun.add_function( 'advapi32', 'GetAce', 'BOOL',[
1146
+ ["PBLOB","pAcl","in"],
1147
+ ["DWORD","dwAceIndex","in"],
1148
+ ["PBLOB","pAce","out"],
1149
+ ])
1150
+
1151
+ railgun.add_function( 'advapi32', 'GetAclInformation', 'BOOL',[
1152
+ ["PBLOB","pAcl","in"],
1153
+ ["PBLOB","pAclInformation","out"],
1154
+ ["DWORD","nAclInformationLength","in"],
1155
+ ["DWORD","dwAclInformationClass","in"],
1156
+ ])
1157
+
1158
+ railgun.add_function( 'advapi32', 'GetCurrentHwProfileA', 'BOOL',[
1159
+ ["PBLOB","lpHwProfileInfo","out"],
1160
+ ])
1161
+
1162
+ railgun.add_function( 'advapi32', 'GetCurrentHwProfileW', 'BOOL',[
1163
+ ["PBLOB","lpHwProfileInfo","out"],
1164
+ ])
1165
+
1166
+ railgun.add_function( 'advapi32', 'GetEventLogInformation', 'BOOL',[
1167
+ ["DWORD","hEventLog","in"],
1168
+ ["DWORD","dwInfoLevel","in"],
1169
+ ["PBLOB","lpBuffer","out"],
1170
+ ["DWORD","cbBufSize","in"],
1171
+ ["PDWORD","pcbBytesNeeded","out"],
1172
+ ])
1173
+
1174
+ railgun.add_function( 'advapi32', 'GetFileSecurityA', 'BOOL',[
1175
+ ["PCHAR","lpFileName","in"],
1176
+ ["PBLOB","RequestedInformation","in"],
1177
+ ["PBLOB","pSecurityDescriptor","out"],
1178
+ ["DWORD","nLength","in"],
1179
+ ["PDWORD","lpnLengthNeeded","out"],
1180
+ ])
1181
+
1182
+ railgun.add_function( 'advapi32', 'GetFileSecurityW', 'BOOL',[
1183
+ ["PWCHAR","lpFileName","in"],
1184
+ ["PBLOB","RequestedInformation","in"],
1185
+ ["PBLOB","pSecurityDescriptor","out"],
1186
+ ["DWORD","nLength","in"],
1187
+ ["PDWORD","lpnLengthNeeded","out"],
1188
+ ])
1189
+
1190
+ railgun.add_function( 'advapi32', 'GetKernelObjectSecurity', 'BOOL',[
1191
+ ["DWORD","Handle","in"],
1192
+ ["PBLOB","RequestedInformation","in"],
1193
+ ["PBLOB","pSecurityDescriptor","out"],
1194
+ ["DWORD","nLength","in"],
1195
+ ["PDWORD","lpnLengthNeeded","out"],
1196
+ ])
1197
+
1198
+ railgun.add_function( 'advapi32', 'GetLengthSid', 'DWORD',[
1199
+ ["LPVOID","pSid","in"],
1200
+ ])
1201
+
1202
+ railgun.add_function( 'advapi32', 'GetNumberOfEventLogRecords', 'BOOL',[
1203
+ ["DWORD","hEventLog","in"],
1204
+ ["PDWORD","NumberOfRecords","out"],
1205
+ ])
1206
+
1207
+ railgun.add_function( 'advapi32', 'GetOldestEventLogRecord', 'BOOL',[
1208
+ ["DWORD","hEventLog","in"],
1209
+ ["PDWORD","OldestRecord","out"],
1210
+ ])
1211
+
1212
+ railgun.add_function( 'advapi32', 'GetPrivateObjectSecurity', 'BOOL',[
1213
+ ["PBLOB","ObjectDescriptor","in"],
1214
+ ["PBLOB","SecurityInformation","in"],
1215
+ ["PBLOB","ResultantDescriptor","out"],
1216
+ ["DWORD","DescriptorLength","in"],
1217
+ ["PDWORD","ReturnLength","out"],
1218
+ ])
1219
+
1220
+ railgun.add_function( 'advapi32', 'GetSecurityDescriptorControl', 'BOOL',[
1221
+ ["PBLOB","pSecurityDescriptor","in"],
1222
+ ["PBLOB","pControl","out"],
1223
+ ["PDWORD","lpdwRevision","out"],
1224
+ ])
1225
+
1226
+ railgun.add_function( 'advapi32', 'GetSecurityDescriptorDacl', 'BOOL',[
1227
+ ["PBLOB","pSecurityDescriptor","in"],
1228
+ ["PBLOB","lpbDaclPresent","out"],
1229
+ ["PBLOB","pDacl","out"],
1230
+ ["PBLOB","lpbDaclDefaulted","out"],
1231
+ ])
1232
+
1233
+ railgun.add_function( 'advapi32', 'GetSecurityDescriptorGroup', 'BOOL',[
1234
+ ["PBLOB","pSecurityDescriptor","in"],
1235
+ ["PBLOB","pGroup","out"],
1236
+ ["PBLOB","lpbGroupDefaulted","out"],
1237
+ ])
1238
+
1239
+ railgun.add_function( 'advapi32', 'GetSecurityDescriptorLength', 'DWORD',[
1240
+ ["PBLOB","pSecurityDescriptor","in"],
1241
+ ])
1242
+
1243
+ railgun.add_function( 'advapi32', 'GetSecurityDescriptorOwner', 'BOOL',[
1244
+ ["PBLOB","pSecurityDescriptor","in"],
1245
+ ["PBLOB","pOwner","out"],
1246
+ ["PBLOB","lpbOwnerDefaulted","out"],
1247
+ ])
1248
+
1249
+ railgun.add_function( 'advapi32', 'GetSecurityDescriptorRMControl', 'DWORD',[
1250
+ ["PBLOB","SecurityDescriptor","in"],
1251
+ ["PBLOB","RMControl","out"],
1252
+ ])
1253
+
1254
+ railgun.add_function( 'advapi32', 'GetSecurityDescriptorSacl', 'BOOL',[
1255
+ ["PBLOB","pSecurityDescriptor","in"],
1256
+ ["PBLOB","lpbSaclPresent","out"],
1257
+ ["PBLOB","pSacl","out"],
1258
+ ["PBLOB","lpbSaclDefaulted","out"],
1259
+ ])
1260
+
1261
+ railgun.add_function( 'advapi32', 'GetSidLengthRequired', 'DWORD',[
1262
+ ["BYTE","nSubAuthorityCount","in"],
1263
+ ])
1264
+
1265
+ railgun.add_function( 'advapi32', 'GetTokenInformation', 'BOOL',[
1266
+ ["DWORD","TokenHandle","in"],
1267
+ ["DWORD","TokenInformationClass","in"],
1268
+ ["PBLOB","TokenInformation","out"],
1269
+ ["DWORD","TokenInformationLength","in"],
1270
+ ["PDWORD","ReturnLength","out"],
1271
+ ])
1272
+
1273
+ railgun.add_function( 'advapi32', 'GetUserNameA', 'BOOL',[
1274
+ ["PCHAR","lpBuffer","out"],
1275
+ ["PDWORD","pcbBuffer","inout"],
1276
+ ])
1277
+
1278
+ railgun.add_function( 'advapi32', 'GetUserNameW', 'BOOL',[
1279
+ ["PWCHAR","lpBuffer","out"],
1280
+ ["PDWORD","pcbBuffer","inout"],
1281
+ ])
1282
+
1283
+ railgun.add_function( 'advapi32', 'GetWindowsAccountDomainSid', 'BOOL',[
1284
+ ["LPVOID","pSid","in"],
1285
+ ["PBLOB","pDomainSid","out"],
1286
+ ["PDWORD","cbDomainSid","inout"],
1287
+ ])
1288
+
1289
+ railgun.add_function( 'advapi32', 'ImpersonateAnonymousToken', 'BOOL',[
1290
+ ["DWORD","ThreadHandle","in"],
1291
+ ])
1292
+
1293
+ railgun.add_function( 'advapi32', 'ImpersonateLoggedOnUser', 'BOOL',[
1294
+ ["DWORD","hToken","in"],
1295
+ ])
1296
+
1297
+ railgun.add_function( 'advapi32', 'ImpersonateNamedPipeClient', 'BOOL',[
1298
+ ["DWORD","hNamedPipe","in"],
1299
+ ])
1300
+
1301
+ railgun.add_function( 'advapi32', 'ImpersonateSelf', 'BOOL',[
1302
+ ["DWORD","ImpersonationLevel","in"],
1303
+ ])
1304
+
1305
+ railgun.add_function( 'advapi32', 'InitializeAcl', 'BOOL',[
1306
+ ["PBLOB","pAcl","out"],
1307
+ ["DWORD","nAclLength","in"],
1308
+ ["DWORD","dwAclRevision","in"],
1309
+ ])
1310
+
1311
+ railgun.add_function( 'advapi32', 'InitializeSecurityDescriptor', 'BOOL',[
1312
+ ["PBLOB","pSecurityDescriptor","out"],
1313
+ ["DWORD","dwRevision","in"],
1314
+ ])
1315
+
1316
+ railgun.add_function( 'advapi32', 'InitializeSid', 'BOOL',[
1317
+ ["PBLOB","Sid","out"],
1318
+ ["PBLOB","pIdentifierAuthority","in"],
1319
+ ["BYTE","nSubAuthorityCount","in"],
1320
+ ])
1321
+
1322
+ railgun.add_function( 'advapi32', 'IsTextUnicode', 'BOOL',[
1323
+ ["DWORD","iSize","in"],
1324
+ ["PDWORD","lpiResult","inout"],
1325
+ ])
1326
+
1327
+ railgun.add_function( 'advapi32', 'IsTokenRestricted', 'BOOL',[
1328
+ ["DWORD","TokenHandle","in"],
1329
+ ])
1330
+
1331
+ railgun.add_function( 'advapi32', 'IsTokenUntrusted', 'BOOL',[
1332
+ ["DWORD","TokenHandle","in"],
1333
+ ])
1334
+
1335
+ railgun.add_function( 'advapi32', 'IsValidAcl', 'BOOL',[
1336
+ ["PBLOB","pAcl","in"],
1337
+ ])
1338
+
1339
+ railgun.add_function( 'advapi32', 'IsValidSecurityDescriptor', 'BOOL',[
1340
+ ["PBLOB","pSecurityDescriptor","in"],
1341
+ ])
1342
+
1343
+ railgun.add_function( 'advapi32', 'IsValidSid', 'BOOL',[
1344
+ ["LPVOID","pSid","in"],
1345
+ ])
1346
+
1347
+ railgun.add_function( 'advapi32', 'IsWellKnownSid', 'BOOL',[
1348
+ ["LPVOID","pSid","in"],
1349
+ ["DWORD","WellKnownSidType","in"],
1350
+ ])
1351
+
1352
+ railgun.add_function( 'advapi32', 'LogonUserA', 'BOOL',[
1353
+ ["PCHAR","lpszUsername","in"],
1354
+ ["PCHAR","lpszDomain","in"],
1355
+ ["PCHAR","lpszPassword","in"],
1356
+ ["DWORD","dwLogonType","in"],
1357
+ ["DWORD","dwLogonProvider","in"],
1358
+ ["PDWORD","phToken","out"],
1359
+ ])
1360
+
1361
+ railgun.add_function( 'advapi32', 'LogonUserExA', 'BOOL',[
1362
+ ["PCHAR","lpszUsername","in"],
1363
+ ["PCHAR","lpszDomain","in"],
1364
+ ["PCHAR","lpszPassword","in"],
1365
+ ["DWORD","dwLogonType","in"],
1366
+ ["DWORD","dwLogonProvider","in"],
1367
+ ["PDWORD","phToken","out"],
1368
+ ["PDWORD","ppLogonSid","out"],
1369
+ ["PBLOB","ppProfileBuffer","out"],
1370
+ ["PDWORD","pdwProfileLength","out"],
1371
+ ["PBLOB","pQuotaLimits","out"],
1372
+ ])
1373
+
1374
+ railgun.add_function( 'advapi32', 'LogonUserExW', 'BOOL',[
1375
+ ["PWCHAR","lpszUsername","in"],
1376
+ ["PWCHAR","lpszDomain","in"],
1377
+ ["PWCHAR","lpszPassword","in"],
1378
+ ["DWORD","dwLogonType","in"],
1379
+ ["DWORD","dwLogonProvider","in"],
1380
+ ["PDWORD","phToken","out"],
1381
+ ["PDWORD","ppLogonSid","out"],
1382
+ ["PBLOB","ppProfileBuffer","out"],
1383
+ ["PDWORD","pdwProfileLength","out"],
1384
+ ["PBLOB","pQuotaLimits","out"],
1385
+ ])
1386
+
1387
+ railgun.add_function( 'advapi32', 'LogonUserW', 'BOOL',[
1388
+ ["PWCHAR","lpszUsername","in"],
1389
+ ["PWCHAR","lpszDomain","in"],
1390
+ ["PWCHAR","lpszPassword","in"],
1391
+ ["DWORD","dwLogonType","in"],
1392
+ ["DWORD","dwLogonProvider","in"],
1393
+ ["PDWORD","phToken","out"],
1394
+ ])
1395
+
1396
+ railgun.add_function( 'advapi32', 'LookupAccountNameA', 'BOOL',[
1397
+ ["PCHAR","lpSystemName","in"],
1398
+ ["PCHAR","lpAccountName","in"],
1399
+ ["PBLOB","Sid","out"],
1400
+ ["PDWORD","cbSid","inout"],
1401
+ ["PCHAR","ReferencedDomainName","out"],
1402
+ ["PDWORD","cchReferencedDomainName","inout"],
1403
+ ["PBLOB","peUse","out"],
1404
+ ])
1405
+
1406
+ railgun.add_function( 'advapi32', 'LookupAccountNameW', 'BOOL',[
1407
+ ["PWCHAR","lpSystemName","in"],
1408
+ ["PWCHAR","lpAccountName","in"],
1409
+ ["PBLOB","Sid","out"],
1410
+ ["PDWORD","cbSid","inout"],
1411
+ ["PWCHAR","ReferencedDomainName","out"],
1412
+ ["PDWORD","cchReferencedDomainName","inout"],
1413
+ ["PBLOB","peUse","out"],
1414
+ ])
1415
+
1416
+ railgun.add_function( 'advapi32', 'LookupAccountSidA', 'BOOL',[
1417
+ ["PCHAR","lpSystemName","in"],
1418
+ ["LPVOID","Sid","in"],
1419
+ ["PCHAR","Name","out"],
1420
+ ["PDWORD","cchName","inout"],
1421
+ ["PCHAR","ReferencedDomainName","out"],
1422
+ ["PDWORD","cchReferencedDomainName","inout"],
1423
+ ["PBLOB","peUse","out"],
1424
+ ])
1425
+
1426
+ railgun.add_function( 'advapi32', 'LookupAccountSidW', 'BOOL',[
1427
+ ["PWCHAR","lpSystemName","in"],
1428
+ ["LPVOID","Sid","in"],
1429
+ ["PWCHAR","Name","out"],
1430
+ ["PDWORD","cchName","inout"],
1431
+ ["PWCHAR","ReferencedDomainName","out"],
1432
+ ["PDWORD","cchReferencedDomainName","inout"],
1433
+ ["PBLOB","peUse","out"],
1434
+ ])
1435
+
1436
+ railgun.add_function( 'advapi32', 'LookupPrivilegeDisplayNameA', 'BOOL',[
1437
+ ["PCHAR","lpSystemName","in"],
1438
+ ["PCHAR","lpName","in"],
1439
+ ["PCHAR","lpDisplayName","out"],
1440
+ ["PDWORD","cchDisplayName","inout"],
1441
+ ["PDWORD","lpLanguageId","out"],
1442
+ ])
1443
+
1444
+ railgun.add_function( 'advapi32', 'LookupPrivilegeDisplayNameW', 'BOOL',[
1445
+ ["PWCHAR","lpSystemName","in"],
1446
+ ["PWCHAR","lpName","in"],
1447
+ ["PWCHAR","lpDisplayName","out"],
1448
+ ["PDWORD","cchDisplayName","inout"],
1449
+ ["PDWORD","lpLanguageId","out"],
1450
+ ])
1451
+
1452
+ railgun.add_function( 'advapi32', 'LookupPrivilegeNameA', 'BOOL',[
1453
+ ["PCHAR","lpSystemName","in"],
1454
+ ["PBLOB","lpLuid","in"],
1455
+ ["PCHAR","lpName","out"],
1456
+ ["PDWORD","cchName","inout"],
1457
+ ])
1458
+
1459
+ railgun.add_function( 'advapi32', 'LookupPrivilegeNameW', 'BOOL',[
1460
+ ["PWCHAR","lpSystemName","in"],
1461
+ ["PBLOB","lpLuid","in"],
1462
+ ["PWCHAR","lpName","out"],
1463
+ ["PDWORD","cchName","inout"],
1464
+ ])
1465
+
1466
+ railgun.add_function( 'advapi32', 'LookupPrivilegeValueA', 'BOOL',[
1467
+ ["PCHAR","lpSystemName","in"],
1468
+ ["PCHAR","lpName","in"],
1469
+ ["PBLOB","lpLuid","out"],
1470
+ ])
1471
+
1472
+ railgun.add_function( 'advapi32', 'LookupPrivilegeValueW', 'BOOL',[
1473
+ ["PWCHAR","lpSystemName","in"],
1474
+ ["PWCHAR","lpName","in"],
1475
+ ["PBLOB","lpLuid","out"],
1476
+ ])
1477
+
1478
+ railgun.add_function( 'advapi32', 'MakeAbsoluteSD', 'BOOL',[
1479
+ ["PBLOB","pSelfRelativeSecurityDescriptor","in"],
1480
+ ["PBLOB","pAbsoluteSecurityDescriptor","out"],
1481
+ ["PDWORD","lpdwAbsoluteSecurityDescriptorSize","inout"],
1482
+ ["PBLOB","pDacl","out"],
1483
+ ["PDWORD","lpdwDaclSize","inout"],
1484
+ ["PBLOB","pSacl","out"],
1485
+ ["PDWORD","lpdwSaclSize","inout"],
1486
+ ["PBLOB","pOwner","out"],
1487
+ ["PDWORD","lpdwOwnerSize","inout"],
1488
+ ["PBLOB","pPrimaryGroup","out"],
1489
+ ["PDWORD","lpdwPrimaryGroupSize","inout"],
1490
+ ])
1491
+
1492
+ railgun.add_function( 'advapi32', 'MakeAbsoluteSD2', 'BOOL',[
1493
+ ["PBLOB","pSelfRelativeSecurityDescriptor","inout"],
1494
+ ["PDWORD","lpdwBufferSize","inout"],
1495
+ ])
1496
+
1497
+ railgun.add_function( 'advapi32', 'MakeSelfRelativeSD', 'BOOL',[
1498
+ ["PBLOB","pAbsoluteSecurityDescriptor","in"],
1499
+ ["PBLOB","pSelfRelativeSecurityDescriptor","out"],
1500
+ ["PDWORD","lpdwBufferLength","inout"],
1501
+ ])
1502
+
1503
+ railgun.add_function( 'advapi32', 'MapGenericMask', 'VOID',[
1504
+ ["PDWORD","AccessMask","inout"],
1505
+ ["PBLOB","GenericMapping","in"],
1506
+ ])
1507
+
1508
+ railgun.add_function( 'advapi32', 'NotifyChangeEventLog', 'BOOL',[
1509
+ ["DWORD","hEventLog","in"],
1510
+ ["DWORD","hEvent","in"],
1511
+ ])
1512
+
1513
+ railgun.add_function( 'advapi32', 'ObjectCloseAuditAlarmA', 'BOOL',[
1514
+ ["PCHAR","SubsystemName","in"],
1515
+ ["PBLOB","HandleId","in"],
1516
+ ["BOOL","GenerateOnClose","in"],
1517
+ ])
1518
+
1519
+ railgun.add_function( 'advapi32', 'ObjectCloseAuditAlarmW', 'BOOL',[
1520
+ ["PWCHAR","SubsystemName","in"],
1521
+ ["PBLOB","HandleId","in"],
1522
+ ["BOOL","GenerateOnClose","in"],
1523
+ ])
1524
+
1525
+ railgun.add_function( 'advapi32', 'ObjectDeleteAuditAlarmA', 'BOOL',[
1526
+ ["PCHAR","SubsystemName","in"],
1527
+ ["PBLOB","HandleId","in"],
1528
+ ["BOOL","GenerateOnClose","in"],
1529
+ ])
1530
+
1531
+ railgun.add_function( 'advapi32', 'ObjectDeleteAuditAlarmW', 'BOOL',[
1532
+ ["PWCHAR","SubsystemName","in"],
1533
+ ["PBLOB","HandleId","in"],
1534
+ ["BOOL","GenerateOnClose","in"],
1535
+ ])
1536
+
1537
+ railgun.add_function( 'advapi32', 'ObjectOpenAuditAlarmA', 'BOOL',[
1538
+ ["PCHAR","SubsystemName","in"],
1539
+ ["PBLOB","HandleId","in"],
1540
+ ["PCHAR","ObjectTypeName","in"],
1541
+ ["PCHAR","ObjectName","in"],
1542
+ ["PBLOB","pSecurityDescriptor","in"],
1543
+ ["DWORD","ClientToken","in"],
1544
+ ["DWORD","DesiredAccess","in"],
1545
+ ["DWORD","GrantedAccess","in"],
1546
+ ["PBLOB","Privileges","in"],
1547
+ ["BOOL","ObjectCreation","in"],
1548
+ ["BOOL","AccessGranted","in"],
1549
+ ["PBLOB","GenerateOnClose","out"],
1550
+ ])
1551
+
1552
+ railgun.add_function( 'advapi32', 'ObjectOpenAuditAlarmW', 'BOOL',[
1553
+ ["PWCHAR","SubsystemName","in"],
1554
+ ["PBLOB","HandleId","in"],
1555
+ ["PWCHAR","ObjectTypeName","in"],
1556
+ ["PWCHAR","ObjectName","in"],
1557
+ ["PBLOB","pSecurityDescriptor","in"],
1558
+ ["DWORD","ClientToken","in"],
1559
+ ["DWORD","DesiredAccess","in"],
1560
+ ["DWORD","GrantedAccess","in"],
1561
+ ["PBLOB","Privileges","in"],
1562
+ ["BOOL","ObjectCreation","in"],
1563
+ ["BOOL","AccessGranted","in"],
1564
+ ["PBLOB","GenerateOnClose","out"],
1565
+ ])
1566
+
1567
+ railgun.add_function( 'advapi32', 'ObjectPrivilegeAuditAlarmA', 'BOOL',[
1568
+ ["PCHAR","SubsystemName","in"],
1569
+ ["PBLOB","HandleId","in"],
1570
+ ["DWORD","ClientToken","in"],
1571
+ ["DWORD","DesiredAccess","in"],
1572
+ ["PBLOB","Privileges","in"],
1573
+ ["BOOL","AccessGranted","in"],
1574
+ ])
1575
+
1576
+ railgun.add_function( 'advapi32', 'ObjectPrivilegeAuditAlarmW', 'BOOL',[
1577
+ ["PWCHAR","SubsystemName","in"],
1578
+ ["PBLOB","HandleId","in"],
1579
+ ["DWORD","ClientToken","in"],
1580
+ ["DWORD","DesiredAccess","in"],
1581
+ ["PBLOB","Privileges","in"],
1582
+ ["BOOL","AccessGranted","in"],
1583
+ ])
1584
+
1585
+ railgun.add_function( 'advapi32', 'OpenBackupEventLogA', 'DWORD',[
1586
+ ["PCHAR","lpUNCServerName","in"],
1587
+ ["PCHAR","lpFileName","in"],
1588
+ ])
1589
+
1590
+ railgun.add_function( 'advapi32', 'OpenBackupEventLogW', 'DWORD',[
1591
+ ["PWCHAR","lpUNCServerName","in"],
1592
+ ["PWCHAR","lpFileName","in"],
1593
+ ])
1594
+
1595
+ railgun.add_function( 'advapi32', 'OpenEncryptedFileRawA', 'DWORD',[
1596
+ ["PCHAR","lpFileName","in"],
1597
+ ["DWORD","ulFlags","in"],
1598
+ ["PBLOB","pvContext","out"],
1599
+ ])
1600
+
1601
+ railgun.add_function( 'advapi32', 'OpenEncryptedFileRawW', 'DWORD',[
1602
+ ["PWCHAR","lpFileName","in"],
1603
+ ["DWORD","ulFlags","in"],
1604
+ ["PBLOB","pvContext","out"],
1605
+ ])
1606
+
1607
+ railgun.add_function( 'advapi32', 'OpenEventLogA', 'DWORD',[
1608
+ ["PCHAR","lpUNCServerName","in"],
1609
+ ["PCHAR","lpSourceName","in"],
1610
+ ])
1611
+
1612
+ railgun.add_function( 'advapi32', 'OpenEventLogW', 'DWORD',[
1613
+ ["PWCHAR","lpUNCServerName","in"],
1614
+ ["PWCHAR","lpSourceName","in"],
1615
+ ])
1616
+
1617
+ railgun.add_function( 'advapi32', 'OpenProcessToken', 'BOOL',[
1618
+ ["DWORD","ProcessHandle","in"],
1619
+ ["DWORD","DesiredAccess","in"],
1620
+ ["PDWORD","TokenHandle","out"],
1621
+ ])
1622
+
1623
+ railgun.add_function( 'advapi32', 'OpenThreadToken', 'BOOL',[
1624
+ ["DWORD","ThreadHandle","in"],
1625
+ ["DWORD","DesiredAccess","in"],
1626
+ ["BOOL","OpenAsSelf","in"],
1627
+ ["PDWORD","TokenHandle","out"],
1628
+ ])
1629
+
1630
+ railgun.add_function( 'advapi32', 'PrivilegeCheck', 'BOOL',[
1631
+ ["DWORD","ClientToken","in"],
1632
+ ["PBLOB","RequiredPrivileges","inout"],
1633
+ ["PBLOB","pfResult","out"],
1634
+ ])
1635
+
1636
+ railgun.add_function( 'advapi32', 'PrivilegedServiceAuditAlarmA', 'BOOL',[
1637
+ ["PCHAR","SubsystemName","in"],
1638
+ ["PCHAR","ServiceName","in"],
1639
+ ["DWORD","ClientToken","in"],
1640
+ ["PBLOB","Privileges","in"],
1641
+ ["BOOL","AccessGranted","in"],
1642
+ ])
1643
+
1644
+ railgun.add_function( 'advapi32', 'PrivilegedServiceAuditAlarmW', 'BOOL',[
1645
+ ["PWCHAR","SubsystemName","in"],
1646
+ ["PWCHAR","ServiceName","in"],
1647
+ ["DWORD","ClientToken","in"],
1648
+ ["PBLOB","Privileges","in"],
1649
+ ["BOOL","AccessGranted","in"],
1650
+ ])
1651
+
1652
+ railgun.add_function( 'advapi32', 'ReadEncryptedFileRaw', 'DWORD',[
1653
+ ["PBLOB","pfExportCallback","in"],
1654
+ ["PBLOB","pvCallbackContext","in"],
1655
+ ["PBLOB","pvContext","in"],
1656
+ ])
1657
+
1658
+ railgun.add_function( 'advapi32', 'ReadEventLogA', 'BOOL',[
1659
+ ["DWORD","hEventLog","in"],
1660
+ ["DWORD","dwReadFlags","in"],
1661
+ ["DWORD","dwRecordOffset","in"],
1662
+ ["PBLOB","lpBuffer","out"],
1663
+ ["DWORD","nNumberOfBytesToRead","in"],
1664
+ ["PDWORD","pnBytesRead","out"],
1665
+ ["PDWORD","pnMinNumberOfBytesNeeded","out"],
1666
+ ])
1667
+
1668
+ railgun.add_function( 'advapi32', 'ReadEventLogW', 'BOOL',[
1669
+ ["DWORD","hEventLog","in"],
1670
+ ["DWORD","dwReadFlags","in"],
1671
+ ["DWORD","dwRecordOffset","in"],
1672
+ ["PBLOB","lpBuffer","out"],
1673
+ ["DWORD","nNumberOfBytesToRead","in"],
1674
+ ["PDWORD","pnBytesRead","out"],
1675
+ ["PDWORD","pnMinNumberOfBytesNeeded","out"],
1676
+ ])
1677
+
1678
+ railgun.add_function( 'advapi32', 'RegisterEventSourceA', 'DWORD',[
1679
+ ["PCHAR","lpUNCServerName","in"],
1680
+ ["PCHAR","lpSourceName","in"],
1681
+ ])
1682
+
1683
+ railgun.add_function( 'advapi32', 'RegisterEventSourceW', 'DWORD',[
1684
+ ["PWCHAR","lpUNCServerName","in"],
1685
+ ["PWCHAR","lpSourceName","in"],
1686
+ ])
1687
+
1688
+ railgun.add_function( 'advapi32', 'ReportEventA', 'BOOL',[
1689
+ ["DWORD","hEventLog","in"],
1690
+ ["WORD","wType","in"],
1691
+ ["WORD","wCategory","in"],
1692
+ ["DWORD","dwEventID","in"],
1693
+ ["LPVOID","lpUserSid","in"],
1694
+ ["WORD","wNumStrings","in"],
1695
+ ["DWORD","dwDataSize","in"],
1696
+ ["PBLOB","lpStrings","in"],
1697
+ ["PBLOB","lpRawData","in"],
1698
+ ])
1699
+
1700
+ railgun.add_function( 'advapi32', 'ReportEventW', 'BOOL',[
1701
+ ["DWORD","hEventLog","in"],
1702
+ ["WORD","wType","in"],
1703
+ ["WORD","wCategory","in"],
1704
+ ["DWORD","dwEventID","in"],
1705
+ ["LPVOID","lpUserSid","in"],
1706
+ ["WORD","wNumStrings","in"],
1707
+ ["DWORD","dwDataSize","in"],
1708
+ ["PBLOB","lpStrings","in"],
1709
+ ["PBLOB","lpRawData","in"],
1710
+ ])
1711
+
1712
+ railgun.add_function( 'advapi32', 'RevertToSelf', 'BOOL',[
1713
+ ])
1714
+
1715
+ railgun.add_function( 'advapi32', 'SetAclInformation', 'BOOL',[
1716
+ ["PBLOB","pAcl","inout"],
1717
+ ["PBLOB","pAclInformation","in"],
1718
+ ["DWORD","nAclInformationLength","in"],
1719
+ ["DWORD","dwAclInformationClass","in"],
1720
+ ])
1721
+
1722
+ railgun.add_function( 'advapi32', 'SetFileSecurityA', 'BOOL',[
1723
+ ["PCHAR","lpFileName","in"],
1724
+ ["PBLOB","SecurityInformation","in"],
1725
+ ["PBLOB","pSecurityDescriptor","in"],
1726
+ ])
1727
+
1728
+ railgun.add_function( 'advapi32', 'SetFileSecurityW', 'BOOL',[
1729
+ ["PWCHAR","lpFileName","in"],
1730
+ ["PBLOB","SecurityInformation","in"],
1731
+ ["PBLOB","pSecurityDescriptor","in"],
1732
+ ])
1733
+
1734
+ railgun.add_function( 'advapi32', 'SetKernelObjectSecurity', 'BOOL',[
1735
+ ["DWORD","Handle","in"],
1736
+ ["PBLOB","SecurityInformation","in"],
1737
+ ["PBLOB","SecurityDescriptor","in"],
1738
+ ])
1739
+
1740
+ railgun.add_function( 'advapi32', 'SetPrivateObjectSecurity', 'BOOL',[
1741
+ ["PBLOB","SecurityInformation","in"],
1742
+ ["PBLOB","ModificationDescriptor","in"],
1743
+ ["PBLOB","ObjectsSecurityDescriptor","inout"],
1744
+ ["PBLOB","GenericMapping","in"],
1745
+ ["DWORD","Token","in"],
1746
+ ])
1747
+
1748
+ railgun.add_function( 'advapi32', 'SetPrivateObjectSecurityEx', 'BOOL',[
1749
+ ["PBLOB","SecurityInformation","in"],
1750
+ ["PBLOB","ModificationDescriptor","in"],
1751
+ ["PBLOB","ObjectsSecurityDescriptor","inout"],
1752
+ ["DWORD","AutoInheritFlags","in"],
1753
+ ["PBLOB","GenericMapping","in"],
1754
+ ["DWORD","Token","in"],
1755
+ ])
1756
+
1757
+ railgun.add_function( 'advapi32', 'SetSecurityDescriptorControl', 'BOOL',[
1758
+ ["PBLOB","pSecurityDescriptor","in"],
1759
+ ["WORD","ControlBitsOfInterest","in"],
1760
+ ["WORD","ControlBitsToSet","in"],
1761
+ ])
1762
+
1763
+ railgun.add_function( 'advapi32', 'SetSecurityDescriptorDacl', 'BOOL',[
1764
+ ["PBLOB","pSecurityDescriptor","inout"],
1765
+ ["BOOL","bDaclPresent","in"],
1766
+ ["PBLOB","pDacl","in"],
1767
+ ["BOOL","bDaclDefaulted","in"],
1768
+ ])
1769
+
1770
+ railgun.add_function( 'advapi32', 'SetSecurityDescriptorGroup', 'BOOL',[
1771
+ ["PBLOB","pSecurityDescriptor","inout"],
1772
+ ["PBLOB","pGroup","in"],
1773
+ ["BOOL","bGroupDefaulted","in"],
1774
+ ])
1775
+
1776
+ railgun.add_function( 'advapi32', 'SetSecurityDescriptorOwner', 'BOOL',[
1777
+ ["PBLOB","pSecurityDescriptor","inout"],
1778
+ ["PBLOB","pOwner","in"],
1779
+ ["BOOL","bOwnerDefaulted","in"],
1780
+ ])
1781
+
1782
+ railgun.add_function( 'advapi32', 'SetSecurityDescriptorRMControl', 'DWORD',[
1783
+ ["PBLOB","SecurityDescriptor","inout"],
1784
+ ["PBLOB","RMControl","in"],
1785
+ ])
1786
+
1787
+ railgun.add_function( 'advapi32', 'SetSecurityDescriptorSacl', 'BOOL',[
1788
+ ["PBLOB","pSecurityDescriptor","inout"],
1789
+ ["BOOL","bSaclPresent","in"],
1790
+ ["PBLOB","pSacl","in"],
1791
+ ["BOOL","bSaclDefaulted","in"],
1792
+ ])
1793
+
1794
+ railgun.add_function( 'advapi32', 'SetThreadToken', 'BOOL',[
1795
+ ["PDWORD","Thread","in"],
1796
+ ["DWORD","Token","in"],
1797
+ ])
1798
+
1799
+ railgun.add_function( 'advapi32', 'SetTokenInformation', 'BOOL',[
1800
+ ["DWORD","TokenHandle","in"],
1801
+ ["DWORD","TokenInformationClass","in"],
1802
+ ["PBLOB","TokenInformation","in"],
1803
+ ["DWORD","TokenInformationLength","in"],
1804
+ ])
1805
+
1806
+ railgun.add_function( 'advapi32', 'WriteEncryptedFileRaw', 'DWORD',[
1807
+ ["PBLOB","pfImportCallback","in"],
1808
+ ["PBLOB","pvCallbackContext","in"],
1809
+ ["PBLOB","pvContext","in"],
1810
+ ])
1811
+
1812
+ end
1813
+
1814
+ end
1815
+
1816
+ end; end; end; end; end; end; end
1817
+
1818
+