├── ExtDepLibs
├── Au3Info.exe
├── autoit
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── autoit.py
│ ├── autoit.pyc
│ ├── control.py
│ ├── control.pyc
│ ├── lib
│ │ ├── AutoItX3.dll
│ │ └── AutoItX3_x64.dll
│ ├── process.py
│ ├── process.pyc
│ ├── win.py
│ └── win.pyc
├── domato
│ ├── CONTRIBUTING.md
│ ├── LICENSE
│ ├── README.md
│ ├── attributevalues.txt
│ ├── common.txt
│ ├── css.txt
│ ├── cssproperties.txt
│ ├── generator.py
│ ├── grammar.py
│ ├── grammar.pyc
│ ├── html.txt
│ ├── js.txt
│ ├── jshelpers.txt
│ ├── svg.txt
│ ├── svgattrvalues.txt
│ ├── tagattributes.txt
│ └── template.html
└── winappdbg
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── breakpoint.py
│ ├── breakpoint.pyc
│ ├── crash.py
│ ├── crash.pyc
│ ├── debug.py
│ ├── debug.pyc
│ ├── disasm.py
│ ├── disasm.pyc
│ ├── event.py
│ ├── event.pyc
│ ├── interactive.py
│ ├── interactive.pyc
│ ├── module.py
│ ├── module.pyc
│ ├── plugins
│ ├── README
│ ├── __init__.py
│ ├── do_example.py
│ ├── do_exchain.py
│ ├── do_exploitable.py
│ └── do_symfix.py
│ ├── process.py
│ ├── process.pyc
│ ├── registry.py
│ ├── registry.pyc
│ ├── search.py
│ ├── search.pyc
│ ├── sql.py
│ ├── sql.pyc
│ ├── system.py
│ ├── system.pyc
│ ├── textio.py
│ ├── textio.pyc
│ ├── thread.py
│ ├── thread.pyc
│ ├── util.py
│ ├── util.pyc
│ ├── win32
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── advapi32.py
│ ├── advapi32.pyc
│ ├── context_amd64.py
│ ├── context_amd64.pyc
│ ├── context_i386.py
│ ├── context_i386.pyc
│ ├── dbghelp.py
│ ├── dbghelp.pyc
│ ├── defines.py
│ ├── defines.pyc
│ ├── gdi32.py
│ ├── gdi32.pyc
│ ├── kernel32.py
│ ├── kernel32.pyc
│ ├── ntdll.py
│ ├── ntdll.pyc
│ ├── peb_teb.py
│ ├── peb_teb.pyc
│ ├── psapi.py
│ ├── psapi.pyc
│ ├── shell32.py
│ ├── shell32.pyc
│ ├── shlwapi.py
│ ├── shlwapi.pyc
│ ├── user32.py
│ ├── user32.pyc
│ ├── version.py
│ ├── version.pyc
│ ├── wtsapi32.py
│ └── wtsapi32.pyc
│ ├── window.py
│ └── window.pyc
├── PopUpKiller.py
├── README.md
├── fuzzHTML.py
├── fuzzPics.py
├── includepicture.docx
├── includetext.docx
└── popuphandler.PNG
/ExtDepLibs/Au3Info.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VotiroLabs/Word-Quick-Fuzzer/fc4dfd29aba2a8f7ec392b8e26e4be6e29597bd8/ExtDepLibs/Au3Info.exe
--------------------------------------------------------------------------------
/ExtDepLibs/autoit/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | __author__ = 'Jace Xu'
4 | __version__ = "0.3"
5 |
6 | from .autoit import options, properties, commands
7 | from .autoit import AutoItError
8 |
9 | from .autoit import error
10 | from .autoit import auto_it_set_option
11 | from .autoit import clip_get
12 | from .autoit import clip_put
13 | from .autoit import is_admin
14 | from .autoit import drive_map_add
15 | from .autoit import drive_map_del
16 | from .autoit import drive_map_get
17 | from .autoit import mouse_click
18 | from .autoit import mouse_click_drag
19 | from .autoit import mouse_down
20 | from .autoit import mouse_get_cursor
21 | from .autoit import mouse_get_pos
22 | from .autoit import mouse_move
23 | from .autoit import mouse_up
24 | from .autoit import mouse_wheel
25 | from .autoit import opt
26 | from .autoit import pixel_checksum
27 | from .autoit import pixel_get_color
28 | from .autoit import pixel_search
29 | from .autoit import send
30 | from .autoit import tooltip
31 |
32 | from .process import run
33 | from .process import run_wait
34 | from .process import process_close
35 | from .process import process_exists
36 | from .process import process_set_priority
37 | from .process import process_wait
38 | from .process import process_wait_close
39 | from .process import run_as
40 | from .process import run_as_wait
41 | from .process import shutdown
42 |
43 | from .win import win_activate
44 | from .win import win_activate_by_handle
45 | from .win import win_active
46 | from .win import win_active_by_handle
47 | from .win import win_close
48 | from .win import win_close_by_handle
49 | from .win import win_exists
50 | from .win import win_exists_by_handle
51 | from .win import win_get_caret_pos
52 | from .win import win_get_class_list
53 | from .win import win_get_class_list_by_handle
54 | from .win import win_get_client_size
55 | from .win import win_get_client_size_by_handle
56 | from .win import win_get_handle
57 | from .win import win_get_handle_as_text
58 | from .win import win_get_pos
59 | from .win import win_get_pos_by_handle
60 | from .win import win_get_process
61 | from .win import win_get_process_by_handle
62 | from .win import win_get_state
63 | from .win import win_get_state_by_handle
64 | from .win import win_get_text
65 | from .win import win_get_text_by_handle
66 | from .win import win_get_title
67 | from .win import win_get_title_by_handle
68 | from .win import win_kill
69 | from .win import win_kill_by_handle
70 | from .win import win_menu_select_item
71 | from .win import win_menu_select_item_by_handle
72 | from .win import win_minimize_all
73 | from .win import win_minimize_all_undo
74 | from .win import win_move
75 | from .win import win_move_by_handle
76 | from .win import win_set_on_top
77 | from .win import win_set_on_top_by_handle
78 | from .win import win_set_state
79 | from .win import win_set_state_by_handle
80 | from .win import win_set_title
81 | from .win import win_set_title_by_handle
82 | from .win import win_set_trans
83 | from .win import win_set_trans_by_handle
84 | from .win import win_wait
85 | from .win import win_wait_by_handle
86 | from .win import win_wait_active
87 | from .win import win_wait_active_by_handle
88 | from .win import win_wait_close
89 | from .win import win_wait_close_by_handle
90 | from .win import win_wait_not_active
91 | from .win import win_wait_not_active_by_handle
92 |
93 | from .control import control_click
94 | from .control import control_click_by_handle
95 | from .control import control_command
96 | from .control import control_command_by_handle
97 | from .control import control_list_view
98 | from .control import control_list_view_by_handle
99 | from .control import control_disable
100 | from .control import control_disable_by_handle
101 | from .control import control_enable
102 | from .control import control_enable_by_handle
103 | from .control import control_focus
104 | from .control import control_focus_by_handle
105 | from .control import control_get_focus
106 | from .control import control_get_focus_by_handle
107 | from .control import control_get_handle
108 | from .control import control_get_handle_as_text
109 | from .control import control_get_pos
110 | from .control import control_get_pos_by_handle
111 | from .control import control_get_text
112 | from .control import control_get_text_by_handle
113 | from .control import control_hide
114 | from .control import control_hide_by_handle
115 | from .control import control_move
116 | from .control import control_move_by_handle
117 | from .control import control_send
118 | from .control import control_send_by_handle
119 | from .control import control_set_text
120 | from .control import control_set_text_by_handle
121 | from .control import control_show
122 | from .control import control_show_by_handle
123 | from .control import control_tree_view
124 | from .control import control_tree_view_by_handle
125 | from .control import statusbar_get_text
126 | from .control import statusbar_get_text_by_handle
--------------------------------------------------------------------------------
/ExtDepLibs/autoit/__init__.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VotiroLabs/Word-Quick-Fuzzer/fc4dfd29aba2a8f7ec392b8e26e4be6e29597bd8/ExtDepLibs/autoit/__init__.pyc
--------------------------------------------------------------------------------
/ExtDepLibs/autoit/autoit.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | __author__ = 'Jace Xu'
4 |
5 | import ctypes
6 | import os
7 | import platform
8 | from ctypes.wintypes import *
9 | from functools import wraps
10 |
11 | dll = "AutoItX3.dll"
12 | bit, _ = platform.architecture()
13 |
14 | if bit == "64bit":
15 | # if 64bit version of python, load AutoItX3_x64.dll
16 | dll = "AutoItX3_x64.dll"
17 |
18 | dll_path = os.path.join(os.path.dirname(__file__), "lib", dll)
19 |
20 | if not os.path.exists(dll_path):
21 | raise IOError("Cannot load AutoItX from path: %s" % dll_path)
22 |
23 | AUTO_IT = ctypes.windll.LoadLibrary(dll_path)
24 |
25 |
26 | class AutoItError(Exception):
27 | pass
28 |
29 |
30 | def error():
31 | return AUTO_IT.AU3_error()
32 |
33 |
34 | class AutoItAPI(object):
35 |
36 | def __init__(self):
37 | self.msg = {}
38 |
39 | @staticmethod
40 | def _has_error():
41 | return True if error() == 1 else False
42 |
43 | @staticmethod
44 | def _has_unexpected_ret(ret, unexpected):
45 | if ret in unexpected:
46 | return True
47 | return False
48 |
49 | @staticmethod
50 | def _parser(x, y):
51 | if x["num"] >= y:
52 | x["flags"].append(y)
53 | x["num"] -= y
54 | return x
55 |
56 | def check(self, mark=0, err_msg="", **kwds):
57 | """
58 | :param mark:
59 | 0 - do not need check return value or error()
60 | 1 - check error()
61 | 2 - check return value
62 | """
63 | unexpected_ret = kwds.get("unexpected_ret", (0,))
64 |
65 | def _check(fn):
66 | @wraps(fn)
67 | def wrapper(*args, **kwargs):
68 | ret = fn(*args, **kwargs)
69 |
70 | flags = reduce(
71 | self._parser, [dict(num=mark, flags=[]), 2, 1])["flags"]
72 |
73 | if 1 in flags:
74 | if self._has_error():
75 | raise AutoItError(err_msg)
76 |
77 | if 2 in flags:
78 | if self._has_unexpected_ret(ret, unexpected_ret):
79 | raise AutoItError(err_msg)
80 |
81 | return ret
82 | return wrapper
83 | return _check
84 |
85 |
86 | api = AutoItAPI()
87 |
88 |
89 | @api.check()
90 | def auto_it_set_option(option, param):
91 | """
92 | Changes the operation of various AutoIt functions/parameters
93 | :param option: The option to change
94 | :param param: The parameter (varies by option).
95 | :return:
96 | """
97 | pre_value = AUTO_IT.AU3_AutoItSetOption(LPCWSTR(option), INT(param))
98 | return pre_value
99 |
100 |
101 | class Properties(object):
102 | """
103 | Below is an list of all the properties available in AutoItX.
104 | """
105 | SW_HIDE = 0
106 | SW_MAXIMIZE = 3
107 | SW_MINIMIZE = 6
108 | SW_RESTORE = 9
109 | SW_SHOW = 5
110 | SW_SHOWDEFAULT = 10
111 | SW_SHOWMAXIMIZED = 3
112 | SW_SHOWMINIMIZED = 2
113 | SW_SHOWMINNOACTIVE = 7
114 | SW_SHOWNA = 8
115 | SW_SHOWNOACTIVATE = 4
116 | SW_SHOWNORMAL = 1
117 |
118 |
119 | class _Options(object):
120 |
121 | def __init__(self):
122 | self._caret_coord_mode = 1
123 | self._mouse_click_delay = 10
124 | self._mouse_click_down_delay = 10
125 | self._mouse_click_drag_delay = 250
126 | self._mouse_coord_mode = 1
127 | self._pixel_coord_mode = 1
128 | self._send_attach_mode = 0
129 | self._send_capslock_mode = 1
130 | self._send_key_delay = 5
131 | self._send_key_down_delay = 10
132 | self._win_detect_hidden_text = 0
133 | self._win_search_children = 0
134 | self._win_text_match_mode = 1
135 | self._win_title_match_mode = 1
136 | self._win_wait_delay = 250
137 |
138 | @property
139 | def caret_coord_mode(self):
140 | return self._caret_coord_mode
141 |
142 | @caret_coord_mode.setter
143 | def caret_coord_mode(self, value):
144 | auto_it_set_option("CaretCoordMode", value)
145 | self._caret_coord_mode = value
146 |
147 | @property
148 | def mouse_click_delay(self):
149 | return self._mouse_click_delay
150 |
151 | @mouse_click_delay.setter
152 | def mouse_click_delay(self, value):
153 | auto_it_set_option("MouseClickDelay", value)
154 | self._mouse_click_delay = value
155 |
156 | @property
157 | def mouse_click_down_delay(self):
158 | return self._mouse_click_down_delay
159 |
160 | @mouse_click_down_delay.setter
161 | def mouse_click_down_delay(self, value):
162 | auto_it_set_option("MouseClickDownDelay", value)
163 | self._mouse_click_down_delay = value
164 |
165 | @property
166 | def mouse_click_drag_delay(self):
167 | return self._mouse_click_drag_delay
168 |
169 | @mouse_click_drag_delay.setter
170 | def mouse_click_drag_delay(self, value):
171 | auto_it_set_option("MouseClickDragDelay", value)
172 | self._mouse_click_drag_delay = value
173 |
174 | @property
175 | def mouse_coord_mode(self):
176 | return self._mouse_coord_mode
177 |
178 | @mouse_coord_mode.setter
179 | def mouse_coord_mode(self, value):
180 | auto_it_set_option("MouseCoordMode", value)
181 | self._mouse_coord_mode = value
182 |
183 | @property
184 | def pixel_coord_mode(self):
185 | return self._pixel_coord_mode
186 |
187 | @pixel_coord_mode.setter
188 | def pixel_coord_mode(self, value):
189 | auto_it_set_option("PixelCoordMode", value)
190 | self._pixel_coord_mode = value
191 |
192 | @property
193 | def send_attach_mode(self):
194 | return self._send_attach_mode
195 |
196 | @send_attach_mode.setter
197 | def send_attach_mode(self, value):
198 | auto_it_set_option("SendAttachMode", INT(value))
199 | self._send_attach_mode = value
200 |
201 | @property
202 | def send_capslock_mode(self):
203 | return self._send_capslock_mode
204 |
205 | @send_capslock_mode.setter
206 | def send_capslock_mode(self, value):
207 | auto_it_set_option("SendCapslockMode", value)
208 | self._send_capslock_mode = value
209 |
210 | @property
211 | def send_key_delay(self):
212 | return self._send_key_delay
213 |
214 | @send_key_delay.setter
215 | def send_key_delay(self, value):
216 | auto_it_set_option("SendKeyDelay", value)
217 | self._send_key_delay = value
218 |
219 | @property
220 | def send_key_down_delay(self):
221 | return self._send_key_down_delay
222 |
223 | @send_key_down_delay.setter
224 | def send_key_down_delay(self, value):
225 | auto_it_set_option("SendKeyDownDelay", value)
226 | self._send_key_down_delay = value
227 |
228 | @property
229 | def win_detect_hidden_text(self):
230 | return self._win_detect_hidden_text
231 |
232 | @win_detect_hidden_text.setter
233 | def win_detect_hidden_text(self, value):
234 | auto_it_set_option("WinDetectHiddenText", value)
235 | self._win_detect_hidden_text = value
236 |
237 | @property
238 | def win_search_children(self):
239 | return self._win_search_children
240 |
241 | @win_search_children.setter
242 | def win_search_children(self, value):
243 | auto_it_set_option("WinSearchChildren", value)
244 | self._win_search_children = value
245 |
246 | @property
247 | def win_text_match_mode(self):
248 | return self._win_text_match_mode
249 |
250 | @win_text_match_mode.setter
251 | def win_text_match_mode(self, value):
252 | auto_it_set_option("WinTextMatchMode", value)
253 | self._win_text_match_mode = value
254 |
255 | @property
256 | def win_title_match_mode(self):
257 | return self._win_title_match_mode
258 |
259 | @win_title_match_mode.setter
260 | def win_title_match_mode(self, value):
261 | auto_it_set_option("WinTitleMatchMode", value)
262 | self._win_title_match_mode = value
263 |
264 | @property
265 | def win_wait_delay(self):
266 | return self._win_wait_delay
267 |
268 | @win_wait_delay.setter
269 | def win_wait_delay(self, value):
270 | auto_it_set_option("WinWaitDelay", value)
271 | self._win_wait_delay = value
272 |
273 |
274 | class Commands(object):
275 |
276 | is_visible = "IsVisible"
277 | is_enabled = "IsEnabled"
278 | show_drop_down = "ShowDropDown"
279 | hide_drop_down = "HideDropDown"
280 | add_string = "AddString"
281 | del_string = "DelString"
282 | find_string = "FindString"
283 | set_current_selection = "SetCurrentSelection"
284 | is_checked = "IsChecked"
285 | check = "Check"
286 | un_check = "UnCheck"
287 | get_current_line = "GetCurrentLine"
288 | get_current_col = "GetCurrentCol"
289 | get_current_selection = "GetCurrentSelection"
290 | get_line_count = "GetLineCount"
291 | get_line = "GetLine"
292 | get_selected = "GetSelected"
293 | edit_paste = "EditPaste"
294 | current_tab = "CurrentTab"
295 | tab_right = "TabRight"
296 | tab_left = "TabLeft"
297 | de_select = "DeSelect"
298 | find_item = "FindItem"
299 | get_item_count = "GetItemCount"
300 | get_selected_count = "GetSelectedCount"
301 | get_sub_item_count = "GetSubItemCount"
302 | get_text = "GetText"
303 | is_selected = "IsSelected"
304 | select = "Select"
305 | select_all = "SelectAll"
306 | select_clear = "SelectClear"
307 | select_invert = "SelectInvert"
308 | view_change = "View"
309 | collapse = "Collapse"
310 | exists = "Exists"
311 | expand = "Expand"
312 | uncheck = "Uncheck"
313 |
314 | options = _Options()
315 | properties = Properties
316 | commands = Commands
317 | INTDEFAULT = -2147483647
318 |
319 |
320 | @api.check(1, err_msg="clipboard is empty or contains a non-text entry")
321 | def clip_get(buf_size=256):
322 | """
323 |
324 | :param buf_size:
325 | :return:
326 | """
327 |
328 | clip = ctypes.create_unicode_buffer(buf_size)
329 | AUTO_IT.AU3_ClipGet(clip, INT(buf_size))
330 | return clip.value.rstrip()
331 |
332 |
333 | @api.check(2, err_msg="Write text to clipboard failed")
334 | def clip_put(value):
335 | """
336 |
337 | :param value:
338 | :return:
339 | """
340 | ret = AUTO_IT.AU3_ClipPut(LPCWSTR(value))
341 | return ret
342 |
343 |
344 | def is_admin():
345 | """
346 |
347 | :return:
348 | """
349 | ret = AUTO_IT.AU3_IsAdmin()
350 | return ret
351 |
352 |
353 | def drive_map_add(device, share, flag=0, user="", pwd="", buf_size=256):
354 | """
355 |
356 | :param device:
357 | :param share:
358 | :param flag: 0 = default
359 | 1 = Persistant mapping
360 | 8 = Show authentication dialog if required
361 | :param user:
362 | :param pwd:
363 | :param buf_size:
364 | :return:
365 | """
366 | result = ctypes.create_unicode_buffer(buf_size)
367 |
368 | err_code = {
369 | 1: "Undefined / Other error",
370 | 2: "Access to the remote share was denied",
371 | 3: "The device is already assigned",
372 | 4: "Invalid device name",
373 | 5: "Invalid remote share",
374 | 6: "Invalid password"
375 | }
376 | AUTO_IT.AU3_DriveMapAdd(
377 | LPCWSTR(device), LPCWSTR(share), INT(flag), LPCWSTR(user),
378 | LPCWSTR(pwd), result, INT(buf_size))
379 |
380 | if error():
381 | raise AutoItError(err_code.get(error(), None))
382 | return result.value.rstrip()
383 |
384 |
385 | @api.check(2, err_msg="the disconnection was unsuccessful")
386 | def drive_map_del(device):
387 | """
388 |
389 | :param device:
390 | :return:
391 | """
392 | ret = AUTO_IT.AU3_DriveMapDel(LPCWSTR(device))
393 | return ret
394 |
395 |
396 | @api.check(1, err_msg="get the details of a mapped drive failed")
397 | def drive_map_get(device, buf_size=256):
398 | """
399 |
400 | :param device:
401 | :param buf_size:
402 | :return:
403 | """
404 | mapping = ctypes.create_unicode_buffer(buf_size)
405 | AUTO_IT.AU3_DriveMapGet(LPCWSTR(device), mapping, INT(buf_size))
406 | return mapping.value.rstrip()
407 |
408 |
409 | def mouse_click(button="left", x=INTDEFAULT, y=INTDEFAULT, clicks=1, speed=-1):
410 | """
411 |
412 | :param button:
413 | :param x:
414 | :param y:
415 | :param clicks:
416 | :param speed:
417 | :return:
418 | """
419 | ret = AUTO_IT.AU3_MouseClick(
420 | LPCWSTR(button), INT(x), INT(y), INT(clicks), INT(speed)
421 | )
422 | return ret
423 |
424 |
425 | def mouse_click_drag(x1, y1, x2, y2, button="left", speed=-1):
426 | """
427 |
428 | :param x1:
429 | :param y1:
430 | :param x2:
431 | :param y2:
432 | :param button:
433 | :param speed:
434 | :return:
435 | """
436 |
437 | ret = AUTO_IT.AU3_MouseClickDrag(
438 | LPCWSTR(button), INT(x1), INT(y1), INT(x2), INT(y2), INT(speed)
439 | )
440 | return ret
441 |
442 |
443 | def mouse_down(button="left"):
444 | """
445 |
446 | :param button:
447 | :return:
448 | """
449 | AUTO_IT.AU3_MouseDown(LPCWSTR(button))
450 |
451 |
452 | def mouse_get_cursor():
453 | """
454 |
455 | :return:
456 | """
457 | ret = AUTO_IT.AU3_MouseGetCursor()
458 | return ret
459 |
460 |
461 | def mouse_get_pos():
462 | """
463 |
464 | :return:
465 | """
466 | p = POINT()
467 | AUTO_IT.AU3_MouseGetPos(ctypes.byref(p))
468 | return p.x, p.y
469 |
470 |
471 | def mouse_move(x, y, speed=-1):
472 | """
473 |
474 | :param x:
475 | :param y:
476 | :param speed:
477 | :return:
478 | """
479 | ret = AUTO_IT.AU3_MouseMove(INT(x), INT(y), INT(speed))
480 | return ret
481 |
482 |
483 | def mouse_up(button="left"):
484 | """
485 |
486 | :param button:
487 | :return:
488 | """
489 | AUTO_IT.AU3_MouseUp(LPCWSTR(button))
490 |
491 |
492 | @api.check(1, err_msg="the direction is not recognized")
493 | def mouse_wheel(direction, clicks=-1):
494 | """
495 |
496 | :param direction: "up" or "down"
497 | :param clicks:
498 | :return:
499 | """
500 | AUTO_IT.AU3_MouseWheel(LPCWSTR(direction), INT(clicks))
501 |
502 |
503 | def opt(option, value):
504 | """
505 |
506 | :param option:
507 | :param value:
508 | :return:
509 | """
510 | return auto_it_set_option(option, value)
511 |
512 |
513 | def pixel_checksum(left, top, right, bottom, step=1):
514 | """
515 |
516 | :param left:
517 | :param top:
518 | :param right:
519 | :param bottom:
520 | :param step:
521 | :return:
522 | """
523 | rect = RECT(left, top, right, bottom)
524 | ret = AUTO_IT.AU3_PixelChecksum(ctypes.byref(rect), INT(step))
525 | return ret
526 |
527 |
528 | @api.check(2, unexpected_ret=(-1,), err_msg="invalid coordinates")
529 | def pixel_get_color(x, y):
530 | """
531 |
532 | :param x:
533 | :param y:
534 | :return:
535 | """
536 | ret = AUTO_IT.AU3_PixelGetColor(INT(x), INT(y))
537 | return ret
538 |
539 |
540 | @api.check(1, err_msg="color is not found")
541 | def pixel_search(left, top, right, bottom, col, var=1, step=1):
542 | """
543 |
544 | :param left:
545 | :param top:
546 | :param right:
547 | :param bottom:
548 | :param col:
549 | :param var:
550 | :param step:
551 | :return:
552 | """
553 | p = POINT()
554 | rect = RECT(left, top, right, bottom)
555 |
556 | AUTO_IT.AU3_PixelSearch(
557 | ctypes.byref(rect), INT(col), INT(var), INT(step), ctypes.byref(p)
558 | )
559 | return p.x, p.y
560 |
561 |
562 | def send(send_text, mode=0):
563 | """
564 | Sends simulated keystrokes to the active window.
565 | :param send_text:
566 | :param mode: Changes how "keys" is processed:
567 | flag = 0 (default), Text contains special characters like + and ! to
568 | indicate SHIFT and ALT key presses.
569 | flag = 1, keys are sent raw.
570 | :return:
571 | """
572 | AUTO_IT.AU3_Send(LPCWSTR(send_text), INT(mode))
573 |
574 |
575 | def tooltip(tip, x=INTDEFAULT, y=INTDEFAULT):
576 | """
577 |
578 | :param tip:
579 | :param x:
580 | :param y:
581 | :return:
582 | """
583 | AUTO_IT.AU3_ToolTip(LPCWSTR(tip), INT(x), INT(y))
584 |
--------------------------------------------------------------------------------
/ExtDepLibs/autoit/autoit.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VotiroLabs/Word-Quick-Fuzzer/fc4dfd29aba2a8f7ec392b8e26e4be6e29597bd8/ExtDepLibs/autoit/autoit.pyc
--------------------------------------------------------------------------------
/ExtDepLibs/autoit/control.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | __author__ = 'Jace Xu'
4 |
5 | from autoit import INTDEFAULT, AUTO_IT
6 | from autoit import api
7 | from ctypes.wintypes import *
8 | import ctypes
9 |
10 |
11 | @api.check(2, "send click message failed")
12 | def control_click(title, control, **kwargs):
13 | """
14 |
15 | :param title:
16 | :param text:
17 | :param control:
18 | :param button:
19 | :param clicks:
20 | :param x:
21 | :param y:
22 | :return:
23 | """
24 | text = kwargs.get("text", "")
25 | button = kwargs.get("button", "left")
26 | clicks = kwargs.get("clicks", 1)
27 | x = kwargs.get("x", INTDEFAULT)
28 | y = kwargs.get("y", INTDEFAULT)
29 |
30 | ret = AUTO_IT.AU3_ControlClick(LPCWSTR(title), LPCWSTR(text),
31 | LPCWSTR(control), LPCWSTR(button),
32 | INT(clicks), INT(x), INT(y))
33 | return ret
34 |
35 |
36 | @api.check(2, "send click message failed")
37 | def control_click_by_handle(hwnd, h_ctrl, **kwargs):
38 | """
39 |
40 | :param handle:
41 | :param kwargs:
42 | :return:
43 | """
44 | button = kwargs.get("button", "left")
45 | clicks = kwargs.get("clicks", 1)
46 | x = kwargs.get("x", INTDEFAULT)
47 | y = kwargs.get("y", INTDEFAULT)
48 |
49 | ret = AUTO_IT.AU3_ControlClickByHandle(HWND(hwnd), HWND(h_ctrl),
50 | LPCWSTR(button), INT(clicks),
51 | INT(x), INT(y))
52 | return ret
53 |
54 |
55 | @api.check(1, "no window match the criteria")
56 | def control_command(title, control, command, buf_size=256, **kwargs):
57 | """
58 |
59 | :param title:
60 | :param control:
61 | :param command:
62 | :param extra:
63 | :param buf_size:
64 | :return:
65 | """
66 | text = kwargs.get("text", "")
67 | extra = kwargs.get("extra", "")
68 | result = ctypes.create_unicode_buffer(buf_size)
69 | AUTO_IT.AU3_ControlCommand(LPCWSTR(title), LPCWSTR(text), LPCWSTR(control),
70 | LPCWSTR(command), LPCWSTR(extra),
71 | result, INT(buf_size))
72 |
73 | return result.value.rstrip()
74 |
75 |
76 | @api.check(1, "no window match the criteria")
77 | def control_command_by_handle(hwnd, h_ctrl, command, buf_size=256, **kwargs):
78 | """
79 |
80 | :param hwnd:
81 | :param h_ctrl:
82 | :param command:
83 | :param kwargs:
84 | :return:
85 | """
86 | extra = kwargs.get("extra", "")
87 | result = ctypes.create_unicode_buffer(buf_size)
88 |
89 | AUTO_IT.AU3_ControlCommandByHandle(
90 | HWND(hwnd), HWND(h_ctrl), LPCWSTR(command), LPCWSTR(extra), result,
91 | INT(buf_size))
92 | return result.value.rstrip()
93 |
94 |
95 | @api.check(1, "Window/Control could not be found")
96 | def control_list_view(title, control, command, **kwargs):
97 | """
98 |
99 | :param title:
100 | :param control:
101 | :param command:
102 | :param args:
103 | :param kwargs:
104 | :return:
105 | """
106 | text = kwargs.get("text", "")
107 | buf_size = kwargs.get("buf_size", 256)
108 | result = ctypes.create_unicode_buffer(buf_size)
109 | extra1 = kwargs.get("extras1", "")
110 | extra2 = kwargs.get("extras2", "")
111 |
112 | AUTO_IT.AU3_ControlListView(
113 | LPCWSTR(title), LPCWSTR(text), LPCWSTR(control), LPCWSTR(command),
114 | LPCWSTR(extra1), LPCWSTR(extra2), result, INT(buf_size)
115 | )
116 | return result.value.rstrip()
117 |
118 |
119 | @api.check(1, "Window/Control could not be found")
120 | def control_list_view_by_handle(hwnd, h_ctrl, command, **kwargs):
121 | """
122 |
123 | :param hwnd:
124 | :param h_ctrl:
125 | :param command:
126 | :param kwargs:
127 | :return:
128 | """
129 | extra1 = kwargs.get("extra1", "")
130 | extra2 = kwargs.get("extra2", "")
131 | buf_size = kwargs.get("buf_size", 256)
132 | result = ctypes.create_unicode_buffer(buf_size)
133 |
134 | AUTO_IT.AU3_ControlListViewByHandle(
135 | HWND(hwnd), HWND(h_ctrl), LPCWSTR(command),
136 | LPCWSTR(extra1), LPCWSTR(extra2), result, INT(buf_size)
137 | )
138 | return result.value.rstrip()
139 |
140 |
141 | @api.check(2, "Window/Control could not be found")
142 | def control_disable(title, control, **kwargs):
143 | """
144 |
145 | :param title:
146 | :param control:
147 | :param kwargs:
148 | :return:
149 | """
150 | text = kwargs.get("text", "")
151 |
152 | ret = AUTO_IT.AU3_ControlDisable(LPCWSTR(title), LPCWSTR(text),
153 | LPCWSTR(control))
154 | return ret
155 |
156 |
157 | @api.check(2, "Window/Control could not be found")
158 | def control_disable_by_handle(hwnd, h_ctrl):
159 | """
160 |
161 | :param hwnd:
162 | :param h_ctrl:
163 | :return:
164 | """
165 | ret = AUTO_IT.AU3_ControlDisableByHandle(HWND(hwnd), HWND(h_ctrl))
166 | return ret
167 |
168 |
169 | @api.check(2, "Window/Control could not be found")
170 | def control_enable(title, control, **kwargs):
171 | """
172 |
173 | :param title:
174 | :param control:
175 | :param kwargs:
176 | :return:
177 | """
178 | text = kwargs.get("text", "")
179 |
180 | ret = AUTO_IT.AU3_ControlEnable(LPCWSTR(title), LPCWSTR(text),
181 | LPCWSTR(control))
182 | return ret
183 |
184 |
185 | @api.check(2, "Window/Control could not be found")
186 | def control_enable_by_handle(hwnd, h_ctrl):
187 | """
188 |
189 | :param hwnd:
190 | :param h_ctrl:
191 | :return:
192 | """
193 | ret = AUTO_IT.AU3_ControlEnableByHandle(HWND(hwnd), HWND(h_ctrl))
194 | return ret
195 |
196 |
197 | @api.check(2, "Window/Control could not be found")
198 | def control_focus(title, control, **kwargs):
199 | """
200 |
201 | :param title:
202 | :param control:
203 | :param kwargs:
204 | :return:
205 | """
206 | text = kwargs.get("text", "")
207 |
208 | ret = AUTO_IT.AU3_ControlFocus(
209 | LPCWSTR(title), LPCWSTR(text), LPCWSTR(control))
210 | return ret
211 |
212 |
213 | @api.check(2, "Window/Control could not be found")
214 | def control_focus_by_handle(hwnd, h_ctrl):
215 | """
216 |
217 | :param hwnd:
218 | :param h_ctrl:
219 | :return:
220 | """
221 | ret = AUTO_IT.AU3_ControlFocusByHandle(HWND(hwnd), HWND(h_ctrl))
222 | return ret
223 |
224 |
225 | @api.check(1, "Window/Control could not be found")
226 | def control_get_focus(title, **kwargs):
227 | """
228 |
229 | :param title:
230 | :param kwargs:
231 | :return:
232 | """
233 | buf_size = kwargs.get("buf_size", 256)
234 | text = kwargs.get("text", "")
235 | ctrl_with_focus = ctypes.create_unicode_buffer(buf_size)
236 |
237 | AUTO_IT.AU3_ControlGetFocus(
238 | LPCWSTR(title), LPCWSTR(text), ctrl_with_focus, INT(buf_size))
239 | return ctrl_with_focus.value.rstrip()
240 |
241 |
242 | @api.check(1, "Window/Control could not be found")
243 | def control_get_focus_by_handle(hwnd, buf_size=256):
244 | """
245 |
246 | :param hwnd:
247 | :param buf_size:
248 | :return:
249 | """
250 | ctrl_with_focus = ctypes.create_unicode_buffer(buf_size)
251 |
252 | AUTO_IT.AU3_ControlGetFocusByHandle(HWND(hwnd), ctrl_with_focus,
253 | INT(buf_size))
254 | return ctrl_with_focus.value.rstrip()
255 |
256 |
257 | @api.check(1, "Window/Control could not be found")
258 | def control_get_handle(hwnd, control):
259 | """
260 |
261 | :param hwnd:
262 | :param control:
263 | :return:
264 | """
265 | ret = AUTO_IT.AU3_ControlGetHandle(HWND(hwnd), LPCWSTR(control))
266 | return ret
267 |
268 |
269 | @api.check(1, "Window/Control could not be found")
270 | def control_get_handle_as_text(title, control, **kwargs):
271 | """
272 |
273 | :param title:
274 | :param control:
275 | :param kwargs:
276 | :return:
277 | """
278 | text = kwargs.get("text", "")
279 | buf_size = kwargs.get("buf_size", 32)
280 | ret_text = ctypes.create_unicode_buffer(buf_size)
281 |
282 | AUTO_IT.AU3_ControlGetHandleAsText(
283 | LPCWSTR(title), LPCWSTR(text), LPCWSTR(control),
284 | ret_text, INT(buf_size)
285 | )
286 | return ret_text.value.rstrip()
287 |
288 |
289 | @api.check(1, "Window/Control could not be found")
290 | def control_get_pos(title, control, text=""):
291 | """
292 |
293 | :param title:
294 | :param control:
295 | :param text:
296 | :return:
297 | """
298 | rect = RECT()
299 |
300 | AUTO_IT.AU3_ControlGetPos(
301 | LPCWSTR(title), LPCWSTR(text), LPCWSTR(control),
302 | ctypes.byref(rect)
303 | )
304 | return rect.left, rect.top, rect.right, rect.bottom
305 |
306 |
307 | @api.check(1, "Window/Control could not be found")
308 | def control_get_pos_by_handle(hwnd, h_ctrl):
309 | """
310 |
311 | :param hwnd:
312 | :param h_ctrl:
313 | :return:
314 | """
315 | rect = RECT()
316 |
317 | AUTO_IT.AU3_ControlGetPosByHandle(HWND(hwnd), HWND(h_ctrl),
318 | ctypes.byref(rect))
319 | return rect.left, rect.top, rect.right, rect.bottom
320 |
321 |
322 | @api.check(1, "Window/Control could not be found")
323 | def control_get_text(title, control, **kwargs):
324 | """
325 |
326 | :param title:
327 | :param control:
328 | :param kwargs:
329 | :return:
330 | """
331 | text = kwargs.get("text", "")
332 | buf_size = kwargs.get("buf_size", 256)
333 | ctrl_text = ctypes.create_unicode_buffer(buf_size)
334 |
335 | AUTO_IT.AU3_ControlGetText(
336 | LPCWSTR(title), LPCWSTR(text), LPCWSTR(control),
337 | ctrl_text, INT(buf_size)
338 | )
339 |
340 | return ctrl_text.value.rstrip()
341 |
342 |
343 | @api.check(1, "Window/Control could not be found")
344 | def control_get_text_by_handle(hwnd, h_ctrl, **kwargs):
345 | """
346 |
347 | :param hwnd:
348 | :param h_ctrl:
349 | :return:
350 | """
351 | buf_size = kwargs.get("buf_size", 256)
352 | ctrl_text = ctypes.create_unicode_buffer(buf_size)
353 |
354 | AUTO_IT.AU3_ControlGetTextByHandle(
355 | HWND(hwnd), HWND(h_ctrl), ctrl_text, INT(buf_size)
356 | )
357 |
358 | return ctrl_text.value.rstrip()
359 |
360 |
361 | @api.check(2, "Window/Control could not be found")
362 | def control_hide(title, control, **kwargs):
363 | """
364 |
365 | :param title:
366 | :param control:
367 | :param kwargs:
368 | :return:
369 | """
370 | text = kwargs.get("text", "")
371 |
372 | ret = AUTO_IT.AU3_ControlHide(
373 | LPCWSTR(title), LPCWSTR(text), LPCWSTR(control))
374 | return ret
375 |
376 |
377 | @api.check(2, "Window/Control could not be found")
378 | def control_hide_by_handle(hwnd, h_ctrl):
379 | """
380 |
381 | :param hwnd:
382 | :param h_ctrl:
383 | :return:
384 | """
385 | ret = AUTO_IT.AU3_ControlHideByHandle(HWND(hwnd), HWND(h_ctrl))
386 | return ret
387 |
388 |
389 | @api.check(2, "Window/Control could not be found")
390 | def control_move(title, control, x, y, width=-1, height=-1, **kwargs):
391 | """
392 |
393 | :param title:
394 | :param control:
395 | :param x:
396 | :param y:
397 | :param kwargs:
398 | :return:
399 | """
400 | text = kwargs.get("text", "")
401 |
402 | ret = AUTO_IT.AU3_ControlMove(
403 | LPCWSTR(title), LPCWSTR(text), LPCWSTR(control),
404 | INT(x), INT(y), INT(width), INT(height)
405 | )
406 | return ret
407 |
408 |
409 | @api.check(2, "Window/Control could not be found")
410 | def control_move_by_handle(hwnd, h_ctrl, x, y, width=-1, height=-1):
411 | """
412 |
413 | :param hwnd:
414 | :param h_ctrl:
415 | :param x:
416 | :param y:
417 | :param width:
418 | :param height:
419 | :return:
420 | """
421 | ret = AUTO_IT.AU3_ControlMoveByHandle(
422 | HWND(hwnd), HWND(h_ctrl), INT(x), INT(y), INT(width), INT(height)
423 | )
424 | return ret
425 |
426 |
427 | @api.check(2, "Window/Control could not be found")
428 | def control_send(title, control, send_text, mode=0, **kwargs):
429 | """
430 |
431 | :param title:
432 | :param control:
433 | :param send_text:
434 | :param mode:
435 | flag = 0 (default), Text contains special characters like + to indicate
436 | SHIFT and {LEFT} to indicate left arrow.
437 | flag = 1, keys are sent raw.
438 | :param kwargs:
439 | :return:
440 | """
441 | text = kwargs.get("text", "")
442 |
443 | ret = AUTO_IT.AU3_ControlSend(
444 | LPCWSTR(title), LPCWSTR(text), LPCWSTR(control),
445 | LPCWSTR(send_text), INT(mode)
446 | )
447 | return ret
448 |
449 |
450 | @api.check(2, "Window/Control could not be found")
451 | def control_send_by_handle(hwnd, h_ctrl, send_text, mode=0):
452 | """
453 |
454 | :param hwnd:
455 | :param h_ctrl:
456 | :param send_text:
457 | :param mode:
458 | :return:
459 | """
460 |
461 | ret = AUTO_IT.AU3_ControlSendByHandle(
462 | HWND(hwnd), HWND(h_ctrl), LPCWSTR(send_text), INT(mode)
463 | )
464 | return ret
465 |
466 |
467 | @api.check(2, "Window/Control could not be found")
468 | def control_set_text(title, control, control_text, **kwargs):
469 | """
470 |
471 | :param title:
472 | :param control:
473 | :param control_text:
474 | :param kwargs:
475 | :return:
476 | """
477 | text = kwargs.get("text", "")
478 |
479 | ret = AUTO_IT.AU3_ControlSetText(
480 | LPCWSTR(title), LPCWSTR(text), LPCWSTR(control), LPCWSTR(control_text)
481 | )
482 | return ret
483 |
484 |
485 | @api.check(2, "Window/Control could not be found")
486 | def control_set_text_by_handle(hwnd, h_ctrl, control_text):
487 | """
488 |
489 | :param hwnd:
490 | :param h_ctrl:
491 | :param control_text:
492 | :return:
493 | """
494 | ret = AUTO_IT.AU3_ControlSetTextByHandle(
495 | HWND(hwnd), HWND(h_ctrl), LPCWSTR(control_text)
496 | )
497 | return ret
498 |
499 |
500 | @api.check(2, "Window/Control could not be found")
501 | def control_show(title, control, **kwargs):
502 | """
503 |
504 | :param title:
505 | :param control:
506 | :param kwargs:
507 | :return:
508 | """
509 | text = kwargs.get("text", "")
510 |
511 | ret = AUTO_IT.AU3_ControlShow(
512 | LPCWSTR(title), LPCWSTR(text), LPCWSTR(control))
513 | return ret
514 |
515 |
516 | @api.check(2, "Window/Control could not be found")
517 | def control_show_by_handle(hwnd, h_ctrl):
518 | """
519 |
520 | :param hwnd:
521 | :param h_ctrl:
522 | :return:
523 | """
524 | ret = AUTO_IT.AU3_ControlShowByHandle(HWND(hwnd), HWND(h_ctrl))
525 | return ret
526 |
527 |
528 | @api.check(1, "Window/Control could not be found")
529 | def control_tree_view(title, control, command, **kwargs):
530 | """
531 |
532 | :param title:
533 | :param control:
534 | :param command:
535 | :param args:
536 | :param kwargs:
537 | :return:
538 | """
539 | text = kwargs.get("text", "")
540 | buf_size = kwargs.get("buf_size", 256)
541 | result = ctypes.create_unicode_buffer(buf_size)
542 | extra1 = kwargs.get("extras1", "")
543 | extra2 = kwargs.get("extras2", "")
544 |
545 | AUTO_IT.AU3_ControlTreeView(
546 | LPCWSTR(title), LPCWSTR(text), LPCWSTR(control), LPCWSTR(command),
547 | LPCWSTR(extra1), LPCWSTR(extra2), result, INT(buf_size)
548 | )
549 |
550 | return result.value.rstrip()
551 |
552 |
553 | @api.check(1, "Window/Control could not be found")
554 | def control_tree_view_by_handle(hwnd, h_ctrl, command, **kwargs):
555 | """
556 |
557 | :param hwnd:
558 | :param h_ctrl:
559 | :param command:
560 | :param kwargs:
561 | :return:
562 | """
563 | extra1 = kwargs.get("extra1", "")
564 | extra2 = kwargs.get("extra2", "")
565 | buf_size = kwargs.get("buf_size", 256)
566 | result = ctypes.create_unicode_buffer(buf_size)
567 |
568 | AUTO_IT.AU3_ControlTreeViewByHandle(
569 | HWND(hwnd), HWND(h_ctrl), LPCWSTR(command),
570 | LPCWSTR(extra1), LPCWSTR(extra2), result, INT(buf_size)
571 | )
572 | return result.value.rstrip()
573 |
574 |
575 | @api.check(1, "Window/Control could not be found")
576 | def statusbar_get_text(title, text="", part=1, buf_size=256):
577 | """
578 |
579 | :param title:
580 | :param text:
581 | :param part: The "part" number of the status bar to read - the default
582 | is 1. 1 is the first possible part and usually the one that contains
583 | the useful messages like "Ready" "Loading...", etc.
584 | :param buf_size:
585 | :return:
586 | """
587 | sb_text = ctypes.create_unicode_buffer(buf_size)
588 |
589 | AUTO_IT.AU3_StatusbarGetText(
590 | LPCWSTR(title), LPCWSTR(text), INT(part), sb_text, INT(buf_size)
591 | )
592 |
593 | return sb_text.value.rstrip()
594 |
595 |
596 | @api.check(1, "Window/Control could not be found")
597 | def statusbar_get_text_by_handle(hwnd, part=1, buf_size=256):
598 | """
599 |
600 | :param hwnd:
601 | :param part:
602 | :param buf_size:
603 | :return:
604 | """
605 | statusbar_text = ctypes.create_unicode_buffer(buf_size)
606 |
607 | AUTO_IT.AU3_StatusbarGetTextByHandle(
608 | HWND(hwnd), INT(part), statusbar_text, INT(buf_size)
609 | )
610 |
611 | return statusbar_text.value.rstrip()
--------------------------------------------------------------------------------
/ExtDepLibs/autoit/control.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VotiroLabs/Word-Quick-Fuzzer/fc4dfd29aba2a8f7ec392b8e26e4be6e29597bd8/ExtDepLibs/autoit/control.pyc
--------------------------------------------------------------------------------
/ExtDepLibs/autoit/lib/AutoItX3.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VotiroLabs/Word-Quick-Fuzzer/fc4dfd29aba2a8f7ec392b8e26e4be6e29597bd8/ExtDepLibs/autoit/lib/AutoItX3.dll
--------------------------------------------------------------------------------
/ExtDepLibs/autoit/lib/AutoItX3_x64.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VotiroLabs/Word-Quick-Fuzzer/fc4dfd29aba2a8f7ec392b8e26e4be6e29597bd8/ExtDepLibs/autoit/lib/AutoItX3_x64.dll
--------------------------------------------------------------------------------
/ExtDepLibs/autoit/process.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | __author__ = 'Jace Xu'
4 |
5 | from autoit import AUTO_IT
6 | from autoit import api, error
7 | from autoit import Properties
8 | from autoit import AutoItError
9 | from ctypes.wintypes import *
10 |
11 |
12 | @api.check(1, "run program failed")
13 | def run(filename, work_dir="", show_flag=Properties.SW_SHOWNORMAL):
14 | """
15 |
16 | :param filename:
17 | :param work_dir:
18 | :param show_flag:
19 | :return:
20 | """
21 | ret = AUTO_IT.AU3_Run(LPCWSTR(filename), LPCWSTR(work_dir),
22 | INT(show_flag))
23 | return ret
24 |
25 |
26 | @api.check(1, "run program failed")
27 | def run_wait(filename, work_dir="", show_flag=Properties.SW_SHOWNORMAL):
28 | """
29 |
30 | :param filename:
31 | :param work_dir:
32 | :param show_flag:
33 | :return:
34 | """
35 | ret = AUTO_IT.AU3_RunWait(LPCWSTR(filename), LPCWSTR(work_dir),
36 | INT(show_flag))
37 | return ret
38 |
39 |
40 | def process_close(process):
41 | """
42 | Terminates a named process.
43 | """
44 | ret = AUTO_IT.AU3_ProcessClose(LPCWSTR(process))
45 | return ret
46 |
47 |
48 | def process_exists(process):
49 | """
50 |
51 | :param process:
52 | :return:
53 | """
54 | ret = AUTO_IT.AU3_ProcessExists(LPCWSTR(process))
55 | return ret
56 |
57 |
58 | def process_set_priority(process, priority):
59 | """
60 | Changes the priority of a process
61 | :param process: The name or PID of the process to check.
62 | :param priority:A flag which determines what priority to set
63 | 0 - Idle/Low
64 | 1 - Below Normal (Not supported on Windows 95/98/ME)
65 | 2 - Normal
66 | 3 - Above Normal (Not supported on Windows 95/98/ME)
67 | 4 - High
68 | 5 - Realtime (Use with caution, may make the system unstable)
69 | :return:
70 | """
71 | ret = AUTO_IT.AU3_ProcessSetPriority(LPCWSTR(process), INT(priority))
72 | if ret == 0:
73 | if error() == 1:
74 | raise AutoItError("set priority failed")
75 | elif error() == 2:
76 | raise AutoItError("unsupported priority class be used")
77 | return ret
78 |
79 |
80 | @api.check(2, "the process wait timed out")
81 | def process_wait(process, timeout=0):
82 | """
83 | Pauses script execution until a given process exists.
84 | :param process:
85 | :param timeout:
86 | :return:
87 | """
88 | ret = AUTO_IT.AU3_ProcessWait(LPCWSTR(process), INT(timeout))
89 | return ret
90 |
91 |
92 | @api.check(2, "the process wait close timed out")
93 | def process_wait_close(process, timeout=0):
94 | """
95 | Pauses script execution until a given process does not exist.
96 | :param process:
97 | :param timeout:
98 | :return:
99 | """
100 | ret = AUTO_IT.AU3_ProcessWaitClose(LPCWSTR(process), INT(timeout))
101 | return ret
102 |
103 |
104 | @api.check(1, "run an external program failed")
105 | def run_as(user, domain, password, filename, logon_flag=1, work_dir="",
106 | show_flag=Properties.SW_SHOWNORMAL):
107 | """
108 | Runs an external program.
109 | :param user: username The user name to use.
110 | :param domain: The domain name to use.
111 | :param password: The password to use.
112 | :param logon_flag: 0 = do not load the user profile, 1 = (default) load
113 | the user profile, 2 = use for net credentials only
114 | :param filename: The name of the executable (EXE, BAT, COM, or PIF) to run.
115 | :param work_dir: The working directory.
116 | :param show_flag: The "show" flag of the executed program:
117 | SW_HIDE = Hidden window
118 | SW_MINIMIZE = Minimized window
119 | SW_MAXIMIZE = Maximized window
120 | :return:
121 | """
122 | ret = AUTO_IT.AU3_RunAs(
123 | LPCWSTR(user), LPCWSTR(domain), LPCWSTR(password), INT(logon_flag),
124 | LPCWSTR(filename), LPCWSTR(work_dir), INT(show_flag)
125 | )
126 | return ret
127 |
128 |
129 | @api.check(1, "run an external program failed")
130 | def run_as_wait(user, domain, password, filename, logon_flag=1, work_dir="",
131 | show_flag=Properties.SW_SHOWNORMAL):
132 | """
133 | Runs an external program.
134 | :param user: username The user name to use.
135 | :param domain: The domain name to use.
136 | :param password: The password to use.
137 | :param logon_flag: 0 = do not load the user profile, 1 = (default) load
138 | the user profile, 2 = use for net credentials only
139 | :param filename: The name of the executable (EXE, BAT, COM, or PIF) to run.
140 | :param work_dir: The working directory.
141 | :param show_flag: The "show" flag of the executed program:
142 | SW_HIDE = Hidden window
143 | SW_MINIMIZE = Minimized window
144 | SW_MAXIMIZE = Maximized window
145 | :return:
146 | """
147 | ret = AUTO_IT.AU3_RunAsWait(
148 | LPCWSTR(user), LPCWSTR(domain), LPCWSTR(password), INT(logon_flag),
149 | LPCWSTR(filename), LPCWSTR(work_dir), INT(show_flag)
150 | )
151 | return ret
152 |
153 |
154 | @api.check(2, "set shutdown failed")
155 | def shutdown(code):
156 | """
157 |
158 | :param code: The shutdown code is a combination of the following values:
159 | 0 = Logoff
160 | 1 = Shutdown
161 | 2 = Reboot
162 | 4 = Force
163 | 8 = Power down
164 | :return:
165 | """
166 | ret = AUTO_IT.AU3_Shutdown(INT(code))
167 | return ret
--------------------------------------------------------------------------------
/ExtDepLibs/autoit/process.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VotiroLabs/Word-Quick-Fuzzer/fc4dfd29aba2a8f7ec392b8e26e4be6e29597bd8/ExtDepLibs/autoit/process.pyc
--------------------------------------------------------------------------------
/ExtDepLibs/autoit/win.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VotiroLabs/Word-Quick-Fuzzer/fc4dfd29aba2a8f7ec392b8e26e4be6e29597bd8/ExtDepLibs/autoit/win.pyc
--------------------------------------------------------------------------------
/ExtDepLibs/domato/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # How to contribute
2 |
3 | We'd love to accept your patches and contributions to this project. There are
4 | just a few small guidelines you need to follow.
5 |
6 | ## Contributor License Agreement
7 |
8 | Contributions to any Google project must be accompanied by a Contributor License
9 | Agreement. This is necessary because you own the copyright to your changes, even
10 | after your contribution becomes part of this project. So this agreement simply
11 | gives us permission to use and redistribute your contributions as part of the
12 | project. Head over to to see your current
13 | agreements on file or to sign a new one.
14 |
15 | You generally only need to submit a CLA once, so if you've already submitted one
16 | (even if it was for a different project), you probably don't need to do it
17 | again.
18 |
19 | ## Code reviews
20 |
21 | All submissions, including submissions by project members, require review. We
22 | use GitHub pull requests for this purpose. Consult [GitHub Help] for more
23 | information on using pull requests.
24 |
25 | [GitHub Help]: https://help.github.com/articles/about-pull-requests/
26 |
--------------------------------------------------------------------------------
/ExtDepLibs/domato/LICENSE:
--------------------------------------------------------------------------------
1 |
2 | Apache License
3 | Version 2.0, January 2004
4 | http://www.apache.org/licenses/
5 |
6 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7 |
8 | 1. Definitions.
9 |
10 | "License" shall mean the terms and conditions for use, reproduction,
11 | and distribution as defined by Sections 1 through 9 of this document.
12 |
13 | "Licensor" shall mean the copyright owner or entity authorized by
14 | the copyright owner that is granting the License.
15 |
16 | "Legal Entity" shall mean the union of the acting entity and all
17 | other entities that control, are controlled by, or are under common
18 | control with that entity. For the purposes of this definition,
19 | "control" means (i) the power, direct or indirect, to cause the
20 | direction or management of such entity, whether by contract or
21 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
22 | outstanding shares, or (iii) beneficial ownership of such entity.
23 |
24 | "You" (or "Your") shall mean an individual or Legal Entity
25 | exercising permissions granted by this License.
26 |
27 | "Source" form shall mean the preferred form for making modifications,
28 | including but not limited to software source code, documentation
29 | source, and configuration files.
30 |
31 | "Object" form shall mean any form resulting from mechanical
32 | transformation or translation of a Source form, including but
33 | not limited to compiled object code, generated documentation,
34 | and conversions to other media types.
35 |
36 | "Work" shall mean the work of authorship, whether in Source or
37 | Object form, made available under the License, as indicated by a
38 | copyright notice that is included in or attached to the work
39 | (an example is provided in the Appendix below).
40 |
41 | "Derivative Works" shall mean any work, whether in Source or Object
42 | form, that is based on (or derived from) the Work and for which the
43 | editorial revisions, annotations, elaborations, or other modifications
44 | represent, as a whole, an original work of authorship. For the purposes
45 | of this License, Derivative Works shall not include works that remain
46 | separable from, or merely link (or bind by name) to the interfaces of,
47 | the Work and Derivative Works thereof.
48 |
49 | "Contribution" shall mean any work of authorship, including
50 | the original version of the Work and any modifications or additions
51 | to that Work or Derivative Works thereof, that is intentionally
52 | submitted to Licensor for inclusion in the Work by the copyright owner
53 | or by an individual or Legal Entity authorized to submit on behalf of
54 | the copyright owner. For the purposes of this definition, "submitted"
55 | means any form of electronic, verbal, or written communication sent
56 | to the Licensor or its representatives, including but not limited to
57 | communication on electronic mailing lists, source code control systems,
58 | and issue tracking systems that are managed by, or on behalf of, the
59 | Licensor for the purpose of discussing and improving the Work, but
60 | excluding communication that is conspicuously marked or otherwise
61 | designated in writing by the copyright owner as "Not a Contribution."
62 |
63 | "Contributor" shall mean Licensor and any individual or Legal Entity
64 | on behalf of whom a Contribution has been received by Licensor and
65 | subsequently incorporated within the Work.
66 |
67 | 2. Grant of Copyright License. Subject to the terms and conditions of
68 | this License, each Contributor hereby grants to You a perpetual,
69 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70 | copyright license to reproduce, prepare Derivative Works of,
71 | publicly display, publicly perform, sublicense, and distribute the
72 | Work and such Derivative Works in Source or Object form.
73 |
74 | 3. Grant of Patent License. Subject to the terms and conditions of
75 | this License, each Contributor hereby grants to You a perpetual,
76 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77 | (except as stated in this section) patent license to make, have made,
78 | use, offer to sell, sell, import, and otherwise transfer the Work,
79 | where such license applies only to those patent claims licensable
80 | by such Contributor that are necessarily infringed by their
81 | Contribution(s) alone or by combination of their Contribution(s)
82 | with the Work to which such Contribution(s) was submitted. If You
83 | institute patent litigation against any entity (including a
84 | cross-claim or counterclaim in a lawsuit) alleging that the Work
85 | or a Contribution incorporated within the Work constitutes direct
86 | or contributory patent infringement, then any patent licenses
87 | granted to You under this License for that Work shall terminate
88 | as of the date such litigation is filed.
89 |
90 | 4. Redistribution. You may reproduce and distribute copies of the
91 | Work or Derivative Works thereof in any medium, with or without
92 | modifications, and in Source or Object form, provided that You
93 | meet the following conditions:
94 |
95 | (a) You must give any other recipients of the Work or
96 | Derivative Works a copy of this License; and
97 |
98 | (b) You must cause any modified files to carry prominent notices
99 | stating that You changed the files; and
100 |
101 | (c) You must retain, in the Source form of any Derivative Works
102 | that You distribute, all copyright, patent, trademark, and
103 | attribution notices from the Source form of the Work,
104 | excluding those notices that do not pertain to any part of
105 | the Derivative Works; and
106 |
107 | (d) If the Work includes a "NOTICE" text file as part of its
108 | distribution, then any Derivative Works that You distribute must
109 | include a readable copy of the attribution notices contained
110 | within such NOTICE file, excluding those notices that do not
111 | pertain to any part of the Derivative Works, in at least one
112 | of the following places: within a NOTICE text file distributed
113 | as part of the Derivative Works; within the Source form or
114 | documentation, if provided along with the Derivative Works; or,
115 | within a display generated by the Derivative Works, if and
116 | wherever such third-party notices normally appear. The contents
117 | of the NOTICE file are for informational purposes only and
118 | do not modify the License. You may add Your own attribution
119 | notices within Derivative Works that You distribute, alongside
120 | or as an addendum to the NOTICE text from the Work, provided
121 | that such additional attribution notices cannot be construed
122 | as modifying the License.
123 |
124 | You may add Your own copyright statement to Your modifications and
125 | may provide additional or different license terms and conditions
126 | for use, reproduction, or distribution of Your modifications, or
127 | for any such Derivative Works as a whole, provided Your use,
128 | reproduction, and distribution of the Work otherwise complies with
129 | the conditions stated in this License.
130 |
131 | 5. Submission of Contributions. Unless You explicitly state otherwise,
132 | any Contribution intentionally submitted for inclusion in the Work
133 | by You to the Licensor shall be under the terms and conditions of
134 | this License, without any additional terms or conditions.
135 | Notwithstanding the above, nothing herein shall supersede or modify
136 | the terms of any separate license agreement you may have executed
137 | with Licensor regarding such Contributions.
138 |
139 | 6. Trademarks. This License does not grant permission to use the trade
140 | names, trademarks, service marks, or product names of the Licensor,
141 | except as required for reasonable and customary use in describing the
142 | origin of the Work and reproducing the content of the NOTICE file.
143 |
144 | 7. Disclaimer of Warranty. Unless required by applicable law or
145 | agreed to in writing, Licensor provides the Work (and each
146 | Contributor provides its Contributions) on an "AS IS" BASIS,
147 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148 | implied, including, without limitation, any warranties or conditions
149 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150 | PARTICULAR PURPOSE. You are solely responsible for determining the
151 | appropriateness of using or redistributing the Work and assume any
152 | risks associated with Your exercise of permissions under this License.
153 |
154 | 8. Limitation of Liability. In no event and under no legal theory,
155 | whether in tort (including negligence), contract, or otherwise,
156 | unless required by applicable law (such as deliberate and grossly
157 | negligent acts) or agreed to in writing, shall any Contributor be
158 | liable to You for damages, including any direct, indirect, special,
159 | incidental, or consequential damages of any character arising as a
160 | result of this License or out of the use or inability to use the
161 | Work (including but not limited to damages for loss of goodwill,
162 | work stoppage, computer failure or malfunction, or any and all
163 | other commercial damages or losses), even if such Contributor
164 | has been advised of the possibility of such damages.
165 |
166 | 9. Accepting Warranty or Additional Liability. While redistributing
167 | the Work or Derivative Works thereof, You may choose to offer,
168 | and charge a fee for, acceptance of support, warranty, indemnity,
169 | or other liability obligations and/or rights consistent with this
170 | License. However, in accepting such obligations, You may act only
171 | on Your own behalf and on Your sole responsibility, not on behalf
172 | of any other Contributor, and only if You agree to indemnify,
173 | defend, and hold each Contributor harmless for any liability
174 | incurred by, or claims asserted against, such Contributor by reason
175 | of your accepting any such warranty or additional liability.
176 |
177 | END OF TERMS AND CONDITIONS
178 |
179 | APPENDIX: How to apply the Apache License to your work.
180 |
181 | To apply the Apache License to your work, attach the following
182 | boilerplate notice, with the fields enclosed by brackets "[]"
183 | replaced with your own identifying information. (Don't include
184 | the brackets!) The text should be enclosed in the appropriate
185 | comment syntax for the file format. We also recommend that a
186 | file or class name and description of purpose be included on the
187 | same "printed page" as the copyright notice for easier
188 | identification within third-party archives.
189 |
190 | Copyright [yyyy] [name of copyright owner]
191 |
192 | Licensed under the Apache License, Version 2.0 (the "License");
193 | you may not use this file except in compliance with the License.
194 | You may obtain a copy of the License at
195 |
196 | http://www.apache.org/licenses/LICENSE-2.0
197 |
198 | Unless required by applicable law or agreed to in writing, software
199 | distributed under the License is distributed on an "AS IS" BASIS,
200 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201 | See the License for the specific language governing permissions and
202 | limitations under the License.
203 |
--------------------------------------------------------------------------------
/ExtDepLibs/domato/README.md:
--------------------------------------------------------------------------------
1 | # Domato
2 | #### A DOM fuzzer
3 |
4 | Written and maintained by Ivan Fratric,
5 |
6 | Copyright 2017 Google Inc. All Rights Reserved.
7 |
8 | Licensed under the Apache License, Version 2.0 (the "License");
9 | you may not use this file except in compliance with the License.
10 | You may obtain a copy of the License at
11 |
12 | http://www.apache.org/licenses/LICENSE-2.0
13 |
14 | Unless required by applicable law or agreed to in writing, software
15 | distributed under the License is distributed on an "AS IS" BASIS,
16 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 | See the License for the specific language governing permissions and
18 | limitations under the License.
19 |
20 | #### Usage
21 |
22 | To generate a single .html sample run:
23 |
24 | `python generator.py