How to use object method in pytest-mock

Best Python code snippet using pytest-mock

maec40.py

Source:maec40.py Github

copy

Full Screen

1# Copyright (c) 2013, The MITRE Corporation2# Copyright (c) 2010-2014, Cuckoo Developers3# All rights reserved.4# This file is part of Cuckoo Sandbox - http://www.cuckoosandbox.org5# See the file "docs/LICENSE" for copying permission.6from modules.processing.behavior import fix_key7api_call_mappings = {8"NtCreateFile" : {"action_name" : "create file",9 "action_vocab" : "maecVocabs:FileActionNameVocab-1.0",10 "parameter_associated_objects" : {"FileHandle" : {"associated_object_type" : "WindowsHandleObjectType",11 "associated_object_element" : "ID",12 "association_type" : "output",13 "forced" : {"associated_object_element" : "Type", 14 "value" : "File"}},15 "FileName" : {"associated_object_type" : "FileObjectType",16 "associated_object_element" : "File_Path",17 "association_type" : "output"}}},18"NtOpenFile" : {"action_name" : "open file",19 "action_vocab" : "maecVocabs:FileActionNameVocab-1.0",20 "parameter_associated_objects" : {"FileHandle" : {"associated_object_type" : "WindowsHandleObjectType",21 "associated_object_element" : "ID",22 "association_type" : "output",23 "forced" : {"associated_object_element" : "Type", 24 "value" : "File"}},25 "FileName" : {"associated_object_type" : "FileObjectType",26 "associated_object_element" : "File_Path",27 "association_type" : "input"}}},28"NtReadFile" : {"action_name" : "read from file",29 "action_vocab" : "maecVocabs:FileActionNameVocab-1.0",30 "parameter_associated_objects" : {"FileHandle" : {"associated_object_type" : "WindowsHandleObjectType",31 "associated_object_element" : "ID",32 "association_type" : "input",33 "forced" : {"associated_object_element" : "Type", 34 "value" : "File"}}}},35"NtWriteFile" : {"action_name" : "write to file",36 "action_vocab" : "maecVocabs:FileActionNameVocab-1.0",37 "parameter_associated_objects" : {"FileHandle" : {"associated_object_type" : "WindowsHandleObjectType",38 "associated_object_element" : "ID",39 "association_type" : "input",40 "forced" : {"associated_object_element" : "Type", 41 "value" : "File"}}}},42"NtDeleteFile" : {"action_name" : "delete file",43 "action_vocab" : "maecVocabs:FileActionNameVocab-1.0",44 "parameter_associated_objects" : {"FileName" : {"associated_object_type" : "FileObjectType",45 "associated_object_element" : "File_Path",46 "association_type" : "input"}}},47"NtDeviceIoControlFile" : {"action_name" : "send control code to file",48 "action_vocab" : "maecVocabs:FileActionNameVocab-1.0",49 "parameter_associated_objects" : {"FileHandle" : {"associated_object_type" : "WindowsHandleObjectType",50 "associated_object_element" : "ID",51 "association_type" : "input",52 "forced" : {"associated_object_element" : "Type", 53 "value" : "File"}}}},54"NtQueryDirectoryFile" : {"action_name" : "find file",55 "action_vocab" : "maecVocabs:FileActionNameVocab-1.0",56 "parameter_associated_objects" : {"FileHandle" : {"associated_object_type" : "WindowsHandleObjectType",57 "associated_object_element" : "ID",58 "association_type" : "input",59 "forced" : {"associated_object_element" : "Type", 60 "value" : "File"}},61 "FileName" : {"associated_object_type" : "FileObjectType",62 "associated_object_element" : "File_Path",63 "association_type" : "input"}}},64"NtQueryInformationFile" : {"action_name" : "get file attributes",65 "action_vocab" : "maecVocabs:FileActionNameVocab-1.0",66 "parameter_associated_objects" : {"FileHandle" : {"associated_object_type" : "WindowsHandleObjectType",67 "associated_object_element" : "ID",68 "association_type" : "input",69 "forced" : {"associated_object_element" : "Type", 70 "value" : "File"}}}},71"NtSetInformationFile" : {"action_name" : "set file attributes",72 "action_vocab" : "maecVocabs:FileActionNameVocab-1.0",73 "parameter_associated_objects" : {"FileHandle" : {"associated_object_type" : "WindowsHandleObjectType",74 "associated_object_element" : "ID",75 "association_type" : "input",76 "forced" : {"associated_object_element" : "Type", 77 "value" : "File"}}}},78"NtCreateDirectoryObject" : {"action_name" : "create directory",79 "action_vocab" : "maecVocabs:DirectoryActionNameVocab-1.0",80 "parameter_associated_objects" : {"DirectoryHandle" : {"associated_object_type" : "WindowsHandleObjectType",81 "associated_object_element" : "ID",82 "association_type" : "output",83 "forced" : {"associated_object_element" : "Type", 84 "value" : "File"}}}},85"CreateDirectoryW" : {"action_name" : "create directory",86 "action_vocab" : "maecVocabs:DirectoryActionNameVocab-1.0",87 "parameter_associated_objects" : {"DirectoryName" : {"associated_object_type" : "FileObjectType",88 "associated_object_element" : "File_Path",89 "association_type" : "output"}}},90"CreateDirectoryExW" : {"action_name" : "create directory",91 "action_vocab" : "maecVocabs:DirectoryActionNameVocab-1.0",92 "parameter_associated_objects" : {"DirectoryName" : {"associated_object_type" : "FileObjectType",93 "associated_object_element" : "File_Path",94 "association_type" : "output"}}},95"RemoveDirectoryA" : {"action_name" : "delete directory",96 "action_vocab" : "maecVocabs:DirectoryActionNameVocab-1.0",97 "parameter_associated_objects" : {"DirectoryName" : {"associated_object_type" : "FileObjectType",98 "associated_object_element" : "File_Path",99 "association_type" : "input"}}},100"RemoveDirectoryW" : {"action_name" : "delete directory",101 "action_vocab" : "maecVocabs:DirectoryActionNameVocab-1.0",102 "parameter_associated_objects" : {"DirectoryName" : {"associated_object_type" : "FileObjectType",103 "associated_object_element" : "File_Path",104 "association_type" : "input"}}},105"MoveFileWithProgressW" : {"action_name" : "move file",106 "action_vocab" : "maecVocabs:FileActionNameVocab-1.0",107 "parameter_associated_objects" : {"ExistingFileName" : {"associated_object_type" : "FileObjectType",108 "associated_object_element" : "File_Path",109 "association_type" : "input"},110 "NewFileName" : {"associated_object_type" : "FileObjectType",111 "associated_object_element" : "File_Path",112 "association_type" : "output"}}},113"FindFirstFileExA" : {"action_name" : "find file",114 "action_vocab" : "maecVocabs:FileActionNameVocab-1.0",115 "parameter_associated_objects" : {"FileName" : {"associated_object_type" : "FileObjectType",116 "associated_object_element" : "File_Path",117 "association_type" : "input"}}},118"FindFirstFileExW" : {"action_name" : "find file",119 "action_vocab" : "maecVocabs:FileActionNameVocab-1.0",120 "parameter_associated_objects" : {"FileName" : {"associated_object_type" : "FileObjectType",121 "associated_object_element" : "File_Path",122 "association_type" : "input"}}},123"CopyFileA" : {"action_name" : "copy file",124 "action_vocab" : "maecVocabs:FileActionNameVocab-1.0",125 "parameter_associated_objects" : {"ExistingFileName" : {"associated_object_type" : "FileObjectType",126 "associated_object_element" : "File_Path",127 "association_type" : "input"},128 "NewFileName" : {"associated_object_type" : "FileObjectType",129 "associated_object_element" : "File_Path",130 "association_type" : "output"}}},131"CopyFileW" : {"action_name" : "copy file",132 "action_vocab" : "maecVocabs:FileActionNameVocab-1.0",133 "parameter_associated_objects" : {"ExistingFileName" : {"associated_object_type" : "FileObjectType",134 "associated_object_element" : "File_Path",135 "association_type" : "input"},136 "NewFileName" : {"associated_object_type" : "FileObjectType",137 "associated_object_element" : "File_Path",138 "association_type" : "output"}}},139"CopyFileExW" : {"action_name" : "copy file",140 "action_vocab" : "maecVocabs:FileActionNameVocab-1.0",141 "parameter_associated_objects" : {"ExistingFileName" : {"associated_object_type" : "FileObjectType",142 "associated_object_element" : "File_Path",143 "association_type" : "input"},144 "NewFileName" : {"associated_object_type" : "FileObjectType",145 "associated_object_element" : "File_Path",146 "association_type" : "output"}}},147"DeleteFileA" : {"action_name" : "delete file",148 "action_vocab" : "maecVocabs:FileActionNameVocab-1.0",149 "parameter_associated_objects" : {"FileName" : {"associated_object_type" : "FileObjectType",150 "associated_object_element" : "File_Path",151 "association_type" : "input"}}},152"DeleteFileW" : {"action_name" : "delete file",153 "action_vocab" : "maecVocabs:FileActionNameVocab-1.0",154 "parameter_associated_objects" : {"FileName" : {"associated_object_type" : "FileObjectType",155 "associated_object_element" : "File_Path",156 "association_type" : "input"}}},157"RegOpenKeyExA" : {"action_name" : "open registry key",158 "action_vocab" : "maecVocabs:RegistryActionNameVocab-1.0",159 "parameter_associated_objects" : {"Registry" : {"associated_object_type" : "WindowsRegistryKeyObjectType",160 "associated_object_element" : "Hive",161 "association_type" : "input",162 "post_processing" : "hiveHexToString"},163 "SubKey" : {"associated_object_type" : "WindowsRegistryKeyObjectType",164 "associated_object_element" : "Key",165 "association_type" : "input",},166 "Handle" : {"associated_object_type" : "WindowsHandleObjectType",167 "associated_object_element" : "ID",168 "association_type" : "output",169 "forced" : {"associated_object_element" : "Type", 170 "value" : "RegistryKey"}},171 "group_together" : ["Registry", "SubKey"]}},172"RegOpenKeyExW" : {"action_name" : "open registry key",173 "action_vocab" : "maecVocabs:RegistryActionNameVocab-1.0",174 "parameter_associated_objects" : {"Registry" : {"associated_object_type" : "WindowsRegistryKeyObjectType",175 "associated_object_element" : "Hive",176 "association_type" : "input",177 "post_processing" : "hiveHexToString"},178 "SubKey" : {"associated_object_type" : "WindowsRegistryKeyObjectType",179 "associated_object_element" : "Key",180 "association_type" : "input",},181 "Handle" : {"associated_object_type" : "WindowsHandleObjectType",182 "associated_object_element" : "ID",183 "association_type" : "output",184 "forced" : {"associated_object_element" : "Type", 185 "value" : "RegistryKey"}},186 "group_together" : ["Registry", "SubKey"]}},187"RegCreateKeyExA" : {"action_name" : "create registry key",188 "action_vocab" : "maecVocabs:RegistryActionNameVocab-1.0",189 "parameter_associated_objects" : {"Registry" : {"associated_object_type" : "WindowsRegistryKeyObjectType",190 "associated_object_element" : "Hive",191 "association_type" : "output",192 "post_processing" : "hiveHexToString"},193 "SubKey" : {"associated_object_type" : "WindowsRegistryKeyObjectType",194 "associated_object_element" : "Key",195 "association_type" : "output"},196 "Handle" : {"associated_object_type" : "WindowsHandleObjectType",197 "associated_object_element" : "ID",198 "association_type" : "output",199 "forced" : {"associated_object_element" : "Type", 200 "value" : "RegistryKey"}},201 "group_together" : ["Registry", "SubKey"]}},202"RegCreateKeyExW" : {"action_name" : "create registry key",203 "action_vocab" : "maecVocabs:RegistryActionNameVocab-1.0",204 "parameter_associated_objects" : {"Registry" : {"associated_object_type" : "WindowsRegistryKeyObjectType",205 "associated_object_element" : "Hive",206 "association_type" : "output",207 "post_processing" : "hiveHexToString"},208 "SubKey" : {"associated_object_type" : "WindowsRegistryKeyObjectType",209 "associated_object_element" : "Key",210 "association_type" : "output"},211 "Handle" : {"associated_object_type" : "WindowsHandleObjectType",212 "associated_object_element" : "ID",213 "association_type" : "output",214 "forced" : {"associated_object_element" : "Type", 215 "value" : "RegistryKey"}},216 "group_together" : ["Registry", "SubKey"]}},217"RegDeleteKeyA" : {"action_name" : "delete registry key",218 "action_vocab" : "maecVocabs:RegistryActionNameVocab-1.0",219 "parameter_associated_objects" : {"SubKey" : {"associated_object_type" : "WindowsRegistryKeyObjectType",220 "associated_object_element" : "Key",221 "association_type" : "input"},222 "Handle" : {"associated_object_type" : "WindowsHandleObjectType",223 "associated_object_element" : "ID",224 "association_type" : "input",225 "forced" : {"associated_object_element" : "Type", 226 "value" : "RegistryKey"}}}},227"RegDeleteKeyW" : {"action_name" : "delete registry key",228 "action_vocab" : "maecVocabs:RegistryActionNameVocab-1.0",229 "parameter_associated_objects" : {"SubKey" : {"associated_object_type" : "WindowsRegistryKeyObjectType",230 "associated_object_element" : "Key",231 "association_type" : "input"},232 "Handle" : {"associated_object_type" : "WindowsHandleObjectType",233 "associated_object_element" : "ID",234 "association_type" : "input",235 "forced" : {"associated_object_element" : "Type", 236 "value" : "RegistryKey"}}}},237"RegEnumKeyW" : {"action_name" : "enumerate registry key subkeys",238 "action_vocab" : "maecVocabs:RegistryActionNameVocab-1.0",239 "parameter_associated_objects" : {"Name" : {"associated_object_type" : "WindowsRegistryKeyObjectType",240 "associated_object_element" : "Key",241 "association_type" : "output"},242 "Handle" : {"associated_object_type" : "WindowsHandleObjectType",243 "associated_object_element" : "ID",244 "association_type" : "input",245 "forced" : {"associated_object_element" : "Type", 246 "value" : "RegistryKey"}}}},247"RegEnumKeyExA" : {"action_name" : "enumerate registry key subkeys",248 "action_vocab" : "maecVocabs:RegistryActionNameVocab-1.0",249 "parameter_associated_objects" : {"Name" : {"associated_object_type" : "WindowsRegistryKeyObjectType",250 "associated_object_element" : "Key",251 "association_type" : "output"},252 "Handle" : {"associated_object_type" : "WindowsHandleObjectType",253 "associated_object_element" : "ID",254 "association_type" : "input",255 "forced" : {"associated_object_element" : "Type", 256 "value" : "RegistryKey"}}}},257"RegEnumKeyExW" : {"action_name" : "enumerate registry key subkeys",258 "action_vocab" : "maecVocabs:RegistryActionNameVocab-1.0",259 "parameter_associated_objects" : {"Name" : {"associated_object_type" : "WindowsRegistryKeyObjectType",260 "associated_object_element" : "Key",261 "association_type" : "output"},262 "Handle" : {"associated_object_type" : "WindowsHandleObjectType",263 "associated_object_element" : "ID",264 "association_type" : "input",265 "forced" : {"associated_object_element" : "Type", 266 "value" : "RegistryKey"}}}},267"RegEnumValueA" : {"action_name" : "enumerate registry key values",268 "action_vocab" : "maecVocabs:RegistryActionNameVocab-1.0",269 "parameter_associated_objects" : {"Handle" : {"associated_object_type" : "WindowsHandleObjectType",270 "associated_object_element" : "ID",271 "association_type" : "input",272 "forced" : {"associated_object_element" : "Type", 273 "value" : "RegistryKey"}},274 "group_together_nested" : {"parameter_mappings" : [{"parameter_name" : "ValueName", "element_name" : "Name"},275 {"parameter_name" : "Type", "element_name" : "Datatype",276 "post_processing":"regDatatypeToString"},277 {"parameter_name" : "Data", "element_name" : "Data"}],278 "associated_object_type" : "WindowsRegistryKeyObjectType",279 "associated_object_element" : "Values/list__",280 "association_type" : "output"}}},281"RegEnumValueW" : {"action_name" : "enumerate registry key values",282 "action_vocab" : "maecVocabs:RegistryActionNameVocab-1.0",283 "parameter_associated_objects" : {"Handle" : {"associated_object_type" : "WindowsHandleObjectType",284 "associated_object_element" : "ID",285 "association_type" : "input",286 "forced" : {"associated_object_element" : "Type", 287 "value" : "RegistryKey"}},288 "group_together_nested" : {"parameter_mappings" : [{"parameter_name" : "ValueName", "element_name" : "Name"},289 {"parameter_name" : "Type", "element_name" : "Datatype",290 "post_processing":"regDatatypeToString"},291 {"parameter_name" : "Data", "element_name" : "Data"}],292 "associated_object_type" : "WindowsRegistryKeyObjectType",293 "associated_object_element" : "Values/list__",294 "association_type" : "output"}}},295"RegSetValueExA" : {"action_name" : "modify registry key value",296 "action_vocab" : "maecVocabs:RegistryActionNameVocab-1.0",297 "parameter_associated_objects" : {"Handle" : {"associated_object_type" : "WindowsHandleObjectType",298 "associated_object_element" : "ID",299 "association_type" : "input",300 "forced" : {"associated_object_element" : "Type", 301 "value" : "RegistryKey"}},302 "group_together_nested" : {"parameter_mappings" : [{"parameter_name" : "ValueName", "element_name" : "Name"},303 {"parameter_name" : "Type", "element_name" : "Datatype",304 "post_processing":"regDatatypeToString"},305 {"parameter_name" : "Buffer", "element_name" : "Data"}],306 "associated_object_type" : "WindowsRegistryKeyObjectType",307 "associated_object_element" : "Values/list__",308 "association_type" : "output"}}},309"RegSetValueExW" : {"action_name" : "modify registry key value",310 "action_vocab" : "maecVocabs:RegistryActionNameVocab-1.0",311 "parameter_associated_objects" : {"Handle" : {"associated_object_type" : "WindowsHandleObjectType",312 "associated_object_element" : "ID",313 "association_type" : "input",314 "forced" : {"associated_object_element" : "Type", 315 "value" : "RegistryKey"}},316 "group_together_nested" : {"parameter_mappings" : [{"parameter_name" : "ValueName", "element_name" : "Name"},317 {"parameter_name" : "Type", "element_name" : "Datatype",318 "post_processing":"regDatatypeToString"},319 {"parameter_name" : "Buffer", "element_name" : "Data"}],320 "associated_object_type" : "WindowsRegistryKeyObjectType",321 "associated_object_element" : "Values/list__",322 "association_type" : "output"}}},323"RegQueryValueExA" : {"action_name" : "read registry key value",324 "action_vocab" : "maecVocabs:RegistryActionNameVocab-1.0",325 "parameter_associated_objects" : {"ValueName" : {"associated_object_type" : "WindowsRegistryKeyObjectType",326 "associated_object_element" : "Values/list__Name",327 "association_type" : "input"},328 "Handle" : {"associated_object_type" : "WindowsHandleObjectType",329 "associated_object_element" : "ID",330 "association_type" : "input",331 "forced" : {"associated_object_element" : "Type", 332 "value" : "RegistryKey"}},333 "group_together_nested" : {"parameter_mappings" : [{"parameter_name" : "Type", "element_name" : "Datatype",334 "post_processing":"regDatatypeToString"},335 {"parameter_name" : "Data", "element_name" : "Data"}],336 "associated_object_type" : "WindowsRegistryKeyObjectType",337 "associated_object_element" : "Values/list__",338 "association_type" : "output"}}},339"RegQueryValueExW" : {"action_name" : "read registry key value",340 "action_vocab" : "maecVocabs:RegistryActionNameVocab-1.0",341 "parameter_associated_objects" : {"ValueName" : {"associated_object_type" : "WindowsRegistryKeyObjectType",342 "associated_object_element" : "Values/list__Name",343 "association_type" : "input"},344 "Handle" : {"associated_object_type" : "WindowsHandleObjectType",345 "associated_object_element" : "ID",346 "association_type" : "input",347 "forced" : {"associated_object_element" : "Type", 348 "value" : "RegistryKey"}},349 "group_together_nested" : {"parameter_mappings" : [{"parameter_name" : "Type", "element_name" : "Datatype",350 "post_processing":"regDatatypeToString"},351 {"parameter_name" : "Data", "element_name" : "Data"}],352 "associated_object_type" : "WindowsRegistryKeyObjectType",353 "associated_object_element" : "Values/list__",354 "association_type" : "output"}}},355"RegDeleteValueA" : {"action_name" : "delete registry key value",356 "action_vocab" : "maecVocabs:RegistryActionNameVocab-1.0",357 "parameter_associated_objects" : {"ValueName" : {"associated_object_type" : "WindowsRegistryKeyObjectType",358 "associated_object_element" : "Values/list__Name",359 "association_type" : "input"},360 "Handle" : {"associated_object_type" : "WindowsHandleObjectType",361 "associated_object_element" : "ID",362 "association_type" : "input",363 "forced" : {"associated_object_element" : "Type", 364 "value" : "RegistryKey"}}}},365"RegDeleteValueW" : {"action_name" : "delete registry key value",366 "action_vocab" : "maecVocabs:RegistryActionNameVocab-1.0",367 "parameter_associated_objects" : {"ValueName" : {"associated_object_type" : "WindowsRegistryKeyObjectType",368 "associated_object_element" : "Values/list__Name",369 "association_type" : "input"},370 "Handle" : {"associated_object_type" : "WindowsHandleObjectType",371 "associated_object_element" : "ID",372 "association_type" : "input",373 "forced" : {"associated_object_element" : "Type", 374 "value" : "RegistryKey"}}}},375"RegQueryInfoKeyA" : {"action_name" : "get registry key attributes",376 "action_vocab" : "maecVocabs:RegistryActionNameVocab-1.0",377 "parameter_associated_objects" : {"KeyHandle" : {"associated_object_type" : "WindowsHandleObjectType",378 "associated_object_element" : "ID",379 "association_type" : "input",380 "forced" : {"associated_object_element" : "Type", 381 "value" : "RegistryKey"}}}},382"RegQueryInfoKeyW" : {"action_name" : "get registry key attributes",383 "action_vocab" : "maecVocabs:RegistryActionNameVocab-1.0",384 "parameter_associated_objects" : {"KeyHandle" : {"associated_object_type" : "WindowsHandleObjectType",385 "associated_object_element" : "ID",386 "association_type" : "input",387 "forced" : {"associated_object_element" : "Type", 388 "value" : "RegistryKey"}}}},389"RegCloseKey" : {"action_name" : "close registry key",390 "action_vocab" : "maecVocabs:RegistryActionNameVocab-1.0",391 "parameter_associated_objects" : {"Handle" : {"associated_object_type" : "WindowsHandleObjectType",392 "associated_object_element" : "ID",393 "association_type" : "input",394 "forced" : {"associated_object_element" : "Type", 395 "value" : "RegistryKey"}}}},396"NtCreateKey" : {"action_name" : "create registry key",397 "action_vocab" : "maecVocabs:RegistryActionNameVocab-1.0",398 "parameter_associated_objects" : {"group_together_nested" : {"parameter_mappings" : [{"parameter_name" : "ObjectAttributes", "element_name" : "Hive",399 "post_processing": "regStringToHive"},400 {"parameter_name" : "ObjectAttributes", "element_name" : "Key",401 "post_processing":"regStringToKey"}],402 "associated_object_type" : "WindowsRegistryKeyObjectType",403 "association_type" : "output"},404 "KeyHandle" : {"associated_object_type" : "WindowsHandleObjectType",405 "associated_object_element" : "ID",406 "association_type" : "output",407 "forced" : {"associated_object_element" : "Type", 408 "value" : "RegistryKey"}}}},409"NtOpenKey" : {"action_name" : "open registry key",410 "action_vocab" : "maecVocabs:RegistryActionNameVocab-1.0",411 "parameter_associated_objects" : {"group_together_nested" : {"parameter_mappings" : [{"parameter_name" : "ObjectAttributes", "element_name" : "Hive",412 "post_processing": "regStringToHive"},413 {"parameter_name" : "ObjectAttributes", "element_name" : "Key",414 "post_processing":"regStringToKey"}],415 "associated_object_type" : "WindowsRegistryKeyObjectType",416 "association_type" : "input"},417 "KeyHandle" : {"associated_object_type" : "WindowsHandleObjectType",418 "associated_object_element" : "ID",419 "association_type" : "output",420 "forced" : {"associated_object_element" : "Type", 421 "value" : "RegistryKey"}}}},422"NtOpenKeyEx" : {"action_name" : "open registry key",423 "action_vocab" : "maecVocabs:RegistryActionNameVocab-1.0",424 "parameter_associated_objects" : {"group_together_nested" : {"parameter_mappings" : [{"parameter_name" : "ObjectAttributes", "element_name" : "Hive",425 "post_processing": "regStringToHive"},426 {"parameter_name" : "ObjectAttributes", "element_name" : "Key",427 "post_processing":"regStringToKey"}],428 "associated_object_type" : "WindowsRegistryKeyObjectType",429 "association_type" : "input"},430 "KeyHandle" : {"associated_object_type" : "WindowsHandleObjectType",431 "associated_object_element" : "ID",432 "association_type" : "output",433 "forced" : {"associated_object_element" : "Type", 434 "value" : "RegistryKey"}}}},435"NtRenameKey" : {"action_name" : "rename registry key",436 "parameter_associated_objects" : {"group_together_nested" : {"parameter_mappings" : [{"parameter_name" : "NewName", "element_name" : "Hive",437 "post_processing": "regStringToHive"},438 {"parameter_name" : "NewName", "element_name" : "Key",439 "post_processing":"regStringToKey"}],440 "associated_object_type" : "WindowsRegistryKeyObjectType",441 "association_type" : "input"},442 "KeyHandle" : {"associated_object_type" : "WindowsHandleObjectType",443 "associated_object_element" : "ID",444 "association_type" : "input",445 "forced" : {"associated_object_element" : "Type", 446 "value" : "RegistryKey"}}}},447"NtReplaceKey" : {"action_name" : "save hive key to file",448 "parameter_associated_objects" : {"NewHiveFileName" : {"associated_object_type" : "FileObjectType",449 "associated_object_element" : "File_Path",450 "association_type" : "output"},451 "OldHiveFileName" : {"associated_object_type" : "FileObjectType",452 "associated_object_element" : "File_Path",453 "association_type" : "input"},454 "KeyHandle" : {"associated_object_type" : "WindowsHandleObjectType",455 "associated_object_element" : "ID",456 "association_type" : "input",457 "forced" : {"associated_object_element" : "Type", 458 "value" : "RegistryKey"}}}},459"NtEnumerateKey" : {"action_name" : "enumerate registry key subkeys",460 "action_vocab" : "maecVocabs:RegistryActionNameVocab-1.0",461 "parameter_associated_objects" : {"KeyHandle" : {"associated_object_type" : "WindowsHandleObjectType",462 "associated_object_element" : "ID",463 "association_type" : "input",464 "forced" : {"associated_object_element" : "Type", 465 "value" : "RegistryKey"}}}},466"NtEnumerateValueKey" : {"action_name" : "enumerate registry key values",467 "action_vocab" : "maecVocabs:RegistryActionNameVocab-1.0",468 "parameter_associated_objects" : {"KeyHandle" : {"associated_object_type" : "WindowsHandleObjectType",469 "associated_object_element" : "ID",470 "association_type" : "input",471 "forced" : {"associated_object_element" : "Type", 472 "value" : "RegistryKey"}}}},473"NtSetValueKey" : {"action_name" : "modify registry key value",474 "action_vocab" : "maecVocabs:RegistryActionNameVocab-1.0",475 "parameter_associated_objects" : {"KeyHandle" : {"associated_object_type" : "WindowsHandleObjectType",476 "associated_object_element" : "ID",477 "association_type" : "input",478 "forced" : {"associated_object_element" : "Type", 479 "value" : "RegistryKey"}},480 "group_together_nested" : {"parameter_mappings" : [{"parameter_name" : "ValueName", "element_name" : "Name"},481 {"parameter_name" : "Type", "element_name" : "Datatype",482 "post_processing":"regDatatypeToString"},483 {"parameter_name" : "Buffer", "element_name" : "Data"}],484 "associated_object_type" : "WindowsRegistryKeyObjectType",485 "associated_object_element" : "Values/list__",486 "association_type" : "output"}}},487"NtQueryValueKey" : {"action_name" : "read registry key value",488 "action_vocab" : "maecVocabs:RegistryActionNameVocab-1.0",489 "parameter_associated_objects" : {"ValueName" : {"associated_object_type" : "WindowsRegistryKeyObjectType",490 "associated_object_element" : "Values/list__Name",491 "association_type" : "input"},492 "KeyHandle" : {"associated_object_type" : "WindowsHandleObjectType",493 "associated_object_element" : "ID",494 "association_type" : "input",495 "forced" : {"associated_object_element" : "Type", 496 "value" : "RegistryKey"}},497 "group_together_nested" : {"parameter_mappings" : [{"parameter_name" : "Type", "element_name" : "Datatype",498 "post_processing":"regDatatypeToString"},499 {"parameter_name" : "Information", "element_name" : "Data"}],500 "associated_object_type" : "WindowsRegistryKeyObjectType",501 "associated_object_element" : "Values/list__",502 "association_type" : "output"}}},503"NtQueryMultipleValueKey" : {"action_name" : "read registry key value",504 "action_vocab" : "maecVocabs:RegistryActionNameVocab-1.0",505 "parameter_associated_objects" : {"ValueName" : {"associated_object_type" : "WindowsRegistryKeyObjectType",506 "associated_object_element" : "Values/list__Name",507 "association_type" : "input"},508 "ValueBuffer" : {"associated_object_type" : "WindowsRegistryKeyObjectType",509 "associated_object_element" : "Values/list__Data",510 "association_type" : "output"},511 "KeyHandle" : {"associated_object_type" : "WindowsHandleObjectType",512 "associated_object_element" : "ID",513 "association_type" : "input",514 "forced" : {"associated_object_element" : "Type", 515 "value" : "RegistryKey"}}}},516"NtDeleteKey" : {"action_name" : "delete registry key",517 "action_vocab" : "maecVocabs:RegistryActionNameVocab-1.0",518 "parameter_associated_objects" : {"KeyHandle" : {"associated_object_type" : "WindowsHandleObjectType",519 "associated_object_element" : "ID",520 "association_type" : "input",521 "forced" : {"associated_object_element" : "Type", 522 "value" : "RegistryKey"}}}},523"NtDeleteValueKey" : {"action_name" : "delete registry key value",524 "action_vocab" : "maecVocabs:RegistryActionNameVocab-1.0",525 "parameter_associated_objects" : {"ValueName" : {"associated_object_type" : "WindowsRegistryKeyObjectType",526 "associated_object_element" : "Values/list__Name",527 "association_type" : "input"},528 "KeyHandle" : {"associated_object_type" : "WindowsHandleObjectType",529 "associated_object_element" : "ID",530 "association_type" : "input",531 "forced" : {"associated_object_element" : "Type", 532 "value" : "RegistryKey"}}}},533"NtLoadKey" : {"action_name" : "load registry keys from file",534 "parameter_associated_objects" : {"group_together_nested" : {"parameter_mappings" : [{"parameter_name" : "TargetKey", "element_name" : "Hive",535 "post_processing": "regStringToHive"},536 {"parameter_name" : "TargetKey", "element_name" : "Key",537 "post_processing":"regStringToKey"}],538 "associated_object_type" : "WindowsRegistryKeyObjectType",539 "association_type" : "input"},540 "SourceFile" : {"associated_object_type" : "FileObjectType",541 "associated_object_element" : "File_Path",542 "association_type" : "input",543 "forced" : {"associated_object_element" : "Type", 544 "value" : "RegistryKey"}}}},545"NtLoadKey2" : {"action_name" : "load registry keys from file",546 "parameter_associated_objects" : {"group_together_nested" : {"parameter_mappings" : [{"parameter_name" : "TargetKey", "element_name" : "Hive",547 "post_processing": "regStringToHive"},548 {"parameter_name" : "TargetKey", "element_name" : "Key",549 "post_processing":"regStringToKey"}],550 "associated_object_type" : "WindowsRegistryKeyObjectType",551 "association_type" : "input"},552 "SourceFile" : {"associated_object_type" : "FileObjectType",553 "associated_object_element" : "File_Path",554 "association_type" : "input",555 "forced" : {"associated_object_element" : "Type", 556 "value" : "RegistryKey"}}}},557"NtLoadKeyEx" : {"action_name" : "load registry keys from file",558 "parameter_associated_objects" : {"group_together_nested" : {"parameter_mappings" : [{"parameter_name" : "TargetKey", "element_name" : "Hive",559 "post_processing": "regStringToHive"},560 {"parameter_name" : "TargetKey", "element_name" : "Key",561 "post_processing":"regStringToKey"}],562 "associated_object_type" : "WindowsRegistryKeyObjectType",563 "association_type" : "input"},564 "SourceFile" : {"associated_object_type" : "FileObjectType",565 "associated_object_element" : "File_Path",566 "association_type" : "input",567 "forced" : {"associated_object_element" : "Type", 568 "value" : "RegistryKey"}}}},569"NtQueryKey" : {"action_name" : "get registry key attributes",570 "action_vocab" : "maecVocabs:RegistryActionNameVocab-1.0",571 "parameter_associated_objects" : {"KeyHandle" : {"associated_object_type" : "WindowsHandleObjectType",572 "associated_object_element" : "ID",573 "association_type" : "input",574 "forced" : {"associated_object_element" : "Type", 575 "value" : "RegistryKey"}}}},576"NtSaveKey" : {"action_name" : "save registry key subtree to file",577 "parameter_associated_objects" : {"KeyHandle" : {"associated_object_type" : "WindowsHandleObjectType",578 "associated_object_element" : "ID",579 "association_type" : "input"},580 "FileHandle" : {"associated_object_type" : "WindowsHandleObjectType",581 "associated_object_element" : "ID",582 "association_type" : "input",583 "forced" : {"associated_object_element" : "Type", 584 "value" : "RegistryKey"}}}},585"NtSaveKeyEx" : {"action_name" : "save registry key subtree to file",586 "parameter_associated_objects" : {"KeyHandle" : {"associated_object_type" : "WindowsHandleObjectType",587 "associated_object_element" : "ID",588 "association_type" : "input"},589 "FileHandle" : {"associated_object_type" : "WindowsHandleObjectType",590 "associated_object_element" : "ID",591 "association_type" : "input",592 "forced" : {"associated_object_element" : "Type", 593 "value" : "Process"}}}}, 594"NtCreateProcess" : {"action_name" : "create process",595 "action_vocab" : "maecVocabs:ProcessActionNameVocab-1.0",596 "parameter_associated_objects" : {"ProcessHandle" : {"associated_object_type" : "WindowsHandleObjectType",597 "associated_object_element" : "ID",598 "association_type" : "output",599 "forced" : {"associated_object_element" : "Type", 600 "value" : "Process"}},601 "FileName" : {"associated_object_type" : "FileObjectType",602 "associated_object_element" : "File_Path",603 "association_type" : "input"}}},604"NtCreateProcessEx" : {"action_name" : "create process",605 "action_vocab" : "maecVocabs:ProcessActionNameVocab-1.0",606 "parameter_associated_objects" : {"ProcessHandle" : {"associated_object_type" : "WindowsHandleObjectType",607 "associated_object_element" : "ID",608 "association_type" : "output",609 "forced" : {"associated_object_element" : "Type", 610 "value" : "Process"}},611 "FileName" : {"associated_object_type" : "FileObjectType",612 "associated_object_element" : "File_Path",613 "association_type" : "input"}}},614"NtCreateUserProcess" : {"action_name" : "create process",615 "action_vocab" : "maecVocabs:ProcessActionNameVocab-1.0",616 "parameter_associated_objects" : {"ProcessHandle" : {"associated_object_type" : "WindowsHandleObjectType",617 "associated_object_element" : "ID",618 "association_type" : "output",619 "forced" : {"associated_object_element" : "Type", 620 "value" : "Process"}},621 "ThreadHandle" : {"associated_object_type" : "WindowsHandleObjectType",622 "associated_object_element" : "ID",623 "association_type" : "output",624 "forced" : {"associated_object_element" : "Type", 625 "value" : "Thread"}},626 "ThreadName" : {"associated_object_type" : "WindowsThreadObjectType",627 "associated_object_element" : "Thread_ID",628 "association_type" : "output"},629 "group_together_nested" : {"parameter_mappings" : [{"parameter_name" : "ProcessFileName", "element_name" : "File_Name",},630 {"parameter_name" : "ImagePathName", "element_name" : "Path"}],631 "associated_object_type" : "ProcessObjectType",632 "associated_object_element" : "Image_Info",633 "association_type" : "output"}}},634"RtlCreateUserProcess" : {"action_name" : "create process",635 "action_vocab" : "maecVocabs:ProcessActionNameVocab-1.0",636 "parameter_associated_objects" : {"ParentProcess" : {"associated_object_type" : "WindowsHandleObjectType",637 "associated_object_element" : "ID",638 "association_type" : "output",639 "forced" : {"associated_object_element" : "Type", 640 "value" : "Process"}},641 "ImagePath" : {"associated_object_type" : "ProcessObjectType",642 "associated_object_element" : "Image_Info/Path",643 "association_type" : "input"}}},644"NtOpenProcess" : {"action_name" : "open process",645 "action_vocab" : "maecVocabs:ProcessActionNameVocab-1.0",646 "parameter_associated_objects" : {"ProcessHandle" : {"associated_object_type" : "WindowsHandleObjectType",647 "associated_object_element" : "ID",648 "association_type" : "output",649 "forced" : {"associated_object_element" : "Type", 650 "value" : "Process"}},651 "ProcessIdentifier" : {"associated_object_type" : "ProcessObjectType",652 "associated_object_element" : "PID",653 "association_type" : "input"}}},654"NtTerminateProcess" : {"action_name" : "kill process",655 "action_vocab" : "maecVocabs:ProcessActionNameVocab-1.0",656 "parameter_associated_objects" : {"ProcessHandle" : {"associated_object_type" : "WindowsHandleObjectType",657 "associated_object_element" : "ID",658 "association_type" : "input",659 "forced" : {"associated_object_element" : "Type", 660 "value" : "Process"}}}},661"NtCreateSection" : {"action_name" : "create section",662 "parameter_associated_objects" : {"SectionHandle" : {"associated_object_type" : "WindowsHandleObjectType",663 "associated_object_element" : "ID",664 "association_type" : "output",665 "forced" : {"associated_object_element" : "Type", 666 "value" : "Section"}},667 "FileHandle" : {"associated_object_type" : "WindowsHandleObjectType",668 "associated_object_element" : "ID",669 "association_type" : "input",670 "forced" : {"associated_object_element" : "Type", 671 "value" : "File"}}}}, 672"NtOpenSection" : {"action_name" : "open section",673 "parameter_associated_objects" : {"SectionHandle" : {"associated_object_type" : "WindowsHandleObjectType",674 "associated_object_element" : "ID",675 "association_type" : "output",676 "forced" : {"associated_object_element" : "Type", 677 "value" : "Section"}},678 "ObjectAttributes" : {"associated_object_type" : "MemoryObjectType",679 "associated_object_element" : "Name",680 "association_type" : "input"}}},681"CreateProcessInternalW" : {"action_name" : "create process",682 "action_vocab" : "maecVocabs:ProcessActionNameVocab-1.0",683 "parameter_associated_objects" : {"ProcessId" : {"associated_object_type" : "WindowsProcessObjectType",684 "associated_object_element" : "PID",685 "association_type" : "output"},686 "ThreadId" : {"associated_object_type" : "WindowsThreadObjectType",687 "associated_object_element" : "Thread_ID",688 "association_type" : "output"},689 "ProcessHandle" : {"associated_object_type" : "WindowsHandleObjectType",690 "associated_object_element" : "ID",691 "association_type" : "output",692 "forced" : {"associated_object_element" : "Type",693 "value" : "Process"}},694 "ThreadHandle" : {"associated_object_type" : "WindowsHandleObjectType",695 "associated_object_element" : "ID",696 "association_type" : "output",697 "forced" : {"associated_object_element" : "Type", 698 "value" : "Thread"}}},699 "parameter_associated_arguments" : {"ApplicationName" : {"associated_argument_name" : "Application Name"}}},700"ExitProcess" : {"action_name" : "kill process",701 "action_vocab" : "maecVocabs:ProcessActionNameVocab-1.0",702 "parameter_associated_arguments" : {"ExitCode" : {"associated_argument_name" : "Exit Code"}}},703"ShellExecuteExW" : {"action_name" : "create process",704 "action_vocab" : "maecVocabs:ProcessActionNameVocab-1.0",705 "parameter_associated_objects" : {"FilePath" : {"associated_object_type" : "FileObjectType",706 "associated_object_element" : "File_Path",707 "association_type" : "input" }}},708"NtUnmapViewOfSection" : {"action_name" : "unmap view of section",709 "parameter_associated_objects" : {"ProcessHandle" : {"associated_object_type" : "WindowsHandleObjectType",710 "associated_object_element" : "ID",711 "association_type" : "input",712 "forced" : {"associated_object_element" : "Type",713 "value" : "Process"}}}},714"NtAllocateVirtualMemory" : {"action_name" : "allocate process virtual memory",715 "action_vocab" : "maecVocabs:ProcessMemoryActionNameVocab-1.0",716 "parameter_associated_objects" : {"ProcessHandle" : {"associated_object_type" : "WindowsHandleObjectType",717 "associated_object_element" : "ID",718 "association_type" : "input",719 "forced" : {"associated_object_element" : "Type", 720 "value" : "Process"}}}},721"NtReadVirtualMemory" : {"action_name" : "read from process memory",722 "action_vocab" : "maecVocabs:ProcessMemoryActionNameVocab-1.0",723 "parameter_associated_objects" : {"ProcessHandle" : {"associated_object_type" : "WindowsHandleObjectType",724 "associated_object_element" : "ID",725 "association_type" : "input",726 "forced" : {"associated_object_element" : "Type", 727 "value" : "Process"}}}},728"ReadProcessMemory" : {"action_name" : "read from process memory",729 "action_vocab" : "maecVocabs:ProcessMemoryActionNameVocab-1.0",730 "parameter_associated_objects" : {"ProcessHandle" : {"associated_object_type" : "WindowsHandleObjectType",731 "associated_object_element" : "ID",732 "association_type" : "input",733 "forced" : {"associated_object_element" : "Type", 734 "value" : "Process"}}}},735"NtWriteVirtualMemory" : {"action_name" : "write to process memory",736 "action_vocab" : "maecVocabs:ProcessMemoryActionNameVocab-1.0",737 "parameter_associated_objects" : {"ProcessHandle" : {"associated_object_type" : "WindowsHandleObjectType",738 "associated_object_element" : "ID",739 "association_type" : "input",740 "forced" : {"associated_object_element" : "Type", 741 "value" : "Process"}}}},742"WriteProcessMemory" : {"action_name" : "write to process memory",743 "action_vocab" : "maecVocabs:ProcessMemoryActionNameVocab-1.0",744 "parameter_associated_objects" : {"ProcessHandle" : {"associated_object_type" : "WindowsHandleObjectType",745 "associated_object_element" : "ID",746 "association_type" : "input",747 "forced" : {"associated_object_element" : "Type", 748 "value" : "Process"}}}},749"NtProtectVirtualMemory" : {"action_name" : "modify process virtual memory protection",750 "action_vocab" : "maecVocabs:ProcessMemoryActionNameVocab-1.0",751 "parameter_associated_objects" : {"ProcessHandle" : {"associated_object_type" : "WindowsHandleObjectType",752 "associated_object_element" : "ID",753 "association_type" : "input",754 "forced" : {"associated_object_element" : "Type", 755 "value" : "Process"}}}},756"VirtualProtectEx" : {"action_name" : "modify process virtual memory protection",757 "action_vocab" : "maecVocabs:ProcessMemoryActionNameVocab-1.0",758 "parameter_associated_objects" : {"ProcessHandle" : {"associated_object_type" : "WindowsHandleObjectType",759 "associated_object_element" : "ID",760 "association_type" : "input",761 "forced" : {"associated_object_element" : "Type", 762 "value" : "Process"}}}},763"NtFreeVirtualMemory" : {"action_name" : "free process virtual memory",764 "action_vocab" : "maecVocabs:ProcessMemoryActionNameVocab-1.0",765 "parameter_associated_objects" : {"ProcessHandle" : {"associated_object_type" : "WindowsHandleObjectType",766 "associated_object_element" : "ID",767 "association_type" : "input",768 "forced" : {"associated_object_element" : "Type", 769 "value" : "Process"}}}},770"VirtualFreeEx" : {"action_name" : "free process virtual memory",771 "action_vocab" : "maecVocabs:ProcessMemoryActionNameVocab-1.0",772 "parameter_associated_objects" : {"ProcessHandle" : {"associated_object_type" : "WindowsHandleObjectType",773 "associated_object_element" : "ID",774 "association_type" : "input",775 "forced" : {"associated_object_element" : "Type", 776 "value" : "Process"}}}},777"FindWindowA" : {"action_name" : "find window",778 "action_vocab" : "maecVocabs:GUIActionNameVocab-1.0",779 "parameter_associated_objects" : {"WindowName" : {"associated_object_type" : "GUIWindowObjectType",780 "associated_object_element" : "Window_Display_Name",781 "association_type" : "input"}}},782"FindWindowW" : {"action_name" : "find window",783 "action_vocab" : "maecVocabs:GUIActionNameVocab-1.0",784 "parameter_associated_objects" : {"WindowName" : {"associated_object_type" : "GUIWindowObjectType",785 "associated_object_element" : "Window_Display_Name",786 "association_type" : "input"}}},787"FindWindowExA" : {"action_name" : "find window",788 "action_vocab" : "maecVocabs:GUIActionNameVocab-1.0",789 "parameter_associated_objects" : {"WindowName" : {"associated_object_type" : "GUIWindowObjectType",790 "associated_object_element" : "Window_Display_Name",791 "association_type" : "input"}}},792"FindWindowExW" : {"action_name" : "find window",793 "action_vocab" : "maecVocabs:GUIActionNameVocab-1.0",794 "parameter_associated_objects" : {"WindowName" : {"associated_object_type" : "GUIWindowObjectType",795 "associated_object_element" : "Window_Display_Name",796 "association_type" : "input"}}},797"SetWindowsHookExA" : {"action_name" : "add windows hook",798 "action_vocab" : "maecVocabs:HookingActionNameVocab-1.0",799 "parameter_associated_objects" : {"HookIdentifier" : {"associated_object_type" : "WindowsKernelHookObjectType",800 "associated_object_element" : "Type",801 "association_type" : "input"},802 "ProcedureAddress" : {"associated_object_type" : "WindowsKernelHookObjectType",803 "associated_object_element" : "Hooking_Address",804 "association_type" : "input"},805 "ThreadId" : {"associated_object_type" : "WindowsThreadObjectType",806 "associated_object_element" : "Thread_ID",807 "association_type" : "input"},808 "group_together" : ["HookIdentifier", "ProcedureAddress"]}},809"SetWindowsHookExW" : {"action_name" : "add windows hook",810 "action_vocab" : "maecVocabs:HookingActionNameVocab-1.0",811 "parameter_associated_objects" : {"HookIdentifier" : {"associated_object_type" : "WindowsKernelHookObjectType",812 "associated_object_element" : "Type",813 "association_type" : "input"},814 "ProcedureAddress" : {"associated_object_type" : "WindowsKernelHookObjectType",815 "associated_object_element" : "Hooking_Address",816 "association_type" : "input"},817 "ThreadId" : {"associated_object_type" : "WindowsThreadObjectType",818 "associated_object_element" : "Thread_ID",819 "association_type" : "input"},820 "group_together" : ["HookIdentifier", "ProcedureAddress"]}},821"UnhookWindowsHookEx" : {"action_name" : "remove windows hook",822 "parameter_associated_objects" : {"HookHandle" : {"associated_object_type" : "WindowsHandleObjectType",823 "associated_object_element" : "ID",824 "association_type" : "input",825 "forced" : {"associated_object_element" : "Type", 826 "value" : "Hook"}}}}, 827"LdrLoadDll" : {"action_name" : "load library",828 "action_vocab" : "maecVocabs:LibraryActionNameVocab-1.0",829 "parameter_associated_objects" : {"FileName" : {"associated_object_type" : "LibraryObjectType",830 "associated_object_element" : "Name",831 "association_type" : "input"},832 "BaseAddress" : {"associated_object_type" : "WindowsHandleObjectType",833 "associated_object_element" : "ID",834 "association_type" : "output",835 "forced" : {"associated_object_element" : "Type", 836 "value" : "Module"}}}},837"LdrGetDllHandle" : {"action_name" : "get dll handle",838 "parameter_associated_objects" : {"FileName" : {"associated_object_type" : "LibraryObjectType",839 "associated_object_element" : "Name",840 "association_type" : "input"},841 "ModuleHandle" : {"associated_object_type" : "WindowsHandleObjectType",842 "associated_object_element" : "ID",843 "association_type" : "output",844 "forced" : {"associated_object_element" : "Type", 845 "value" : "Module"}}}},846"LdrGetProcedureAddress" : {"action_name" : "get function address",847 "action_vocab" : "maecVocabs:LibraryActionNameVocab-1.0",848 "parameter_associated_objects" : {"ModuleHandle" : {"associated_object_type" : "WindowsHandleObjectType",849 "associated_object_element" : "ID",850 "association_type" : "input",851 "forced" : {"associated_object_element" : "Type", 852 "value" : "Module"}},853 "FunctionAddress" : {"associated_object_type" : "APIObjectType",854 "associated_object_element" : "Address",855 "association_type" : "output",856 "post_processing" : "intToHex"},857 "group_together_nested" : {"parameter_mappings" : [{"parameter_name" : "FunctionName", "element_name" : "Function_Name"}, 858 {"parameter_name" : "Ordinal", "element_name" : "Ordinal"}],859 "associated_object_type" : "WindowsExecutableFileObjectType",860 "associated_object_element" : "Exports/Exported_Functions/list__",861 "association_type" : "input"}}},862"DeviceIoControl" : {"action_name" : "send control code to driver",863 "parameter_associated_objects" : {"DeviceHandle" : {"associated_object_type" : "WindowsHandleObjectType",864 "associated_object_element" : "ID",865 "association_type" : "input",866 "forced" : {"associated_object_element" : "Type", 867 "value" : "Device"}}},868 "parameter_associated_arguments" : {"IoControlCode" : {"associated_argument_name" : "Control Code",869 "associated_argument_vocab" : "cyboxVocabs:ActionArgumentNameVocab-1.0"}}},870"ExitWindowsEx" : {"action_name" : "shutdown system",871 "action_vocab" : "maecVocabs:SystemActionNameVocab-1.0",872 "parameter_associated_arguments" : {"Flags" : {"associated_argument_name" : "Flags"},873 "Reason" : {"associated_argument_name" : "Reason"}}},874"IsDebuggerPresent" : {"action_name" : "check for remote debugger",875 "action_vocab" : "maecVocabs:DebuggingActionNameVocab-1.0"},876"LookupPrivilegeValueW" : {"action_name" : "find privilege value",877 "parameter_associated_objects" : {"SystemName" : {"associated_object_type" : "SystemObjectType",878 "associated_object_element" : "Hostname",879 "association_type" : "input"}},880 "parameter_associated_arguments" : {"PrivilegeName" : {"associated_argument_name" : "Privilege Name"}}},881"NtClose" : {"action_name" : "close handle",882 "parameter_associated_objects" : {"Handle" : {"associated_object_type" : "WindowsHandleObjectType",883 "associated_object_element" : "ID",884 "association_type" : "input"}}},885"WriteConsoleA" : {"action_name" : "write to console",886 "parameter_associated_objects" : {"ConsoleHandle" : {"associated_object_type" : "WindowsHandleObjectType",887 "associated_object_element" : "ID",888 "association_type" : "input",889 "forced" : {"associated_object_element" : "Type", 890 "value" : "Console"}}}},891"WriteConsoleW" : {"action_name" : "write to console",892 "parameter_associated_objects" : {"ConsoleHandle" : {"associated_object_type" : "WindowsHandleObjectType",893 "associated_object_element" : "ID",894 "association_type" : "input",895 "forced" : {"associated_object_element" : "Type", 896 "value" : "Console"}}}},897"ZwMapViewOfSection" : {"action_name" : "map view of section",898 "parameter_associated_objects" : {"SectionHandle" : {"associated_object_type" : "WindowsHandleObjectType",899 "associated_object_element" : "ID",900 "association_type" : "input",901 "forced" : {"associated_object_element" : "Type", 902 "value" : "Section"}},903 "ProcessHandle" : {"associated_object_type" : "WindowsHandleObjectType",904 "associated_object_element" : "ID",905 "association_type" : "input",906 "forced" : {"associated_object_element" : "Type", 907 "value" : "Process"}}},908 "parameter_associated_arguments" : {"BaseAddress" : {"associated_argument_name" : "Base Address",909 "associated_argument_vocab" : "cyboxVocabs:ActionArgumentNameVocab-1.0"},910 "SectionOffset" : {"associated_argument_name" : "Section Offset"}}},911"GetSystemMetrics" : {"action_name" : "get system metrics",912 "parameter_associated_arguments" : {"SystemMetricIndex" : {"associated_argument_name" : "System Metric Index"}}},913"NtDelayExecution" : {"action_name" : "delay execution",914 "parameter_associated_arguments" : {"Milliseconds" : {"associated_argument_name" : "Milliseconds"}}},915"GetLocalTime" : {"action_name" : "get system local time",916 "action_vocab" : "maecVocabs:SystemActionNameVocab-1.0"},917"GetSystemTime" : {"action_name" : "get system time",918 "action_vocab" : "maecVocabs:SystemActionNameVocab-1.0"},919"GetTickCount" : {"action_name" : "get tick count"},920"NtQuerySystemTime" : {"action_name" : "get system time",921 "action_vocab" : "maecVocabs:SystemActionNameVocab-1.0"},922"WSAStartup" : {"action_name" : "initialize winsock",923 "parameter_associated_arguments" : {"VersionRequested" : {"associated_argument_name" : "Version Requested"}}},924"gethostbyname" : {"action_name" : "get host by name",925 "action_vocab" : "maecVocabs:SocketActionNameVocab-1.0",926 "parameter_associated_arguments" : {"Name" : {"associated_argument_name" : "Hostname", 927 "associated_argument_vocab" : "cyboxVocabs:ActionArgumentNameVocab-1.0"}}},928"socket" : {"action_name" : "create socket",929 "action_vocab" : "maecVocabs:SocketActionNameVocab-1.0",930 "parameter_associated_objects" : {"type" : {"associated_object_type" : "NetworkSocketObjectType",931 "associated_object_element" : "Type",932 "association_type" : "output",933 "post_processing" : "socketTypeToString"},934 "af" : {"associated_object_type" : "NetworkSocketObjectType",935 "associated_object_element" : "Address_Family",936 "association_type" : "output",937 "post_processing" : "socketAFToString"},938 "protocol" : {"associated_object_type" : "NetworkSocketObjectType",939 "associated_object_element" : "Protocol",940 "association_type" : "output",941 "post_processing" : "socketProtoToString"},942 "group_together" : ["type", "protocol", "af"]}},943"connect" : {"action_name" : "connect to socket",944 "action_vocab" : "maecVocabs:SocketActionNameVocab-1.0",945 "parameter_associated_arguments" : {"socket" : {"associated_argument_name" : "Socket Descriptor"}}},946"send" : {"action_name" : "send data on socket",947 "action_vocab" : "maecVocabs:SocketActionNameVocab-1.0",948 "parameter_associated_arguments" : {"socket" : {"associated_argument_name" : "Socket Descriptor"},949 "buffer" : {"associated_argument_name" : "Data Buffer"}}},950"sendto" : {"action_name" : "send data to address on socket",951 "action_vocab" : "maecVocabs:SocketActionNameVocab-1.0",952 "parameter_associated_arguments" : {"socket" : {"associated_argument_name" : "Socket Descriptor"},953 "buffer" : {"associated_argument_name" : "Data Buffer"}}},954"recv" : {"action_name" : "receive data on socket",955 "action_vocab" : "maecVocabs:SocketActionNameVocab-1.0",956 "parameter_associated_arguments" : {"socket" : {"associated_argument_name" : "Socket Descriptor"},957 "buffer" : {"associated_argument_name" : "Data Buffer"}}},958"recvfrom" : {"action_name" : "receive data on socket",959 "action_vocab" : "maecVocabs:SocketActionNameVocab-1.0",960 "parameter_associated_arguments" : {"socket" : {"associated_argument_name" : "Socket Descriptor"},961 "buffer" : {"associated_argument_name" : "Data Buffer"}}},962"accept" : {"action_name" : "accept socket connection",963 "action_vocab" : "maecVocabs:SocketActionNameVocab-1.0",964 "parameter_associated_arguments" : {"socket" : {"associated_argument_name" : "Socket Descriptor"}}},965"bind" : {"action_name" : "bind address to socket",966 "action_vocab" : "maecVocabs:SocketActionNameVocab-1.0",967 "parameter_associated_objects" : {"group_together_nested" : {"parameter_mappings" : [{"parameter_name" : "ip", "element_name" : "IP_Address/Address_Value"},968 {"parameter_name" : "port", "element_name" : "Port/Port_Value"}],969 "associated_object_type" : "NetworkSocketObjectType",970 "associated_object_element" : "Local_Address",971 "association_type" : "input"}},972 "parameter_associated_arguments" : {"socket" : {"associated_argument_name" : "Socket Descriptor"}}},973"listen" : {"action_name" : "listen on socket",974 "action_vocab" : "maecVocabs:SocketActionNameVocab-1.0",975 "parameter_associated_arguments" : {"socket" : {"associated_argument_name" : "Socket Descriptor"}}},976"select" : {"action_name" : "check for ready sockets",977 "parameter_associated_arguments" : {"socket" : {"associated_argument_name" : "Socket Descriptor"}}},978"setsockopt" : {"action_name" : "set socket option",979 "parameter_associated_arguments" : {"socket" : {"associated_argument_name" : "Socket Descriptor"}}},980"ioctlsocket" : {"action_name" : "send command to socket",981 "parameter_associated_arguments" : {"socket" : {"associated_argument_name" : "Socket Descriptor"},982 "command" : {"associated_argument_name" : "Command"}}},983"closesocket" : {"action_name" : "close socket",984 "action_vocab" : "maecVocabs:SocketActionNameVocab-1.0",985 "parameter_associated_arguments" : {"socket" : {"associated_argument_name" : "Socket Descriptor"}}},986"shutdown" : {"action_name" : "disable socket operation",987 "parameter_associated_arguments" : {"socket" : {"associated_argument_name" : "Socket Descriptor"},988 "how" : {"associated_argument_name" : "Operation"}}},989"WSARecv" : {"action_name" : "receive data on socket",990 "action_vocab" : "maecVocabs:SocketActionNameVocab-1.0",991 "parameter_associated_arguments" : {"socket" : {"associated_argument_name" : "Socket Descriptor"}}},992"WSARecvFrom" : {"action_name" : "receive data on socket",993 "action_vocab" : "maecVocabs:SocketActionNameVocab-1.0",994 "parameter_associated_arguments" : {"socket" : {"associated_argument_name" : "Socket Descriptor"}}},995"WSASend" : {"action_name" : "send data on socket",996 "action_vocab" : "maecVocabs:SocketActionNameVocab-1.0",997 "parameter_associated_arguments" : {"socket" : {"associated_argument_name" : "Socket Descriptor"}}},998"WSASendTo" : {"action_name" : "send data on socket",999 "action_vocab" : "maecVocabs:SocketActionNameVocab-1.0",1000 "parameter_associated_arguments" : {"socket" : {"associated_argument_name" : "Socket Descriptor"}}},1001"WSASocketA" : {"action_name" : "create socket",1002 "action_vocab" : "maecVocabs:SocketActionNameVocab-1.0",1003 "parameter_associated_objects" : {"type" : {"associated_object_type" : "NetworkSocketObjectType",1004 "associated_object_element" : "Type",1005 "association_type" : "output",1006 "post_processing" : "socketTypeToString"},1007 "af" : {"associated_object_type" : "NetworkSocketObjectType",1008 "associated_object_element" : "Address_Family",1009 "association_type" : "output",1010 "post_processing" : "socketAFToString"},1011 "protocol" : {"associated_object_type" : "NetworkSocketObjectType",1012 "associated_object_element" : "Protocol",1013 "association_type" : "output",1014 "post_processing" : "socketProtoToString"},1015 "group_together" : ["type", "protocol", "af"]}},1016"WSASocketW" : {"action_name" : "create socket",1017 "action_vocab" : "maecVocabs:SocketActionNameVocab-1.0",1018 "parameter_associated_objects" : {"type" : {"associated_object_type" : "NetworkSocketObjectType",1019 "associated_object_element" : "Type",1020 "association_type" : "output",1021 "post_processing" : "socketTypeToString"},1022 "af" : {"associated_object_type" : "NetworkSocketObjectType",1023 "associated_object_element" : "Address_Family",1024 "association_type" : "output",1025 "post_processing" : "socketAFToString"},1026 "protocol" : {"associated_object_type" : "NetworkSocketObjectType",1027 "associated_object_element" : "Protocol",1028 "association_type" : "output",1029 "post_processing" : "socketProtoToString"},1030 "group_together" : ["type", "protocol", "af"]}},1031"ConnectEx" : {"action_name" : "connect to socket",1032 "action_vocab" : "maecVocabs:SocketActionNameVocab-1.0",1033 "parameter_associated_arguments" : {"socket" : {"associated_argument_name" : "Socket Descriptor"}}},1034"TransmitFile" : {"action_name" : "send file over socket",1035 "parameter_associated_objects" : {"socket" : {"associated_object_type" : "WindowsHandleObjectType",1036 "associated_object_element" : "ID",1037 "association_type" : "input"},1038 "FileHandle" : {"associated_object_type" : "WindowsHandleObjectType",1039 "associated_object_element" : "ID",1040 "association_type" : "input",1041 "forced" : {"associated_object_element" : "Type", 1042 "value" : "File"}},1043 "NumberOfBytesToWrite" : {"associated_object_type" : "FileObjectType",1044 "associated_object_element" : "Size_In_Bytes",1045 "association_type" : "output"}},1046 "parameter_associated_arguments" : {"NumberOfBytesPerSend" : {"associated_argument_name" : "Send Data Block Size"}}},1047"NtCreateMutant" : {"action_name" : "create mutex",1048 "action_vocab" : "maecVocabs:SynchronizationActionNameVocab-1.0",1049 "parameter_associated_objects" : {"Handle" : {"associated_object_type" : "WindowsHandleObjectType",1050 "associated_object_element" : "ID",1051 "association_type" : "output",1052 "forced" : {"associated_object_element" : "Type", 1053 "value" : "Mutex"}},1054 "MutexName" : {"associated_object_type" : "WindowsMutexObjectType",1055 "associated_object_element" : "Name",1056 "association_type" : "output"}},1057 "parameter_associated_arguments" : {"InitialOwner" : {"associated_argument_name" : "Initial Owner"}}},1058"NtOpenMutant" : {"action_name" : "open mutex",1059 "action_vocab" : "maecVocabs:SynchronizationActionNameVocab-1.0",1060 "parameter_associated_objects" : {"Handle" : {"associated_object_type" : "WindowsHandleObjectType",1061 "associated_object_element" : "ID",1062 "association_type" : "output",1063 "forced" : {"associated_object_element" : "Type", 1064 "value" : "Mutex"}},1065 "MutexName" : {"associated_object_type" : "WindowsMutexObjectType",1066 "associated_object_element" : "Name",1067 "association_type" : "input"}}},1068"NtCreateNamedPipeFile" : {"action_name" : "create named pipe",1069 "action_vocab" : "maecVocabs:IPCActionNameVocab-1.0",1070 "parameter_associated_objects" : {"NamedPipeHandle" : {"associated_object_type" : "WindowsHandleObjectType",1071 "associated_object_element" : "ID",1072 "association_type" : "output",1073 "forced" : {"associated_object_element" : "Type", 1074 "value" : "NamedPipe"}},1075 "PipeName" : {"associated_object_type" : "WindowsPipeObjectType",1076 "associated_object_element" : "Name",1077 "association_type" : "output"}},1078 "parameter_associated_arguments" : {"DesiredAccess" : {"associated_argument_name" : "Access Mode", 1079 "associated_argument_vocab" : "cyboxVocabs:ActionArgumentNameVocab-1.0"},1080 "ShareAccess" : {"associated_argument_name" : "Share Access Mode"}}},1081"OpenSCManagerA" : {"action_name" : "open service control manager",1082 "parameter_associated_objects" : {"MachineName" : {"associated_object_type" : "SystemObjectType",1083 "associated_object_element" : "Hostname",1084 "association_type" : "input"}},1085 "parameter_associated_arguments" : {"DesiredAccess" : {"associated_argument_name" : "Access Mode", 1086 "associated_argument_vocab" : "cyboxVocabs:ActionArgumentNameVocab-1.0"},1087 "DatabaseName" : {"associated_argument_name" : "Database Name"}}},1088"OpenSCManagerW" : {"action_name" : "open service control manager",1089 "parameter_associated_objects" : {"MachineName" : {"associated_object_type" : "SystemObjectType",1090 "associated_object_element" : "Hostname",1091 "association_type" : "input"}},1092 "parameter_associated_arguments" : {"DesiredAccess" : {"associated_argument_name" : "Access Mode", 1093 "associated_argument_vocab" : "cyboxVocabs:ActionArgumentNameVocab-1.0"},1094 "DatabaseName" : {"associated_argument_name" : "Database Name"}}},1095"CreateServiceA" : {"action_name" : "create service",1096 "action_vocab" : "maecVocabs:ServiceActionNameVocab-1.0",1097 "parameter_associated_objects" : {"ServiceControlHandle" : {"associated_object_type" : "WindowsHandleObjectType",1098 "associated_object_element" : "ID",1099 "association_type" : "input",1100 "forced" : {"associated_object_element" : "Type", 1101 "value" : "ServiceControlManager"}},1102 "ServiceName" : {"associated_object_type" : "WindowsServiceObjectType",1103 "associated_object_element" : "Service_Name",1104 "association_type" : "output"},1105 "DisplayName" : {"associated_object_type" : "WindowsServiceObjectType",1106 "associated_object_element" : "Display_Name",1107 "association_type" : "output"},1108 "ServiceType" : {"associated_object_type" : "WindowsServiceObjectType",1109 "associated_object_element" : "Service_Type",1110 "association_type" : "output"},1111 "StartType" : {"associated_object_type" : "WindowsServiceObjectType",1112 "associated_object_element" : "Startup_Type",1113 "association_type" : "output"},1114 "ServiceStartName" : {"associated_object_type" : "WindowsServiceObjectType",1115 "associated_object_element" : "Started_As",1116 "association_type" : "output"},1117 "BinaryPathName" : {"associated_object_type" : "WindowsServiceObjectType",1118 "associated_object_element" : "Image_Info/Path",1119 "association_type" : "output"},1120 "group_together" : ["ServiceName", "DisplayName", "ServiceType", 1121 "StartType", "ServiceStartName", "BinaryPathName"]},1122 "parameter_associated_arguments" : {"DesiredAccess" : {"associated_argument_name" : "Access Mode", 1123 "associated_argument_vocab" : "cyboxVocabs:ActionArgumentNameVocab-1.0"},1124 "ErrorControl" : {"associated_argument_name" : "Error Control"}}},1125"CreateServiceW" : {"action_name" : "create service",1126 "action_vocab" : "maecVocabs:ServiceActionNameVocab-1.0",1127 "parameter_associated_objects" : {"ServiceControlHandle" : {"associated_object_type" : "WindowsHandleObjectType",1128 "associated_object_element" : "ID",1129 "association_type" : "input",1130 "forced" : {"associated_object_element" : "Type", 1131 "value" : "ServiceControlManager"}},1132 "ServiceName" : {"associated_object_type" : "WindowsServiceObjectType",1133 "associated_object_element" : "Service_Name",1134 "association_type" : "output"},1135 "DisplayName" : {"associated_object_type" : "WindowsServiceObjectType",1136 "associated_object_element" : "Display_Name",1137 "association_type" : "output"},1138 "ServiceType" : {"associated_object_type" : "WindowsServiceObjectType",1139 "associated_object_element" : "Service_Type",1140 "association_type" : "output"},1141 "StartType" : {"associated_object_type" : "WindowsServiceObjectType",1142 "associated_object_element" : "Startup_Type",1143 "association_type" : "output"},1144 "ServiceStartName" : {"associated_object_type" : "WindowsServiceObjectType",1145 "associated_object_element" : "Started_As",1146 "association_type" : "output"},1147 "BinaryPathName" : {"associated_object_type" : "WindowsServiceObjectType",1148 "associated_object_element" : "Image_Info/Path",1149 "association_type" : "output"},1150 "group_together" : ["ServiceName", "DisplayName", "ServiceType", 1151 "StartType", "ServiceStartName", "BinaryPathName"]},1152 "parameter_associated_arguments" : {"DesiredAccess" : {"associated_argument_name" : "Access Mode", 1153 "associated_argument_vocab" : "cyboxVocabs:ActionArgumentNameVocab-1.0"},1154 "ErrorControl" : {"associated_argument_name" : "Error Control"}}},1155"OpenServiceA" : {"action_name" : "open service",1156 "action_vocab" : "maecVocabs:ServiceActionNameVocab-1.0",1157 "parameter_associated_objects" : {"ServiceControlManager" : {"associated_object_type" : "WindowsHandleObjectType",1158 "associated_object_element" : "ID",1159 "association_type" : "input",1160 "forced" : {"associated_object_element" : "Type", 1161 "value" : "ServiceControlManager"}},1162 "ServiceName" : {"associated_object_type" : "WindowsServiceObjectType",1163 "associated_object_element" : "Service_Name",1164 "association_type" : "input"}},1165 "parameter_associated_arguments" : {"DesiredAccess" : {"associated_argument_name" : "Access Mode", 1166 "associated_argument_vocab" : "cyboxVocabs:ActionArgumentNameVocab-1.0"}}},1167"OpenServiceW" : {"action_name" : "open service",1168 "action_vocab" : "maecVocabs:ServiceActionNameVocab-1.0",1169 "parameter_associated_objects" : {"ServiceControlManager" : {"associated_object_type" : "WindowsHandleObjectType",1170 "associated_object_element" : "ID",1171 "association_type" : "input",1172 "forced" : {"associated_object_element" : "Type", 1173 "value" : "ServiceControlManager"}},1174 "ServiceName" : {"associated_object_type" : "WindowsServiceObjectType",1175 "associated_object_element" : "Service_Name",1176 "association_type" : "input"}},1177 "parameter_associated_arguments" : {"DesiredAccess" : {"associated_argument_name" : "Access Mode", 1178 "associated_argument_vocab" : "cyboxVocabs:ActionArgumentNameVocab-1.0"}}},1179"StartServiceA" : {"action_name" : "start service",1180 "action_vocab" : "maecVocabs:ServiceActionNameVocab-1.0",1181 "parameter_associated_objects" : {"ServiceHandle" : {"associated_object_type" : "WindowsHandleObjectType",1182 "associated_object_element" : "ID",1183 "association_type" : "input",1184 "forced" : {"associated_object_element" : "Type", 1185 "value" : "Service"}}},1186 "parameter_associated_arguments" : {"Arguments" : {"associated_argument_name" : "Access Mode"}}},1187"StartServiceW" : {"action_name" : "start service",1188 "action_vocab" : "maecVocabs:ServiceActionNameVocab-1.0",1189 "parameter_associated_objects" : {"ServiceHandle" : {"associated_object_type" : "WindowsHandleObjectType",1190 "associated_object_element" : "ID",1191 "association_type" : "input",1192 "forced" : {"associated_object_element" : "Type", 1193 "value" : "Service"}}},1194 "parameter_associated_arguments" : {"Arguments" : {"associated_argument_name" : "Access Mode"}}},1195"ControlService" : {"action_name" : "send control code to service",1196 "action_vocab" : "maecVocabs:ServiceActionNameVocab-1.0",1197 "parameter_associated_objects" : {"ServiceHandle" : {"associated_object_type" : "WindowsHandleObjectType",1198 "associated_object_element" : "ID",1199 "association_type" : "input",1200 "forced" : {"associated_object_element" : "Type", 1201 "value" : "Service"}}},1202 "parameter_associated_arguments" : {"ControlCode" : {"associated_argument_name" : "Control Code",1203 "associated_argument_vocab" : "cyboxVocabs:ActionArgumentNameVocab-1.0"}}},1204"DeleteService" : {"action_name" : "delete service",1205 "action_vocab" : "maecVocabs:ServiceActionNameVocab-1.0",1206 "parameter_associated_objects" : {"ServiceHandle" : {"associated_object_type" : "WindowsHandleObjectType",1207 "associated_object_element" : "ID",1208 "association_type" : "input",1209 "forced" : {"associated_object_element" : "Type", 1210 "value" : "Service"}}}},1211"NtCreateThread" : {"action_name" : "create thread",1212 "action_vocab" : "maecVocabs:ProcessThreadActionNameVocab-1.0",1213 "parameter_associated_objects" : {"ThreadHandle" : {"associated_object_type" : "WindowsHandleObjectType",1214 "associated_object_element" : "ID",1215 "association_type" : "output",1216 "forced" : {"associated_object_element" : "Type", 1217 "value" : "Thread"}},1218 "ProcessHandle" : {"associated_object_type" : "WindowsHandleObjectType",1219 "associated_object_element" : "ID",1220 "association_type" : "input",1221 "forced" : {"associated_object_element" : "Type", 1222 "value" : "Process"}}},1223 "parameter_associated_arguments" : {"ObjectAttributes" : {"associated_argument_name" : "Options",1224 "associated_argument_vocab" : "cyboxVocabs:ActionArgumentNameVocab-1.0"}}},1225"NtOpenThread" : {"action_name" : "open thread",1226 "parameter_associated_objects" : {"ThreadHandle" : {"associated_object_type" : "WindowsHandleObjectType",1227 "associated_object_element" : "ID",1228 "association_type" : "output",1229 "forced" : {"associated_object_element" : "Type", 1230 "value" : "Thread"}}},1231 "parameter_associated_arguments" : {"DesiredAccess" : {"associated_argument_name" : "Access Mode",1232 "associated_argument_vocab" : "cyboxVocabs:ActionArgumentNameVocab-1.0"},1233 "ObjectAttributes" : {"associated_argument_name" : "Options",1234 "associated_argument_vocab" : "cyboxVocabs:ActionArgumentNameVocab-1.0"}}},1235"NtGetContextThread" : {"action_name" : "get thread context",1236 "action_vocab" : "maecVocabs:ProcessThreadActionNameVocab-1.0",1237 "parameter_associated_objects" : {"ThreadHandle" : {"associated_object_type" : "WindowsHandleObjectType",1238 "associated_object_element" : "ID",1239 "association_type" : "input",1240 "forced" : {"associated_object_element" : "Type", 1241 "value" : "Thread"}}}},1242"NtSetContextThread" : {"action_name" : "set thread context",1243 "action_vocab" : "maecVocabs:ProcessThreadActionNameVocab-1.0",1244 "parameter_associated_objects" : {"ThreadHandle" : {"associated_object_type" : "WindowsHandleObjectType",1245 "associated_object_element" : "ID",1246 "association_type" : "input",1247 "forced" : {"associated_object_element" : "Type", 1248 "value" : "Thread"}}}},1249"NtSuspendThread" : {"action_name" : "suspend thread",1250 "parameter_associated_objects" : {"ThreadHandle" : {"associated_object_type" : "WindowsHandleObjectType",1251 "associated_object_element" : "ID",1252 "association_type" : "input",1253 "forced" : {"associated_object_element" : "Type", 1254 "value" : "Thread"}}}},1255"NtResumeThread" : {"action_name" : "resume thread",1256 "parameter_associated_objects" : {"ThreadHandle" : {"associated_object_type" : "WindowsHandleObjectType",1257 "associated_object_element" : "ID",1258 "association_type" : "input",1259 "forced" : {"associated_object_element" : "Type", 1260 "value" : "Thread"}}}},1261"NtTerminateThread" : {"action_name" : "kill thread",1262 "action_vocab" : "maecVocabs:ProcessThreadActionNameVocab-1.0",1263 "parameter_associated_objects" : {"ThreadHandle" : {"associated_object_type" : "WindowsHandleObjectType",1264 "associated_object_element" : "ID",1265 "association_type" : "input",1266 "forced" : {"associated_object_element" : "Type", 1267 "value" : "Thread"}}}},1268"CreateThread" : {"action_name" : "create thread",1269 "action_vocab" : "maecVocabs:ProcessThreadActionNameVocab-1.0",1270 "parameter_associated_objects" : {"ThreadId" : {"associated_object_type" : "WindowsThreadObjectType",1271 "associated_object_element" : "Thread_ID",1272 "association_type" : "output"}},1273 "parameter_associated_arguments" : {"StartRoutine" : {"associated_argument_name" : "Code Address",1274 "associated_argument_vocab" : "cyboxVocabs:ActionArgumentNameVocab-1.0"},1275 "Parameter" : {"associated_argument_name" : "Options",1276 "associated_argument_vocab" : "cyboxVocabs:ActionArgumentNameVocab-1.0"},1277 "CreationFlags" : {"associated_argument_name" : "Creation Flags",1278 "associated_argument_vocab" : "cyboxVocabs:ActionArgumentNameVocab-1.0"}}},1279"CreateRemoteThread" : {"action_name" : "create remote thread in process",1280 "action_vocab" : "maecVocabs:ProcessThreadActionNameVocab-1.0",1281 "parameter_associated_objects" : {"ProcessHandle" : {"associated_object_type" : "WindowsHandleObjectType",1282 "associated_object_element" : "ID",1283 "association_type" : "input"},1284 "ThreadId" : {"associated_object_type" : "WindowsThreadObjectType",1285 "associated_object_element" : "Thread_ID",1286 "association_type" : "output"}},1287 "parameter_associated_arguments" : {"StartRoutine" : {"associated_argument_name" : "Code Address",1288 "associated_argument_vocab" : "cyboxVocabs:ActionArgumentNameVocab-1.0"},1289 "Parameter" : {"associated_argument_name" : "Options",1290 "associated_argument_vocab" : "cyboxVocabs:ActionArgumentNameVocab-1.0"},1291 "CreationFlags" : {"associated_argument_name" : "Creation Flags",1292 "associated_argument_vocab" : "cyboxVocabs:ActionArgumentNameVocab-1.0"}}},1293"ExitThread" : {"action_name" : "exit thread"}, 1294"RtlCreateUserThread" : {"action_name" : "create thread",1295 "action_vocab" : "maecVocabs:ProcessThreadActionNameVocab-1.0",1296 "parameter_associated_objects" : {"ProcessHandle" : {"associated_object_type" : "WindowsHandleObjectType",1297 "associated_object_element" : "ID",1298 "association_type" : "input"},1299 "ThreadHandle" : {"associated_object_type" : "WindowsHandleObjectType",1300 "associated_object_element" : "ID",1301 "association_type" : "output",1302 "forced" : {"associated_object_element" : "Type", 1303 "value" : "Thread"}},1304 "ThreadId" : {"associated_object_type" : "WindowsThreadObjectType",1305 "associated_object_element" : "Thread_ID",1306 "association_type" : "output"}},1307 "parameter_associated_arguments" : {"CreatedSuspended" : {"associated_argument_name" : "Control Parameter",1308 "associated_argument_vocab" : "cyboxVocabs:ActionArgumentNameVocab-1.0"},1309 "StartAddress" : {"associated_argument_name" : "Code Address",1310 "associated_argument_vocab" : "cyboxVocabs:ActionArgumentNameVocab-1.0"},1311 "StartParameter" : {"associated_argument_name" : "Options",1312 "associated_argument_vocab" : "cyboxVocabs:ActionArgumentNameVocab-1.0"}}},1313"URLDownloadToFileW" : {"action_name" : "download file",1314 "action_vocab" : "maecVocabs:NetworkActionNameVocab-1.0",1315 "parameter_associated_objects" : {"URL" : {"associated_object_type" : "URIObjectType",1316 "associated_object_element" : "Value",1317 "association_type" : "input"},1318 "FileName" : {"associated_object_type" : "FileObjectType",1319 "associated_object_element" : "File_Path",1320 "association_type" : "output"}}},1321"InternetOpenA" : {"action_name" : "initialize wininet",1322 "parameter_associated_objects" : {"Agent" : {"associated_object_type" : "HTTPSessionObjectType",1323 "associated_object_element" : "list__HTTP_Request_Response/HTTP_Client_Request/HTTP_Request_Header/Parsed_Header/User_Agent",1324 "association_type" : "input"}},1325 "parameter_associated_arguments" : {"AccessType" : {"associated_argument_name" : "Access Mode",1326 "associated_argument_vocab" : "cyboxVocabs:ActionArgumentNameVocab-1.0"},1327 "ProxyName" : {"associated_argument_name" : "Proxy Name"},1328 "ProxyBypass" : {"associated_argument_name" : "Proxy Bypass"},1329 "Flags" : {"associated_argument_name" : "Flags"}}}, 1330"InternetOpenW" : {"action_name" : "initialize wininet",1331 "parameter_associated_objects" : {"Agent" : {"associated_object_type" : "HTTPSessionObjectType",1332 "associated_object_element" : "list__HTTP_Request_Response/HTTP_Client_Request/HTTP_Request_Header/Parsed_Header/User_Agent",1333 "association_type" : "input"}},1334 "parameter_associated_arguments" : {"AccessType" : {"associated_argument_name" : "Access Mode",1335 "associated_argument_vocab" : "cyboxVocabs:ActionArgumentNameVocab-1.0"},1336 "ProxyName" : {"associated_argument_name" : "Proxy Name"},1337 "ProxyBypass" : {"associated_argument_name" : "Proxy Bypass"},1338 "Flags" : {"associated_argument_name" : "Flags"}}},1339"InternetConnectA" : {"action_name" : "connect to server",1340 "parameter_associated_objects" : {"InternetHandle" : {"associated_object_type" : "WindowsHandleObjectType",1341 "associated_object_element" : "ID",1342 "association_type" : "input",1343 "forced" : {"associated_object_element" : "Type", 1344 "value" : "Internet Resource"}},1345 "ServerName" : {"associated_object_type" : "URIObjectType",1346 "associated_object_element" : "Value",1347 "association_type" : "input"},1348 "ServerPort" : {"associated_object_type" : "PortObjectType",1349 "associated_object_element" : "Port_Value",1350 "association_type" : "input"}},1351 "parameter_associated_arguments" : {"Username" : {"associated_argument_name" : "Username"},1352 "Password" : {"associated_argument_name" : "Password"},1353 "Service" : {"associated_argument_name" : "Service Type"},1354 "Flags" : {"associated_argument_name" : "Flags"}}},1355"InternetConnectW" : {"action_name" : "connect to server",1356 "parameter_associated_objects" : {"InternetHandle" : {"associated_object_type" : "WindowsHandleObjectType",1357 "associated_object_element" : "ID",1358 "association_type" : "input",1359 "forced" : {"associated_object_element" : "Type", 1360 "value" : "Internet Resource"}},1361 "ServerName" : {"associated_object_type" : "URIObjectType",1362 "associated_object_element" : "Value",1363 "association_type" : "input"},1364 "ServerPort" : {"associated_object_type" : "PortObjectType",1365 "associated_object_element" : "Port_Value",1366 "association_type" : "input"}},1367 "parameter_associated_arguments" : {"Username" : {"associated_argument_name" : "Username"},1368 "Password" : {"associated_argument_name" : "Password"},1369 "Service" : {"associated_argument_name" : "Service Type"},1370 "Flags" : {"associated_argument_name" : "Flags"}}},1371"InternetOpenURLA" : {"action_name" : "connect to url",1372 "action_vocab" : "maecVocabs:NetworkActionNameVocab-1.0",1373 "parameter_associated_objects" : {"ConnectionHandle" : {"associated_object_type" : "WindowsHandleObjectType",1374 "associated_object_element" : "ID",1375 "association_type" : "input",1376 "forced" : {"associated_object_element" : "Type", 1377 "value" : "Internet Connection"}},1378 "URL" : {"associated_object_type" : "URIObjectType",1379 "associated_object_element" : "Value",1380 "association_type" : "input"},1381 "Headers" : {"associated_object_type" : "HTTPSessionObjectType",1382 "associated_object_element" : "list__HTTP_Request_Response/HTTP_Client_Request/HTTP_Request_Header/Parsed_Header/Raw_Header",1383 "association_type" : "input"}},1384 "parameter_associated_arguments" : {"Flags" : {"associated_argument_name" : "Flags"}}},1385"InternetOpenURLW" : {"action_name" : "connect to url",1386 "action_vocab" : "maecVocabs:NetworkActionNameVocab-1.0",1387 "parameter_associated_objects" : {"ConnectionHandle" : {"associated_object_type" : "WindowsHandleObjectType",1388 "associated_object_element" : "ID",1389 "association_type" : "input",1390 "forced" : {"associated_object_element" : "Type", 1391 "value" : "Internet Connection"}},1392 "URL" : {"associated_object_type" : "URIObjectType",1393 "associated_object_element" : "Value",1394 "association_type" : "input"},1395 "Headers" : {"associated_object_type" : "HTTPSessionObjectType",1396 "associated_object_element" : "list__HTTP_Request_Response/HTTP_Client_Request/HTTP_Request_Header/Parsed_Header/Raw_Header",1397 "association_type" : "input"}},1398 "parameter_associated_arguments" : {"Flags" : {"associated_argument_name" : "Flags"}}},1399"HttpOpenRequestA" : { "action_name" : "open http request",1400 "parameter_associated_objects" : {"InternetHandle" : {"associated_object_type" : "WindowsHandleObjectType",1401 "associated_object_element" : "ID",1402 "association_type" : "input",1403 "forced" : {"associated_object_element" : "Type", 1404 "value" : "Internet Resource"}},1405 "Path" : {"associated_object_type" : "URIObjectType",1406 "associated_object_element" : "Value",1407 "association_type" : "input"}},1408 "parameter_associated_arguments" : {"Flags" : {"associated_argument_name" : "Flags"}}},1409"HttpOpenRequestW" : { "action_name" : "open http request",1410 "parameter_associated_objects" : {"InternetHandle" : {"associated_object_type" : "WindowsHandleObjectType",1411 "associated_object_element" : "ID",1412 "association_type" : "input",1413 "forced" : {"associated_object_element" : "Type", 1414 "value" : "Internet Resource"}},1415 "Path" : {"associated_object_type" : "URIObjectType",1416 "associated_object_element" : "Value",1417 "association_type" : "input"}},1418 "parameter_associated_arguments" : {"Flags" : {"associated_argument_name" : "Flags"}}},1419"InternetReadFile" : {"action_name" : "read from internet resource",1420 "parameter_associated_objects" : {"InternetHandle" : {"associated_object_type" : "WindowsHandleObjectType",1421 "associated_object_element" : "ID",1422 "association_type" : "input",1423 "forced" : {"associated_object_element" : "Type", 1424 "value" : "Internet Resource"}}}},1425"InternetWriteFile" : {"action_name" : "write to internet resource",1426 "parameter_associated_objects" : {"InternetHandle" : {"associated_object_type" : "WindowsHandleObjectType",1427 "associated_object_element" : "ID",1428 "association_type" : "input",1429 "forced" : {"associated_object_element" : "Type", 1430 "value" : "Internet Resource"}}}},1431"InternetCloseHandle" : {"action_name" : "close internet resource handle",1432 "parameter_associated_objects" : {"InternetHandle" : {"associated_object_type" : "WindowsHandleObjectType",1433 "associated_object_element" : "ID",1434 "association_type" : "input",1435 "forced" : {"associated_object_element" : "Type", 1436 "value" : "Internet Resource"}}}},1437"HttpSendRequestA" : {"action_name" : "send http request",1438 "parameter_associated_objects" : {"RequestHandle" : {"associated_object_type" : "WindowsHandleObjectType",1439 "associated_object_element" : "ID",1440 "association_type" : "input",1441 "forced" : {"associated_object_element" : "Type", 1442 "value" : "HTTPRequest"}},1443 "Headers" : {"associated_object_type" : "HTTPSessionObjectType",1444 "associated_object_element" : "list__HTTP_Request_Response/HTTP_Client_Request/HTTP_Request_Header/Raw_Header",1445 "association_type" : "input"}},1446 "parameter_associated_arguments" : {"PostData" : {"associated_argument_name" : "Post Data"}}},1447"HttpSendRequestW" : {"action_name" : "send http request",1448 "parameter_associated_objects" : {"RequestHandle" : {"associated_object_type" : "WindowsHandleObjectType",1449 "associated_object_element" : "ID",1450 "association_type" : "input",1451 "forced" : {"associated_object_element" : "Type", 1452 "value" : "HTTPRequest"}},1453 "Headers" : {"associated_object_type" : "HTTPSessionObjectType",1454 "associated_object_element" : "list__HTTP_Request_Response/HTTP_Client_Request/HTTP_Request_Header/Raw_Header",1455 "association_type" : "input"}},1456 "parameter_associated_arguments" : {"PostData" : {"associated_argument_name" : "Post Data"}}},1457"DnsQuery_A" : {"action_name" : "send dns query",1458 "action_vocab" : "maecVocabs:DNSActionNameVocab-1.0",1459 "parameter_associated_objects" : {"group_together_nested" : {"parameter_mappings" : [{"parameter_name" : "Name", "element_name" : "QName/Value"},1460 {"parameter_name" : "Type", "element_name" : "QType"}],1461 "associated_object_type" : "DNSQueryObjectType",1462 "associated_object_element" : "Question",1463 "association_type" : "input"}},1464 "parameter_associated_arguments" : {"Options" : {"associated_argument_name" : "Options"}}},1465"DnsQuery_UTF8" : {"action_name" : "send dns query",1466 "action_vocab" : "maecVocabs:DNSActionNameVocab-1.0",1467 "parameter_associated_objects" : {"group_together_nested" : {"parameter_mappings" : [{"parameter_name" : "Name", "element_name" : "QName/Value"},1468 {"parameter_name" : "Type", "element_name" : "QType"}],1469 "associated_object_type" : "DNSQueryObjectType",1470 "associated_object_element" : "Question",1471 "association_type" : "input"}},1472 "parameter_associated_arguments" : {"Options" : {"associated_argument_name" : "Options"}}},1473"DnsQuery_W" : {"action_name" : "send dns query",1474 "action_vocab" : "maecVocabs:DNSActionNameVocab-1.0",1475 "parameter_associated_objects" : {"group_together_nested" : {"parameter_mappings" : [{"parameter_name" : "Name", "element_name" : "QName/Value"},1476 {"parameter_name" : "Type", "element_name" : "QType"}],1477 "associated_object_type" : "DNSQueryObjectType",1478 "associated_object_element" : "Question",1479 "association_type" : "input"}},1480 "parameter_associated_arguments" : {"Options" : {"associated_argument_name" : "Options"}}},1481"getaddrinfo" : {"action_name" : "get host by name",1482 "action_vocab" : "maecVocabs:SocketActionNameVocab-1.0",1483 "parameter_associated_objects" : {"NodeName" : {"associated_object_type" : "URIObjectType",1484 "associated_object_element" : "Value",1485 "association_type" : "input"}},1486 "parameter_associated_arguments" : {"ServiceName" : {"associated_argument_name" : "Service Name"}}},1487"GetAddrInfoW" : {"action_name" : "get host by name",1488 "action_vocab" : "maecVocabs:SocketActionNameVocab-1.0",1489 "parameter_associated_objects" : {"NodeName" : {"associated_object_type" : "URIObjectType",1490 "associated_object_element" : "Value",1491 "association_type" : "input"}},1492 "parameter_associated_arguments" : {"ServiceName" : {"associated_argument_name" : "Service Name"}}}1493}1494def hiveHexToString(hive_hex_value):1495 """Maps a Registry Hive hex input to its String (name) equivalent"""1496 str_val = str(hive_hex_value)1497 if str_val == "0x80000000" or str_val == "-2147483648" or str_val == "2147483648":1498 return "HKEY_CLASSES_ROOT"1499 elif str_val == "0x80000001" or str_val == "-2147483647" or str_val == "2147483649":1500 return "HKEY_CURRENT_USER"1501 elif str_val == "0x80000002" or str_val == "-2147483646" or str_val == "2147483650":1502 return "HKEY_LOCAL_MACHINE"1503 elif str_val == "0x80000003" or str_val == "-2147483645" or str_val == "2147483651":1504 return "HKEY_USERS"1505 elif str_val == "0x80000004":1506 return "HKEY_PERFORMANCE_DATA"1507 elif str_val == "0x80000005" or str_val == "2147483653":1508 return "HKEY_CURRENT_CONFIG"1509 elif str_val == "0x80000006":1510 return "HKEY_DYN_DATA"1511 else:1512 return hive_hex_value1513def regDatatypeToString(datatype_int_value):1514 """Maps a Registry Datatype integer input to its String (name) equivalent"""1515 if str(datatype_int_value) == "1":1516 return "REG_SZ"1517 elif str(datatype_int_value) == "2":1518 return "REG_EXPAND_SZ"1519 elif str(datatype_int_value) == "3":1520 return "REG_BINARY"1521 elif str(datatype_int_value) == "4":1522 return "REG_DWORD"1523 elif str(datatype_int_value) == "5":1524 return "REG_DWORD_BIG_ENDIAN"1525 elif str(datatype_int_value) == "6":1526 return "REG_LINK"1527 elif str(datatype_int_value) == "7":1528 return "REG_MULTI_SZ"1529 elif str(datatype_int_value) == "8":1530 return "REG_RESOURCE_LIST"1531 elif str(datatype_int_value) == "9":1532 return "REG_FULL_RESOURCE_DESCRIPTOR"1533 elif str(datatype_int_value) == "10":1534 return "REG_RESOURCE_REQUIREMENTS_LIST"1535 elif str(datatype_int_value) == "11":1536 return "REG_QWORD"1537 else:1538 return datatype_int_value1539def socketProtoToString(proto_int_value):1540 """Maps a Socket Protocol integer input to its String (name) equivalent"""1541 if str(proto_int_value) == "1":1542 return "IPPROTO_ICMP"1543 elif str(proto_int_value) == "2":1544 return "IPPROTO_IGMP"1545 elif str(proto_int_value) == "3":1546 return "BTHPROTO_RFCOMM"1547 elif str(proto_int_value) == "6":1548 return "IPPROTO_TCP"1549 elif str(proto_int_value) == "17":1550 return "IPPROTO_UDP"1551 elif str(proto_int_value) == "58":1552 return "IPPROTO_ICMPV6"1553 elif str(proto_int_value) == "113":1554 return "IPPROTO_RM"1555 else:1556 return proto_int_value1557def socketAFToString(af_int_value):1558 """Maps a Socket Address Family integer input to its String (name) equivalent"""1559 if str(af_int_value) == "0":1560 return "AF_UNSPEC"1561 elif str(af_int_value) == "2":1562 return "AF_INET"1563 elif str(af_int_value) == "6":1564 return "AF_IPX"1565 elif str(af_int_value) == "16":1566 return "AF_APPLETALK"1567 elif str(af_int_value) == "17":1568 return "AF_NETBIOS"1569 elif str(af_int_value) == "23":1570 return "AF_INET6"1571 elif str(af_int_value) == "26":1572 return "AF_IRDA"1573 elif str(af_int_value) == "32":1574 return "AF_BTH"1575 else:1576 return af_int_value1577def socketTypeToString(type_int_value):1578 """Maps a Socket Type integer input to its String (name) equivalent"""1579 if str(type_int_value) == "1":1580 return "SOCK_STREAM"1581 elif str(type_int_value) == "2":1582 return "SOCK_DGRAM"1583 elif str(type_int_value) == "3":1584 return "SOCK_RAW"1585 elif str(type_int_value) == "4":1586 return "SOCK_RDM"1587 elif str(type_int_value) == "5":1588 return "SOCK_SEQPACKET"1589 else:1590 return type_int_value1591def intToHex(value):1592 """Convert an integer to a hex string"""1593 if isinstance(value, int):1594 value = "0x{0:08x}".format(value)1595 return value1596def regStringToHive(reg_string):1597 """Maps a string representing a Registry Key from a NT* API call input to its normalized hive"""1598 normalized_key = fix_key(reg_string)1599 return normalized_key.split("\\")[0]1600def regStringToKey(reg_string):1601 """Maps a string representing a Registry Key from a NT* API call input to its normalized key portion"""1602 normalized_key = fix_key(reg_string)...

Full Screen

Full Screen

Sidebar.Object.js

Source:Sidebar.Object.js Github

copy

Full Screen

1/**2 * @author mrdoob / http://mrdoob.com/3 */4import * as THREE from '../../build/three.module.js';5import { UIPanel, UIRow, UIInput, UIButton, UIColor, UICheckbox, UIInteger, UITextArea, UIText, UINumber } from './libs/ui.js';6import { UIBoolean } from './libs/ui.three.js';7import { SetUuidCommand } from './commands/SetUuidCommand.js';8import { SetValueCommand } from './commands/SetValueCommand.js';9import { SetPositionCommand } from './commands/SetPositionCommand.js';10import { SetRotationCommand } from './commands/SetRotationCommand.js';11import { SetScaleCommand } from './commands/SetScaleCommand.js';12import { SetColorCommand } from './commands/SetColorCommand.js';13var SidebarObject = function ( editor ) {14 var strings = editor.strings;15 var signals = editor.signals;16 var container = new UIPanel();17 container.setBorderTop( '0' );18 container.setPaddingTop( '20px' );19 container.setDisplay( 'none' );20 // Actions21 /*22 var objectActions = new UI.Select().setPosition( 'absolute' ).setRight( '8px' ).setFontSize( '11px' );23 objectActions.setOptions( {24 'Actions': 'Actions',25 'Reset Position': 'Reset Position',26 'Reset Rotation': 'Reset Rotation',27 'Reset Scale': 'Reset Scale'28 } );29 objectActions.onClick( function ( event ) {30 event.stopPropagation(); // Avoid panel collapsing31 } );32 objectActions.onChange( function ( event ) {33 var object = editor.selected;34 switch ( this.getValue() ) {35 case 'Reset Position':36 editor.execute( new SetPositionCommand( editor, object, new Vector3( 0, 0, 0 ) ) );37 break;38 case 'Reset Rotation':39 editor.execute( new SetRotationCommand( editor, object, new Euler( 0, 0, 0 ) ) );40 break;41 case 'Reset Scale':42 editor.execute( new SetScaleCommand( editor, object, new Vector3( 1, 1, 1 ) ) );43 break;44 }45 this.setValue( 'Actions' );46 } );47 container.addStatic( objectActions );48 */49 // type50 var objectTypeRow = new UIRow();51 var objectType = new UIText();52 objectTypeRow.add( new UIText( strings.getKey( 'sidebar/object/type' ) ).setWidth( '90px' ) );53 objectTypeRow.add( objectType );54 container.add( objectTypeRow );55 // uuid56 var objectUUIDRow = new UIRow();57 var objectUUID = new UIInput().setWidth( '102px' ).setFontSize( '12px' ).setDisabled( true );58 var objectUUIDRenew = new UIButton( strings.getKey( 'sidebar/object/new' ) ).setMarginLeft( '7px' ).onClick( function () {59 objectUUID.setValue( THREE.Math.generateUUID() );60 editor.execute( new SetUuidCommand( editor, editor.selected, objectUUID.getValue() ) );61 } );62 objectUUIDRow.add( new UIText( strings.getKey( 'sidebar/object/uuid' ) ).setWidth( '90px' ) );63 objectUUIDRow.add( objectUUID );64 objectUUIDRow.add( objectUUIDRenew );65 container.add( objectUUIDRow );66 // name67 var objectNameRow = new UIRow();68 var objectName = new UIInput().setWidth( '150px' ).setFontSize( '12px' ).onChange( function () {69 editor.execute( new SetValueCommand( editor, editor.selected, 'name', objectName.getValue() ) );70 } );71 objectNameRow.add( new UIText( strings.getKey( 'sidebar/object/name' ) ).setWidth( '90px' ) );72 objectNameRow.add( objectName );73 container.add( objectNameRow );74 // position75 var objectPositionRow = new UIRow();76 var objectPositionX = new UINumber().setPrecision( 3 ).setWidth( '50px' ).onChange( update );77 var objectPositionY = new UINumber().setPrecision( 3 ).setWidth( '50px' ).onChange( update );78 var objectPositionZ = new UINumber().setPrecision( 3 ).setWidth( '50px' ).onChange( update );79 objectPositionRow.add( new UIText( strings.getKey( 'sidebar/object/position' ) ).setWidth( '90px' ) );80 objectPositionRow.add( objectPositionX, objectPositionY, objectPositionZ );81 container.add( objectPositionRow );82 // rotation83 var objectRotationRow = new UIRow();84 var objectRotationX = new UINumber().setStep( 10 ).setUnit( '°' ).setWidth( '50px' ).onChange( update );85 var objectRotationY = new UINumber().setStep( 10 ).setUnit( '°' ).setWidth( '50px' ).onChange( update );86 var objectRotationZ = new UINumber().setStep( 10 ).setUnit( '°' ).setWidth( '50px' ).onChange( update );87 objectRotationRow.add( new UIText( strings.getKey( 'sidebar/object/rotation' ) ).setWidth( '90px' ) );88 objectRotationRow.add( objectRotationX, objectRotationY, objectRotationZ );89 container.add( objectRotationRow );90 // scale91 var objectScaleRow = new UIRow();92 var objectScaleLock = new UICheckbox( true ).setPosition( 'absolute' ).setLeft( '75px' );93 var objectScaleX = new UINumber( 1 ).setPrecision( 3 ).setRange( 0.001, Infinity ).setWidth( '50px' ).onChange( updateScaleX );94 var objectScaleY = new UINumber( 1 ).setPrecision( 3 ).setRange( 0.001, Infinity ).setWidth( '50px' ).onChange( updateScaleY );95 var objectScaleZ = new UINumber( 1 ).setPrecision( 3 ).setRange( 0.001, Infinity ).setWidth( '50px' ).onChange( updateScaleZ );96 objectScaleRow.add( new UIText( strings.getKey( 'sidebar/object/scale' ) ).setWidth( '90px' ) );97 objectScaleRow.add( objectScaleLock );98 objectScaleRow.add( objectScaleX, objectScaleY, objectScaleZ );99 container.add( objectScaleRow );100 // fov101 var objectFovRow = new UIRow();102 var objectFov = new UINumber().onChange( update );103 objectFovRow.add( new UIText( strings.getKey( 'sidebar/object/fov' ) ).setWidth( '90px' ) );104 objectFovRow.add( objectFov );105 container.add( objectFovRow );106 // left107 var objectLeftRow = new UIRow();108 var objectLeft = new UINumber().onChange( update );109 objectLeftRow.add( new UIText( strings.getKey( 'sidebar/object/left' ) ).setWidth( '90px' ) );110 objectLeftRow.add( objectLeft );111 container.add( objectLeftRow );112 // right113 var objectRightRow = new UIRow();114 var objectRight = new UINumber().onChange( update );115 objectRightRow.add( new UIText( strings.getKey( 'sidebar/object/right' ) ).setWidth( '90px' ) );116 objectRightRow.add( objectRight );117 container.add( objectRightRow );118 // top119 var objectTopRow = new UIRow();120 var objectTop = new UINumber().onChange( update );121 objectTopRow.add( new UIText( strings.getKey( 'sidebar/object/top' ) ).setWidth( '90px' ) );122 objectTopRow.add( objectTop );123 container.add( objectTopRow );124 // bottom125 var objectBottomRow = new UIRow();126 var objectBottom = new UINumber().onChange( update );127 objectBottomRow.add( new UIText( strings.getKey( 'sidebar/object/bottom' ) ).setWidth( '90px' ) );128 objectBottomRow.add( objectBottom );129 container.add( objectBottomRow );130 // near131 var objectNearRow = new UIRow();132 var objectNear = new UINumber().onChange( update );133 objectNearRow.add( new UIText( strings.getKey( 'sidebar/object/near' ) ).setWidth( '90px' ) );134 objectNearRow.add( objectNear );135 container.add( objectNearRow );136 // far137 var objectFarRow = new UIRow();138 var objectFar = new UINumber().onChange( update );139 objectFarRow.add( new UIText( strings.getKey( 'sidebar/object/far' ) ).setWidth( '90px' ) );140 objectFarRow.add( objectFar );141 container.add( objectFarRow );142 // intensity143 var objectIntensityRow = new UIRow();144 var objectIntensity = new UINumber().setRange( 0, Infinity ).onChange( update );145 objectIntensityRow.add( new UIText( strings.getKey( 'sidebar/object/intensity' ) ).setWidth( '90px' ) );146 objectIntensityRow.add( objectIntensity );147 container.add( objectIntensityRow );148 // color149 var objectColorRow = new UIRow();150 var objectColor = new UIColor().onChange( update );151 objectColorRow.add( new UIText( strings.getKey( 'sidebar/object/color' ) ).setWidth( '90px' ) );152 objectColorRow.add( objectColor );153 container.add( objectColorRow );154 // ground color155 var objectGroundColorRow = new UIRow();156 var objectGroundColor = new UIColor().onChange( update );157 objectGroundColorRow.add( new UIText( strings.getKey( 'sidebar/object/groundcolor' ) ).setWidth( '90px' ) );158 objectGroundColorRow.add( objectGroundColor );159 container.add( objectGroundColorRow );160 // distance161 var objectDistanceRow = new UIRow();162 var objectDistance = new UINumber().setRange( 0, Infinity ).onChange( update );163 objectDistanceRow.add( new UIText( strings.getKey( 'sidebar/object/distance' ) ).setWidth( '90px' ) );164 objectDistanceRow.add( objectDistance );165 container.add( objectDistanceRow );166 // angle167 var objectAngleRow = new UIRow();168 var objectAngle = new UINumber().setPrecision( 3 ).setRange( 0, Math.PI / 2 ).onChange( update );169 objectAngleRow.add( new UIText( strings.getKey( 'sidebar/object/angle' ) ).setWidth( '90px' ) );170 objectAngleRow.add( objectAngle );171 container.add( objectAngleRow );172 // penumbra173 var objectPenumbraRow = new UIRow();174 var objectPenumbra = new UINumber().setRange( 0, 1 ).onChange( update );175 objectPenumbraRow.add( new UIText( strings.getKey( 'sidebar/object/penumbra' ) ).setWidth( '90px' ) );176 objectPenumbraRow.add( objectPenumbra );177 container.add( objectPenumbraRow );178 // decay179 var objectDecayRow = new UIRow();180 var objectDecay = new UINumber().setRange( 0, Infinity ).onChange( update );181 objectDecayRow.add( new UIText( strings.getKey( 'sidebar/object/decay' ) ).setWidth( '90px' ) );182 objectDecayRow.add( objectDecay );183 container.add( objectDecayRow );184 // shadow185 var objectShadowRow = new UIRow();186 objectShadowRow.add( new UIText( strings.getKey( 'sidebar/object/shadow' ) ).setWidth( '90px' ) );187 var objectCastShadow = new UIBoolean( false, strings.getKey( 'sidebar/object/cast' ) ).onChange( update );188 objectShadowRow.add( objectCastShadow );189 var objectReceiveShadow = new UIBoolean( false, strings.getKey( 'sidebar/object/receive' ) ).onChange( update );190 objectShadowRow.add( objectReceiveShadow );191 var objectShadowRadius = new UINumber( 1 ).onChange( update );192 objectShadowRow.add( objectShadowRadius );193 container.add( objectShadowRow );194 // visible195 var objectVisibleRow = new UIRow();196 var objectVisible = new UICheckbox().onChange( update );197 objectVisibleRow.add( new UIText( strings.getKey( 'sidebar/object/visible' ) ).setWidth( '90px' ) );198 objectVisibleRow.add( objectVisible );199 container.add( objectVisibleRow );200 // frustumCulled201 var objectFrustumCulledRow = new UIRow();202 var objectFrustumCulled = new UICheckbox().onChange( update );203 objectFrustumCulledRow.add( new UIText( strings.getKey( 'sidebar/object/frustumcull' ) ).setWidth( '90px' ) );204 objectFrustumCulledRow.add( objectFrustumCulled );205 container.add( objectFrustumCulledRow );206 // renderOrder207 var objectRenderOrderRow = new UIRow();208 var objectRenderOrder = new UIInteger().setWidth( '50px' ).onChange( update );209 objectRenderOrderRow.add( new UIText( strings.getKey( 'sidebar/object/renderorder' ) ).setWidth( '90px' ) );210 objectRenderOrderRow.add( objectRenderOrder );211 container.add( objectRenderOrderRow );212 // user data213 var objectUserDataRow = new UIRow();214 var objectUserData = new UITextArea().setWidth( '150px' ).setHeight( '40px' ).setFontSize( '12px' ).onChange( update );215 objectUserData.onKeyUp( function () {216 try {217 JSON.parse( objectUserData.getValue() );218 objectUserData.dom.classList.add( 'success' );219 objectUserData.dom.classList.remove( 'fail' );220 } catch ( error ) {221 objectUserData.dom.classList.remove( 'success' );222 objectUserData.dom.classList.add( 'fail' );223 }224 } );225 objectUserDataRow.add( new UIText( strings.getKey( 'sidebar/object/userdata' ) ).setWidth( '90px' ) );226 objectUserDataRow.add( objectUserData );227 container.add( objectUserDataRow );228 //229 function updateScaleX() {230 var object = editor.selected;231 if ( objectScaleLock.getValue() === true ) {232 var scale = objectScaleX.getValue() / object.scale.x;233 objectScaleY.setValue( objectScaleY.getValue() * scale );234 objectScaleZ.setValue( objectScaleZ.getValue() * scale );235 }236 update();237 }238 function updateScaleY() {239 var object = editor.selected;240 if ( objectScaleLock.getValue() === true ) {241 var scale = objectScaleY.getValue() / object.scale.y;242 objectScaleX.setValue( objectScaleX.getValue() * scale );243 objectScaleZ.setValue( objectScaleZ.getValue() * scale );244 }245 update();246 }247 function updateScaleZ() {248 var object = editor.selected;249 if ( objectScaleLock.getValue() === true ) {250 var scale = objectScaleZ.getValue() / object.scale.z;251 objectScaleX.setValue( objectScaleX.getValue() * scale );252 objectScaleY.setValue( objectScaleY.getValue() * scale );253 }254 update();255 }256 function update() {257 var object = editor.selected;258 if ( object !== null ) {259 var newPosition = new THREE.Vector3( objectPositionX.getValue(), objectPositionY.getValue(), objectPositionZ.getValue() );260 if ( object.position.distanceTo( newPosition ) >= 0.01 ) {261 editor.execute( new SetPositionCommand( editor, object, newPosition ) );262 }263 var newRotation = new THREE.Euler( objectRotationX.getValue() * THREE.Math.DEG2RAD, objectRotationY.getValue() * THREE.Math.DEG2RAD, objectRotationZ.getValue() * THREE.Math.DEG2RAD );264 if ( object.rotation.toVector3().distanceTo( newRotation.toVector3() ) >= 0.01 ) {265 editor.execute( new SetRotationCommand( editor, object, newRotation ) );266 }267 var newScale = new THREE.Vector3( objectScaleX.getValue(), objectScaleY.getValue(), objectScaleZ.getValue() );268 if ( object.scale.distanceTo( newScale ) >= 0.01 ) {269 editor.execute( new SetScaleCommand( editor, object, newScale ) );270 }271 if ( object.fov !== undefined && Math.abs( object.fov - objectFov.getValue() ) >= 0.01 ) {272 editor.execute( new SetValueCommand( editor, object, 'fov', objectFov.getValue() ) );273 object.updateProjectionMatrix();274 }275 if ( object.left !== undefined && Math.abs( object.left - objectLeft.getValue() ) >= 0.01 ) {276 editor.execute( new SetValueCommand( editor, object, 'left', objectLeft.getValue() ) );277 object.updateProjectionMatrix();278 }279 if ( object.right !== undefined && Math.abs( object.right - objectRight.getValue() ) >= 0.01 ) {280 editor.execute( new SetValueCommand( editor, object, 'right', objectRight.getValue() ) );281 object.updateProjectionMatrix();282 }283 if ( object.top !== undefined && Math.abs( object.top - objectTop.getValue() ) >= 0.01 ) {284 editor.execute( new SetValueCommand( editor, object, 'top', objectTop.getValue() ) );285 object.updateProjectionMatrix();286 }287 if ( object.bottom !== undefined && Math.abs( object.bottom - objectBottom.getValue() ) >= 0.01 ) {288 editor.execute( new SetValueCommand( editor, object, 'bottom', objectBottom.getValue() ) );289 object.updateProjectionMatrix();290 }291 if ( object.near !== undefined && Math.abs( object.near - objectNear.getValue() ) >= 0.01 ) {292 editor.execute( new SetValueCommand( editor, object, 'near', objectNear.getValue() ) );293 if ( object.isOrthographicCamera ) {294 object.updateProjectionMatrix();295 }296 }297 if ( object.far !== undefined && Math.abs( object.far - objectFar.getValue() ) >= 0.01 ) {298 editor.execute( new SetValueCommand( editor, object, 'far', objectFar.getValue() ) );299 if ( object.isOrthographicCamera ) {300 object.updateProjectionMatrix();301 }302 }303 if ( object.intensity !== undefined && Math.abs( object.intensity - objectIntensity.getValue() ) >= 0.01 ) {304 editor.execute( new SetValueCommand( editor, object, 'intensity', objectIntensity.getValue() ) );305 }306 if ( object.color !== undefined && object.color.getHex() !== objectColor.getHexValue() ) {307 editor.execute( new SetColorCommand( editor, object, 'color', objectColor.getHexValue() ) );308 }309 if ( object.groundColor !== undefined && object.groundColor.getHex() !== objectGroundColor.getHexValue() ) {310 editor.execute( new SetColorCommand( editor, object, 'groundColor', objectGroundColor.getHexValue() ) );311 }312 if ( object.distance !== undefined && Math.abs( object.distance - objectDistance.getValue() ) >= 0.01 ) {313 editor.execute( new SetValueCommand( editor, object, 'distance', objectDistance.getValue() ) );314 }315 if ( object.angle !== undefined && Math.abs( object.angle - objectAngle.getValue() ) >= 0.01 ) {316 editor.execute( new SetValueCommand( editor, object, 'angle', objectAngle.getValue() ) );317 }318 if ( object.penumbra !== undefined && Math.abs( object.penumbra - objectPenumbra.getValue() ) >= 0.01 ) {319 editor.execute( new SetValueCommand( editor, object, 'penumbra', objectPenumbra.getValue() ) );320 }321 if ( object.decay !== undefined && Math.abs( object.decay - objectDecay.getValue() ) >= 0.01 ) {322 editor.execute( new SetValueCommand( editor, object, 'decay', objectDecay.getValue() ) );323 }324 if ( object.visible !== objectVisible.getValue() ) {325 editor.execute( new SetValueCommand( editor, object, 'visible', objectVisible.getValue() ) );326 }327 if ( object.frustumCulled !== objectFrustumCulled.getValue() ) {328 editor.execute( new SetValueCommand( editor, object, 'frustumCulled', objectFrustumCulled.getValue() ) );329 }330 if ( object.renderOrder !== objectRenderOrder.getValue() ) {331 editor.execute( new SetValueCommand( editor, object, 'renderOrder', objectRenderOrder.getValue() ) );332 }333 if ( object.castShadow !== undefined && object.castShadow !== objectCastShadow.getValue() ) {334 editor.execute( new SetValueCommand( editor, object, 'castShadow', objectCastShadow.getValue() ) );335 }336 if ( object.receiveShadow !== undefined && object.receiveShadow !== objectReceiveShadow.getValue() ) {337 object.material.needsUpdate = true;338 editor.execute( new SetValueCommand( editor, object, 'receiveShadow', objectReceiveShadow.getValue() ) );339 }340 if ( object.shadow !== undefined ) {341 if ( object.shadow.radius !== objectShadowRadius.getValue() ) {342 editor.execute( new SetValueCommand( editor, object.shadow, 'radius', objectShadowRadius.getValue() ) );343 }344 }345 try {346 var userData = JSON.parse( objectUserData.getValue() );347 if ( JSON.stringify( object.userData ) != JSON.stringify( userData ) ) {348 editor.execute( new SetValueCommand( editor, object, 'userData', userData ) );349 }350 } catch ( exception ) {351 console.warn( exception );352 }353 }354 }355 function updateRows( object ) {356 var properties = {357 'fov': objectFovRow,358 'left': objectLeftRow,359 'right': objectRightRow,360 'top': objectTopRow,361 'bottom': objectBottomRow,362 'near': objectNearRow,363 'far': objectFarRow,364 'intensity': objectIntensityRow,365 'color': objectColorRow,366 'groundColor': objectGroundColorRow,367 'distance': objectDistanceRow,368 'angle': objectAngleRow,369 'penumbra': objectPenumbraRow,370 'decay': objectDecayRow,371 'castShadow': objectShadowRow,372 'receiveShadow': objectReceiveShadow,373 'shadow': objectShadowRadius374 };375 for ( var property in properties ) {376 properties[ property ].setDisplay( object[ property ] !== undefined ? '' : 'none' );377 }378 }379 function updateTransformRows( object ) {380 if ( object.isLight ||381 ( object.isObject3D && object.userData.targetInverse ) ) {382 objectRotationRow.setDisplay( 'none' );383 objectScaleRow.setDisplay( 'none' );384 } else {385 objectRotationRow.setDisplay( '' );386 objectScaleRow.setDisplay( '' );387 }388 }389 // events390 signals.objectSelected.add( function ( object ) {391 if ( object !== null ) {392 container.setDisplay( 'block' );393 updateRows( object );394 updateUI( object );395 } else {396 container.setDisplay( 'none' );397 }398 } );399 signals.objectChanged.add( function ( object ) {400 if ( object !== editor.selected ) return;401 updateUI( object );402 } );403 signals.refreshSidebarObject3D.add( function ( object ) {404 if ( object !== editor.selected ) return;405 updateUI( object );406 } );407 function updateUI( object ) {408 objectType.setValue( object.type );409 objectUUID.setValue( object.uuid );410 objectName.setValue( object.name );411 objectPositionX.setValue( object.position.x );412 objectPositionY.setValue( object.position.y );413 objectPositionZ.setValue( object.position.z );414 objectRotationX.setValue( object.rotation.x * THREE.Math.RAD2DEG );415 objectRotationY.setValue( object.rotation.y * THREE.Math.RAD2DEG );416 objectRotationZ.setValue( object.rotation.z * THREE.Math.RAD2DEG );417 objectScaleX.setValue( object.scale.x );418 objectScaleY.setValue( object.scale.y );419 objectScaleZ.setValue( object.scale.z );420 if ( object.fov !== undefined ) {421 objectFov.setValue( object.fov );422 }423 if ( object.left !== undefined ) {424 objectLeft.setValue( object.left );425 }426 if ( object.right !== undefined ) {427 objectRight.setValue( object.right );428 }429 if ( object.top !== undefined ) {430 objectTop.setValue( object.top );431 }432 if ( object.bottom !== undefined ) {433 objectBottom.setValue( object.bottom );434 }435 if ( object.near !== undefined ) {436 objectNear.setValue( object.near );437 }438 if ( object.far !== undefined ) {439 objectFar.setValue( object.far );440 }441 if ( object.intensity !== undefined ) {442 objectIntensity.setValue( object.intensity );443 }444 if ( object.color !== undefined ) {445 objectColor.setHexValue( object.color.getHexString() );446 }447 if ( object.groundColor !== undefined ) {448 objectGroundColor.setHexValue( object.groundColor.getHexString() );449 }450 if ( object.distance !== undefined ) {451 objectDistance.setValue( object.distance );452 }453 if ( object.angle !== undefined ) {454 objectAngle.setValue( object.angle );455 }456 if ( object.penumbra !== undefined ) {457 objectPenumbra.setValue( object.penumbra );458 }459 if ( object.decay !== undefined ) {460 objectDecay.setValue( object.decay );461 }462 if ( object.castShadow !== undefined ) {463 objectCastShadow.setValue( object.castShadow );464 }465 if ( object.receiveShadow !== undefined ) {466 objectReceiveShadow.setValue( object.receiveShadow );467 }468 if ( object.shadow !== undefined ) {469 objectShadowRadius.setValue( object.shadow.radius );470 }471 objectVisible.setValue( object.visible );472 objectFrustumCulled.setValue( object.frustumCulled );473 objectRenderOrder.setValue( object.renderOrder );474 try {475 objectUserData.setValue( JSON.stringify( object.userData, null, ' ' ) );476 } catch ( error ) {477 console.log( error );478 }479 objectUserData.setBorderColor( 'transparent' );480 objectUserData.setBackgroundColor( '' );481 updateTransformRows( object );482 }483 return container;484};...

Full Screen

Full Screen

JSON-stringify.js

Source:JSON-stringify.js Github

copy

Full Screen

1function createTests() {2 var simpleArray = ['a', 'b', 'c'];3 var simpleObject = {a:"1", b:"2", c:"3"};4 var complexArray = ['a', 'b', 'c',,,simpleObject, simpleArray, [simpleObject,simpleArray]];5 var complexObject = {a:"1", b:"2", c:"3", d:undefined, e:null, "":12, get f(){ return simpleArray; }, array: complexArray};6 var simpleArrayWithProto = ['d', 'e', 'f'];7 simpleArrayWithProto.__proto__ = simpleObject;8 var simpleObjectWithProto = {d:"4", e:"5", f:"6", __proto__:simpleObject};9 var complexArrayWithProto = ['d', 'e', 'f',,,simpleObjectWithProto, simpleArrayWithProto, [simpleObjectWithProto,simpleArrayWithProto]];10 complexArrayWithProto.__proto__ = simpleObjectWithProto;11 var complexObjectWithProto = {d:"4", e:"5", f:"6", g:undefined, h:null, "":12, get i(){ return simpleArrayWithProto; }, array2: complexArrayWithProto, __proto__:complexObject};12 var objectWithSideEffectGetter = {get b() {this.foo=1;}};13 var objectWithSideEffectGetterAndProto = {__proto__:{foo:"bar"}, get b() {this.foo=1;}};14 var arrayWithSideEffectGetter = [];15 arrayWithSideEffectGetter.__defineGetter__("b", function(){this.foo=1;});16 var arrayWithSideEffectGetterAndProto = [];17 arrayWithSideEffectGetterAndProto.__defineGetter__("b", function(){this.foo=1;});18 arrayWithSideEffectGetterAndProto.__proto__ = {foo:"bar"};19 var result = [];20 result.push(function(jsonObject){21 return jsonObject.stringify(1);22 });23 result.push(function(jsonObject){24 return jsonObject.stringify(1.5);25 });26 result.push(function(jsonObject){27 return jsonObject.stringify(-1);28 });29 result.push(function(jsonObject){30 return jsonObject.stringify(-1.5);31 });32 result.push(function(jsonObject){33 return jsonObject.stringify(null);34 });35 result.push(function(jsonObject){36 return jsonObject.stringify("string");37 });38 result.push(function(jsonObject){39 return jsonObject.stringify(new Number(0));40 });41 result.push(function(jsonObject){42 return jsonObject.stringify(new Number(1));43 });44 result.push(function(jsonObject){45 return jsonObject.stringify(new Number(1.5));46 });47 result.push(function(jsonObject){48 return jsonObject.stringify(new Number(-1));49 });50 result.push(function(jsonObject){51 return jsonObject.stringify(new Number(-1.5));52 });53 result.push(function(jsonObject){54 return jsonObject.stringify(new String("a string object"));55 });56 result.push(function(jsonObject){57 return jsonObject.stringify(new Boolean(true));58 });59 result.push(function(jsonObject){60 var value = new Number(1);61 value.valueOf = function() { return 2; }62 return jsonObject.stringify(value);63 });64 result[result.length - 1].expected = '2';65 result.push(function(jsonObject){66 var value = new Boolean(true);67 value.valueOf = function() { return 2; }68 return jsonObject.stringify(value);69 });70 result[result.length - 1].expected = '2';71 result.push(function(jsonObject){72 var value = new String("fail");73 value.toString = function() { return "converted string"; }74 return jsonObject.stringify(value);75 });76 result[result.length - 1].expected = '"converted string"';77 result.push(function(jsonObject){78 return jsonObject.stringify(true);79 });80 result.push(function(jsonObject){81 return jsonObject.stringify(false);82 });83 result.push(function(jsonObject){84 return jsonObject.stringify(new Date(0));85 });86 result.push(function(jsonObject){87 return jsonObject.stringify({toJSON: Date.prototype.toJSON});88 });89 result[result.length - 1].throws = true;90 result.push(function(jsonObject){91 return jsonObject.stringify({toJSON: Date.prototype.toJSON, toISOString: function(){ return "custom toISOString"; }});92 });93 result.push(function(jsonObject){94 return jsonObject.stringify({toJSON: Date.prototype.toJSON, toISOString: function(){ return {}; }});95 });96 result[result.length - 1].throws = true;97 result.push(function(jsonObject){98 return jsonObject.stringify({toJSON: Date.prototype.toJSON, toISOString: function(){ throw "An exception"; }});99 });100 result[result.length - 1].throws = true;101 result.push(function(jsonObject){102 var d = new Date(0);103 d.toISOString = null;104 return jsonObject.stringify(d);105 });106 result[result.length - 1].throws = true;107 result.push(function(jsonObject){108 var d = new Date(0);109 d.toJSON = undefined;110 return jsonObject.stringify(d);111 });112 result.push(function(jsonObject){113 return jsonObject.stringify({get Foo() { return "bar"; }});114 });115 result.push(function(jsonObject){116 return jsonObject.stringify({get Foo() { this.foo="wibble"; return "bar"; }});117 });118 result.push(function(jsonObject){119 var count = 0;120 jsonObject.stringify({get Foo() { count++; return "bar"; }});121 return count;122 });123 result.push(function(jsonObject){124 var count = 0;125 return jsonObject.stringify({get Foo() { count++; delete this.bar; return "bar"; }, bar: "wibble"});126 });127 result.push(function(jsonObject){128 var count = 0;129 return jsonObject.stringify({a:"1", b:"2", c:"3", 5:4, 4:5, 2:6, 1:7});130 });131 result.push(function(jsonObject){132 var allString = true;133 jsonObject.stringify({a:"1", b:"2", c:"3", 5:4, 4:5, 2:6, 1:7}, function(k,v){allString = allString && (typeof k == "string"); return v});134 return allString;135 });136 result.push(function(jsonObject){137 var allString = true;138 jsonObject.stringify([1,2,3,4,5], function(k,v){allString = allString && (typeof k == "string"); return v});139 return allString;140 });141 result.push(function(jsonObject){142 var allString = true;143 var array = [];144 return jsonObject.stringify({a:"1", b:"2", c:"3", 5:4, 4:5, 2:6, 1:7}, array);145 });146 result.push(function(jsonObject){147 var allString = true;148 var array = ["a"];149 return jsonObject.stringify({get a(){return 1;array[1]="b";array[2]="c"}, b:"2", c:"3"}, array);150 });151 result.push(function(jsonObject){152 var allString = true;153 var array = [{toString:function(){array[0]='a'; array[1]='c'; array[2]='b'; return 'a'}}];154 return jsonObject.stringify(simpleObject, array);155 });156 result.push(function(jsonObject){157 var allString = true;158 var array = [{toString:function(){array[0]='a'; array[1]='c'; array[2]='b'; return 'a'}}];159 return jsonObject.stringify(simpleObjectWithProto, array);160 });161 result.push(function(jsonObject){162 var allString = true;163 var array = [1, new Number(2), NaN, Infinity, -Infinity, new String("str")];164 return jsonObject.stringify({"1":"1","2":"2","NaN":"NaN","Infinity":"Infinity","-Infinity":"-Infinity","str":"str"}, array);165 });166 result[result.length - 1].expected = '{"1":"1","2":"2","NaN":"NaN","Infinity":"Infinity","-Infinity":"-Infinity","str":"str"}';167 result.push(function(jsonObject){168 var allString = true;169 var array = ["1","2","3"];170 return jsonObject.stringify({1:'a', 2:'b', 3:'c'}, array);171 });172 result.push(function(jsonObject){173 var allString = true;174 var array = ["1","2","3"];175 return jsonObject.stringify(simpleArray, array);176 });177 result.push(function(jsonObject){178 return jsonObject.stringify(simpleArray, null, " ");179 });180 result.push(function(jsonObject){181 return jsonObject.stringify(simpleArray, null, 4);182 });183 result.push(function(jsonObject){184 return jsonObject.stringify(simpleArray, null, "ab");185 });186 result.push(function(jsonObject){187 return jsonObject.stringify(simpleArray, null, 4);188 });189 result.push(function(jsonObject){190 return jsonObject.stringify(simpleObject, null, " ");191 });192 result.push(function(jsonObject){193 return jsonObject.stringify(simpleObject, null, 4);194 });195 result.push(function(jsonObject){196 return jsonObject.stringify(simpleObject, null, "ab");197 });198 result.push(function(jsonObject){199 return jsonObject.stringify(simpleObject, null, 4);200 });201 result.push(function(jsonObject){202 return jsonObject.stringify(simpleObject, null, 10);203 });204 result.push(function(jsonObject){205 return jsonObject.stringify(simpleObject, null, 11);206 });207 result[result.length - 1].expected = JSON.stringify(simpleObject, null, 10);208 result.push(function(jsonObject){209 return jsonObject.stringify(simpleObject, null, " ");210 });211 result[result.length - 1].expected = JSON.stringify(simpleObject, null, 10);212 result.push(function(jsonObject){213 return jsonObject.stringify(simpleObject, null, " ");214 });215 result[result.length - 1].expected = JSON.stringify(simpleObject, null, 10);216 result.push(function(jsonObject){217 return jsonObject.stringify(complexArray, null, " ");218 });219 result.push(function(jsonObject){220 return jsonObject.stringify(complexArray, null, 4);221 });222 result.push(function(jsonObject){223 return jsonObject.stringify(complexArray, null, "ab");224 });225 result.push(function(jsonObject){226 return jsonObject.stringify(complexArray, null, 4);227 });228 result.push(function(jsonObject){229 return jsonObject.stringify(complexObject, null, " ");230 });231 result.push(function(jsonObject){232 return jsonObject.stringify(complexObject, null, 4);233 });234 result.push(function(jsonObject){235 return jsonObject.stringify(complexObject, null, "ab");236 });237 result.push(function(jsonObject){238 return jsonObject.stringify(complexObject, null, 4);239 });240 result.push(function(jsonObject){241 var allString = true;242 var array = ["1","2","3"];243 return jsonObject.stringify(simpleArrayWithProto, array);244 });245 result.push(function(jsonObject){246 return jsonObject.stringify(simpleArrayWithProto, null, " ");247 });248 result.push(function(jsonObject){249 return jsonObject.stringify(simpleArrayWithProto, null, 4);250 });251 result.push(function(jsonObject){252 return jsonObject.stringify(simpleArrayWithProto, null, "ab");253 });254 result.push(function(jsonObject){255 return jsonObject.stringify(simpleArrayWithProto, null, 4);256 });257 result.push(function(jsonObject){258 return jsonObject.stringify(simpleObjectWithProto, null, " ");259 });260 result.push(function(jsonObject){261 return jsonObject.stringify(simpleObjectWithProto, null, 4);262 });263 result.push(function(jsonObject){264 return jsonObject.stringify(simpleObjectWithProto, null, "ab");265 });266 result.push(function(jsonObject){267 return jsonObject.stringify(simpleObjectWithProto, null, 4);268 });269 result.push(function(jsonObject){270 return jsonObject.stringify(simpleObjectWithProto, null, 10);271 });272 result.push(function(jsonObject){273 return jsonObject.stringify(simpleObjectWithProto, null, 11);274 });275 result[result.length - 1].expected = JSON.stringify(simpleObjectWithProto, null, 10);276 result.push(function(jsonObject){277 return jsonObject.stringify(simpleObjectWithProto, null, " ");278 });279 result[result.length - 1].expected = JSON.stringify(simpleObjectWithProto, null, 10);280 result.push(function(jsonObject){281 return jsonObject.stringify(simpleObjectWithProto, null, " ");282 });283 result[result.length - 1].expected = JSON.stringify(simpleObjectWithProto, null, 10);284 result.push(function(jsonObject){285 return jsonObject.stringify(complexArrayWithProto, null, " ");286 });287 result.push(function(jsonObject){288 return jsonObject.stringify(complexArrayWithProto, null, 4);289 });290 result.push(function(jsonObject){291 return jsonObject.stringify(complexArrayWithProto, null, "ab");292 });293 result.push(function(jsonObject){294 return jsonObject.stringify(complexArrayWithProto, null, 4);295 });296 result.push(function(jsonObject){297 return jsonObject.stringify(complexObjectWithProto, null, " ");298 });299 result.push(function(jsonObject){300 return jsonObject.stringify(complexObjectWithProto, null, 4);301 });302 result.push(function(jsonObject){303 return jsonObject.stringify(complexObjectWithProto, null, "ab");304 });305 result.push(function(jsonObject){306 return jsonObject.stringify(complexObjectWithProto, null, 4);307 });308 result.push(function(jsonObject){309 return jsonObject.stringify(objectWithSideEffectGetter);310 });311 result.push(function(jsonObject){312 return jsonObject.stringify(objectWithSideEffectGetterAndProto);313 });314 result.push(function(jsonObject){315 return jsonObject.stringify(arrayWithSideEffectGetter);316 });317 result.push(function(jsonObject){318 return jsonObject.stringify(arrayWithSideEffectGetterAndProto);319 });320 var replaceTracker;321 function replaceFunc(key, value) {322 replaceTracker += key + "("+(typeof key)+")" + JSON.stringify(value) + ";";323 return value;324 }325 result.push(function(jsonObject){326 replaceTracker = "";327 jsonObject.stringify([1,2,3,,,,4,5,6], replaceFunc);328 return replaceTracker;329 });330 result[result.length - 1].expected = '(string)[1,2,3,null,null,null,4,5,6];0(number)1;1(number)2;2(number)3;3(number)undefined;4(number)undefined;5(number)undefined;6(number)4;7(number)5;8(number)6;'331 result.push(function(jsonObject){332 replaceTracker = "";333 jsonObject.stringify({a:"a", b:"b", c:"c", 3: "d", 2: "e", 1: "f"}, replaceFunc);334 return replaceTracker;335 });336 result[result.length - 1].expected = '(string){"a":"a","b":"b","c":"c","3":"d","2":"e","1":"f"};a(string)"a";b(string)"b";c(string)"c";3(string)"d";2(string)"e";1(string)"f";';337 result.push(function(jsonObject){338 var count = 0;339 var array = [{toString:function(){count++; array[0]='a'; array[1]='c'; array[2]='b'; return 'a'}}];340 jsonObject.stringify(simpleObject, array);341 return count;342 });343 result.push(function(jsonObject){344 var allString = true;345 var array = [{toString:function(){array[0]='a'; array[1]='c'; array[2]='b'; return 'a'}}, 'b', 'c'];346 return jsonObject.stringify(simpleObject, array);347 });348 result.push(function(jsonObject){349 var count = 0;350 var array = [{toString:function(){count++; array[0]='a'; array[1]='c'; array[2]='b'; return 'a'}}, 'b', 'c'];351 jsonObject.stringify(simpleObject, array);352 return count;353 });354 result.push(function(jsonObject){355 return jsonObject.stringify({a:"1", get b() { this.a="foo"; return "getter"; }, c:"3"});356 });357 result.push(function(jsonObject){358 return jsonObject.stringify({a:"1", get b() { this.c="foo"; return "getter"; }, c:"3"});359 });360 result.push(function(jsonObject){361 var setterCalled = false;362 jsonObject.stringify({a:"1", set b(s) { setterCalled = true; return "setter"; }, c:"3"});363 return setterCalled;364 });365 result.push(function(jsonObject){366 return jsonObject.stringify({a:"1", get b(){ return "getter"; }, set b(s) { return "setter"; }, c:"3"});367 });368 result.push(function(jsonObject){369 return jsonObject.stringify(new Array(10));370 });371 result.push(function(jsonObject){372 return jsonObject.stringify([undefined,,null,0,false]);373 });374 result.push(function(jsonObject){375 return jsonObject.stringify({p1:undefined,p2:null,p3:0,p4:false});376 });377 var cycleTracker = "";378 var cyclicObject = { get preSelf1() { cycleTracker+="preSelf1,"; return "preSelf1"; },379 preSelf2: {toJSON:function(){cycleTracker+="preSelf2,"; return "preSelf2"}},380 self: [],381 get postSelf1() { cycleTracker+="postSelf1,"; return "postSelf1" },382 postSelf2: {toJSON:function(){cycleTracker+="postSelf2,"; return "postSelf2"}},383 toJSON : function(key) { cycleTracker += key + "("+(typeof key)+"):" + this; return this; }384 };385 cyclicObject.self = cyclicObject;386 result.push(function(jsonObject){387 cycleTracker = "";388 return jsonObject.stringify(cyclicObject);389 });390 result[result.length - 1].throws = true;391 result.push(function(jsonObject){392 cycleTracker = "";393 try { jsonObject.stringify(cyclicObject); } catch(e) { cycleTracker += " -> exception" }394 return cycleTracker;395 });396 result[result.length - 1].expected = "(string):[object Object]preSelf1,preSelf2,self(string):[object Object] -> exception"397 var cyclicArray = [{toJSON : function(key,value) { cycleTracker += key + "("+(typeof key)+"):" + this; cycleTracker += "first,"; return this; }},398 cyclicArray,399 {toJSON : function(key,value) { cycleTracker += key + "("+(typeof key)+"):" + this; cycleTracker += "second,"; return this; }}];400 cyclicArray[1] = cyclicArray;401 result.push(function(jsonObject){402 cycleTracker = "";403 return jsonObject.stringify(cyclicArray);404 });405 result[result.length - 1].throws = true;406 result.push(function(jsonObject){407 cycleTracker = "";408 try { jsonObject.stringify(cyclicArray); } catch(e) { cycleTracker += " -> exception" }409 return cycleTracker;410 });411 result[result.length - 1].expected = "0(number):[object Object]first, -> exception";412 function createArray(len, o) { var r = []; for (var i = 0; i < len; i++) r[i] = o; return r; }413 var getterCalls;414 var magicObject = createArray(10, {abcdefg: [1,2,5,"ab", null, undefined, true, false,,], 415 get calls() {return ++getterCalls; }, 416 "123":createArray(15, "foo"), 417 "":{a:"b"}});418 result.push(function(jsonObject){419 getterCalls = 0;420 return jsonObject.stringify(magicObject) + " :: getter calls = " + getterCalls;421 });422 result.push(function(jsonObject){423 return jsonObject.stringify(undefined);424 });425 result.push(function(jsonObject){426 return jsonObject.stringify(null);427 });428 result.push(function(jsonObject){429 return jsonObject.stringify({toJSON:function(){ return undefined; }});430 });431 result.push(function(jsonObject){432 return jsonObject.stringify({toJSON:function(){ return null; }});433 });434 result.push(function(jsonObject){435 return jsonObject.stringify([{toJSON:function(){ return undefined; }}]);436 });437 result.push(function(jsonObject){438 return jsonObject.stringify([{toJSON:function(){ return null; }}]);439 });440 result.push(function(jsonObject){441 return jsonObject.stringify({a:{toJSON:function(){ return undefined; }}});442 });443 result.push(function(jsonObject){444 return jsonObject.stringify({a:{toJSON:function(){ return null; }}});445 });446 result.push(function(jsonObject){447 return jsonObject.stringify({a:{toJSON:function(){ return function(){}; }}});448 });449 result.push(function(jsonObject){450 return jsonObject.stringify({a:function(){}});451 });452 result.push(function(jsonObject){453 var deepObject = {};454 for (var i = 0; i < 2048; i++)455 deepObject = {next:deepObject};456 return jsonObject.stringify(deepObject);457 });458 result.push(function(jsonObject){459 var deepArray = [];460 for (var i = 0; i < 2048; i++)461 deepArray = [deepArray];462 return jsonObject.stringify(deepArray);463 });464 result.push(function(jsonObject){465 var depth = 0;466 function toDeepVirtualJSONObject() {467 if (++depth >= 2048)468 return {};469 var r = {};470 r.toJSON = toDeepVirtualJSONObject;471 return {recurse: r};472 }473 return jsonObject.stringify(toDeepVirtualJSONObject());474 });475 result.push(function(jsonObject){476 var depth = 0;477 function toDeepVirtualJSONArray() {478 if (++depth >= 2048)479 return [];480 var r = [];481 r.toJSON = toDeepJSONArray;482 return [r];483 }484 return jsonObject.stringify(toDeepVirtualJSONArray());485 });486 var fullCharsetString = "";487 for (var i = 0; i < 65536; i++)488 fullCharsetString += String.fromCharCode(i);489 result.push(function(jsonObject){490 return jsonObject.stringify(fullCharsetString);491 }); 492 return result;493}494var tests = createTests();495for (var i = 0; i < tests.length; i++) {496 try {497 debug(tests[i]);498 if (tests[i].throws)499 shouldThrow('tests[i](nativeJSON)');500 else if (tests[i].expected)501 shouldBe('tests[i](nativeJSON)', "tests[i].expected");502 else503 shouldBe('tests[i](nativeJSON)', "tests[i](JSON)");504 }catch(e){}...

Full Screen

Full Screen

JSON-parse.js

Source:JSON-parse.js Github

copy

Full Screen

1function createTests() {2 var result = [];3 result.push(function(jsonObject){4 return jsonObject.parse();5 });6 result[result.length - 1].throws = true;7 result.push(function(jsonObject){8 return jsonObject.parse('');9 });10 result[result.length - 1].throws = true;11 result.push(function(jsonObject){12 return jsonObject.parse('1');13 });14 result.push(function(jsonObject){15 return jsonObject.parse('-1');16 });17 result.push(function(jsonObject){18 return jsonObject.parse('Infinity');19 });20 result[result.length - 1].throws = true;21 result.push(function(jsonObject){22 return jsonObject.parse('NaN');23 });24 result[result.length - 1].throws = true;25 result.push(function(jsonObject){26 return jsonObject.parse('null');27 });28 result.push(function(jsonObject){29 return jsonObject.parse('undefined');30 });31 result[result.length - 1].throws = true;32 result.push(function(jsonObject){33 return jsonObject.parse('{}');34 });35 result.push(function(jsonObject){36 return jsonObject.parse('({})');37 });38 result[result.length - 1].throws = true;39 result.push(function(jsonObject){40 return jsonObject.parse('{a}');41 });42 result[result.length - 1].throws = true;43 result.push(function(jsonObject){44 return jsonObject.parse('{a:}');45 });46 result[result.length - 1].throws = true;47 result.push(function(jsonObject){48 return jsonObject.parse('{a:5}');49 });50 result[result.length - 1].throws = true;51 result.push(function(jsonObject){52 return jsonObject.parse('{a:5,}');53 });54 result[result.length - 1].throws = true;55 result.push(function(jsonObject){56 return jsonObject.parse('{"a"}');57 });58 result[result.length - 1].throws = true;59 result.push(function(jsonObject){60 return jsonObject.parse('{"a":}');61 });62 result[result.length - 1].throws = true;63 result.push(function(jsonObject){64 return jsonObject.parse('{"a":5}');65 });66 result.push(function(jsonObject){67 return jsonObject.parse('{"__proto__":5}');68 });69 result.push(function(jsonObject){70 return jsonObject.parse('{"a":5,}');71 });72 result[result.length - 1].throws = true;73 result.push(function(jsonObject){74 return jsonObject.parse('{"a":5,,}');75 });76 result[result.length - 1].throws = true;77 result.push(function(jsonObject){78 return jsonObject.parse('{"a":5,"a",}');79 });80 result[result.length - 1].throws = true;81 result.push(function(jsonObject){82 return jsonObject.parse('{"a":(5,"a"),}');83 });84 result[result.length - 1].throws = true;85 result.push(function(jsonObject){86 return jsonObject.parse('[]');87 });88 result.push(function(jsonObject){89 return jsonObject.parse('[1]');90 });91 result.push(function(jsonObject){92 return jsonObject.parse('[1,]');93 });94 result[result.length - 1].throws = true;95 result.push(function(jsonObject){96 return jsonObject.parse('[1,2]');97 });98 result.push(function(jsonObject){99 return jsonObject.parse('[1,2,,]');100 });101 result[result.length - 1].throws = true;102 result.push(function(jsonObject){103 return jsonObject.parse('[1,2,,4]');104 });105 result[result.length - 1].throws = true;106 result.push(function(jsonObject){107 return jsonObject.parse('""');108 });109 result.push(function(jsonObject){110 return jsonObject.parse('"\'"');111 });112 result.push(function(jsonObject){113 return jsonObject.parse('"a\"');114 });115 result.push(function(jsonObject){116 return jsonObject.parse('"a\\"');117 });118 result[result.length - 1].throws = true;119 result.push(function(jsonObject){120 return jsonObject.parse('"a\\z"');121 });122 result[result.length - 1].throws = true;123 result.push(function(jsonObject){124 return jsonObject.parse('"a\\\z"');125 });126 result[result.length - 1].throws = true;127 result.push(function(jsonObject){128 return jsonObject.parse('"a\\\\z"');129 });130 result.push(function(jsonObject){131 return jsonObject.parse('"a\tz"');132 });133 result[result.length - 1].throws = true; // rfc4627 does not allow literal tab characters in JSON source134 result.push(function(jsonObject){135 return jsonObject.parse('"a\\tz"');136 });137 result.push(function(jsonObject){138 return jsonObject.parse('"a\nz"');139 });140 result[result.length - 1].throws = true;141 result.push(function(jsonObject){142 return jsonObject.parse('"a\\nz"');143 });144 result.push(function(jsonObject){145 return jsonObject.parse('"a\rz"');146 });147 result[result.length - 1].throws = true;148 result.push(function(jsonObject){149 return jsonObject.parse('"a\\rz"');150 });151 result.push(function(jsonObject){152 return jsonObject.parse('"a\/z"');153 });154 result.push(function(jsonObject){155 return jsonObject.parse('"a\\/z"');156 });157 result.push(function(jsonObject){158 return jsonObject.parse('"a\bz"');159 });160 result[result.length - 1].throws = true;161 result.push(function(jsonObject){162 return jsonObject.parse('"a\\bz"');163 });164 result.push(function(jsonObject){165 return jsonObject.parse('"a\rz"');166 });167 result[result.length - 1].throws = true;168 result.push(function(jsonObject){169 return jsonObject.parse('"a\\rz"');170 });171 result.push(function(jsonObject){172 return jsonObject.parse('"a\\uz" ');173 });174 result[result.length - 1].throws = true;175 result.push(function(jsonObject){176 return jsonObject.parse('"a\\u0z" ');177 });178 result[result.length - 1].throws = true;179 result.push(function(jsonObject){180 return jsonObject.parse('"a\\u00z" ');181 });182 result[result.length - 1].throws = true;183 result.push(function(jsonObject){184 return jsonObject.parse('"a\\u000z" ');185 });186 result[result.length - 1].throws = true;187 result.push(function(jsonObject){188 return jsonObject.parse('"a\\u0000z" ');189 });190 result.push(function(jsonObject){191 return jsonObject.parse('"a\\u000Az" ');192 });193 result.push(function(jsonObject){194 return jsonObject.parse('"a\\u000az" ');195 });196 result.push(function(jsonObject){197 return jsonObject.parse('"a\\u000Gz" ');198 });199 result[result.length - 1].throws = true;200 result.push(function(jsonObject){201 return jsonObject.parse('"a\\u000gz" ');202 });203 result[result.length - 1].throws = true;204 result.push(function(jsonObject){205 return jsonObject.parse('"a\\u00A0z" ');206 });207 result.push(function(jsonObject){208 return jsonObject.parse('"a\\u00a0z" ');209 });210 result.push(function(jsonObject){211 return jsonObject.parse('"a\\u00G0z" ');212 });213 result[result.length - 1].throws = true;214 result.push(function(jsonObject){215 return jsonObject.parse('"a\\u00g0z" ');216 });217 result[result.length - 1].throws = true;218 result.push(function(jsonObject){219 return jsonObject.parse('"a\\u0A00z" ');220 });221 result.push(function(jsonObject){222 return jsonObject.parse('"a\\u0a00z" ');223 });224 result.push(function(jsonObject){225 return jsonObject.parse('"a\\u0G00z" ');226 });227 result[result.length - 1].throws = true;228 result.push(function(jsonObject){229 return jsonObject.parse('"a\\u0g00z" ');230 });231 result[result.length - 1].throws = true;232 result.push(function(jsonObject){233 return jsonObject.parse('"a\\uA000z" ');234 });235 result.push(function(jsonObject){236 return jsonObject.parse('"a\\ua000z" ');237 });238 result.push(function(jsonObject){239 return jsonObject.parse('"a\\uG000z" ');240 });241 result[result.length - 1].throws = true;242 result.push(function(jsonObject){243 return jsonObject.parse('"a\\ug000z" ');244 });245 result[result.length - 1].throws = true;246 result.push(function(jsonObject){247 return jsonObject.parse('00');248 });249 result[result.length - 1].throws = true;250 result.push(function(jsonObject){251 return jsonObject.parse('01');252 });253 result[result.length - 1].throws = true;254 result.push(function(jsonObject){255 return jsonObject.parse('0.a');256 });257 result[result.length - 1].throws = true;258 result.push(function(jsonObject){259 return jsonObject.parse('0x0');260 });261 result[result.length - 1].throws = true;262 result.push(function(jsonObject){263 return jsonObject.parse('2e1.3');264 });265 result[result.length - 1].throws = true;266 result.push(function(jsonObject){267 return jsonObject.parse('2e-+10');268 });269 result[result.length - 1].throws = true;270 result.push(function(jsonObject){271 return jsonObject.parse('2e+-10');272 });273 result[result.length - 1].throws = true;274 result.push(function(jsonObject){275 return jsonObject.parse('2e3e4');276 });277 result[result.length - 1].throws = true;278 result.push(function(jsonObject){279 return jsonObject.parse('-01.0');280 });281 result[result.length - 1].throws = true;282 result.push(function(jsonObject){283 return jsonObject.parse('-01');284 });285 result[result.length - 1].throws = true;286 result.push(function(jsonObject){287 return jsonObject.parse('-01.a');288 });289 result[result.length - 1].throws = true;290 result.push(function(jsonObject){291 return jsonObject.parse('1.e1');292 });293 result[result.length - 1].throws = true;294 result.push(function(jsonObject){295 return jsonObject.parse('{/* block comments are not allowed */}');296 });297 result[result.length - 1].throws = true;298 result.push(function(jsonObject){299 return jsonObject.parse('{// line comments are not allowed \n}');300 });301 result[result.length - 1].throws = true;302 result.push(function(jsonObject){303 return jsonObject.parse('true');304 });305 result.push(function(jsonObject){306 return jsonObject.parse('false');307 });308 var simpleArray = ['a', 'b', 'c'];309 var simpleObject = {a:"1", b:"2", c:"3"};310 var complexArray = ['a', 'b', 'c',,,simpleObject, simpleArray, [simpleObject,simpleArray]];311 var complexObject = {a:"1", b:"2", c:"3", d:4.5e10, g: 0.45e-5, h: 0.0, i: 0, j:.5, k:0., l:-0, m:-0.0, n:-0., o:-.5, p:-0.45e-10, q:-4.5e10, e:null, "":12, f: simpleArray, array: complexArray};312 result.push(function(jsonObject){313 return jsonObject.parse(JSON.stringify(simpleObject));314 });315 result[result.length - 1].expected = JSON.stringify(simpleObject);316 result.push(function(jsonObject){317 return jsonObject.parse(JSON.stringify(complexObject));318 });319 result.push(function(jsonObject){320 return jsonObject.parse(JSON.stringify(complexObject));321 });322 result[result.length - 1].expected = JSON.stringify(complexObject);323 result.push(function(jsonObject){324 return jsonObject.parse(JSON.stringify(simpleObject,null,100));325 });326 result[result.length - 1].expected = JSON.stringify(simpleObject);327 result.push(function(jsonObject){328 return jsonObject.parse(JSON.stringify(complexObject,null,100));329 });330 result.push(function(jsonObject){331 return jsonObject.parse(JSON.stringify(complexObject,null,100));332 });333 result[result.length - 1].expected = JSON.stringify(complexObject);334 result.push(function(jsonObject){335 return jsonObject.parse(JSON.stringify(simpleObject,null," "));336 });337 result[result.length - 1].expected = JSON.stringify(simpleObject);338 result.push(function(jsonObject){339 return jsonObject.parse(JSON.stringify(complexObject,null," "));340 });341 result.push(function(jsonObject){342 return jsonObject.parse(JSON.stringify(complexObject,null," "));343 });344 result[result.length - 1].expected = JSON.stringify(complexObject);345 346 result.push(function(jsonObject){347 return jsonObject.parse(JSON.stringify(simpleObject,null,"\t"));348 });349 result[result.length - 1].expected = JSON.stringify(simpleObject);350 result.push(function(jsonObject){351 return jsonObject.parse(JSON.stringify(complexObject,null,"\t"));352 });353 result.push(function(jsonObject){354 return jsonObject.parse(JSON.stringify(complexObject,null,"\t"));355 });356 result[result.length - 1].expected = JSON.stringify(complexObject);357 358 result.push(function(jsonObject){359 return jsonObject.parse(JSON.stringify(simpleObject,null,"\n"));360 });361 result[result.length - 1].expected = JSON.stringify(simpleObject);362 result.push(function(jsonObject){363 return jsonObject.parse(JSON.stringify(complexObject,null,"\n"));364 });365 result[result.length - 1].expected = JSON.stringify(complexObject);366 function log(key, value) {367 var o = {};368 o[key] = value;369 o.keyType = typeof key;370 return o;371 }372 result.push(function(jsonObject){373 return jsonObject.parse("true", log);374 });375 result.push(function(jsonObject){376 return jsonObject.parse("false", log);377 });378 result.push(function(jsonObject){379 return jsonObject.parse("null", log);380 });381 result.push(function(jsonObject){382 return jsonObject.parse("1", log);383 });384 result.push(function(jsonObject){385 return jsonObject.parse("1.5", log);386 });387 result.push(function(jsonObject){388 return jsonObject.parse('"a string"', log);389 });390 result.push(function(jsonObject){391 return jsonObject.parse(JSON.stringify(simpleArray), log);392 });393 result.push(function(jsonObject){394 return jsonObject.parse(JSON.stringify(complexArray), log);395 });396 result.push(function(jsonObject){397 return jsonObject.parse(JSON.stringify(simpleObject), log);398 });399 result.push(function(jsonObject){400 return jsonObject.parse(JSON.stringify(complexObject), log);401 });402 result.push(function(jsonObject){403 return jsonObject.parse('{"__proto__":{"a":5}}', log);404 });405 var logOrderString;406 function logOrder(key, value) {407 logOrderString += key +":"+JSON.stringify(value);408 return null;409 }410 result.push(function(jsonObject){411 logOrderString = "";412 return jsonObject.parse("true", logOrder);413 });414 result.push(function(jsonObject){415 logOrderString = "";416 return jsonObject.parse("false", logOrder);417 });418 result.push(function(jsonObject){419 logOrderString = "";420 return jsonObject.parse("null", logOrder);421 });422 result.push(function(jsonObject){423 logOrderString = "";424 return jsonObject.parse("1", logOrder);425 });426 result.push(function(jsonObject){427 logOrderString = "";428 return jsonObject.parse("1.5", logOrder);429 });430 result.push(function(jsonObject){431 logOrderString = "";432 return jsonObject.parse('"a string"', logOrder);433 });434 result.push(function(jsonObject){435 logOrderString = "";436 return jsonObject.parse(JSON.stringify(simpleArray), logOrder);437 });438 result.push(function(jsonObject){439 logOrderString = "";440 return jsonObject.parse(JSON.stringify(complexArray), logOrder);441 });442 result.push(function(jsonObject){443 logOrderString = "";444 return jsonObject.parse(JSON.stringify(simpleObject), logOrder);445 });446 result.push(function(jsonObject){447 logOrderString = "";448 return jsonObject.parse(JSON.stringify(complexObject), logOrder);449 });450 result.push(function(jsonObject){451 logOrderString = "";452 jsonObject.parse("true", logOrder);453 return logOrderString;454 });455 result.push(function(jsonObject){456 logOrderString = "";457 jsonObject.parse("false", logOrder);458 return logOrderString;459 });460 result.push(function(jsonObject){461 logOrderString = "";462 jsonObject.parse("null", logOrder);463 return logOrderString;464 });465 result.push(function(jsonObject){466 logOrderString = "";467 jsonObject.parse("1", logOrder);468 return logOrderString;469 });470 result.push(function(jsonObject){471 logOrderString = "";472 jsonObject.parse("1.5", logOrder);473 return logOrderString;474 });475 result.push(function(jsonObject){476 logOrderString = "";477 jsonObject.parse('"a string"', logOrder);478 return logOrderString;479 });480 result.push(function(jsonObject){481 logOrderString = "";482 jsonObject.parse(JSON.stringify(simpleArray), logOrder);483 return logOrderString;484 });485 result.push(function(jsonObject){486 logOrderString = "";487 jsonObject.parse(JSON.stringify(complexArray), logOrder);488 return logOrderString;489 });490 result.push(function(jsonObject){491 logOrderString = "";492 jsonObject.parse(JSON.stringify(simpleObject), logOrder);493 return logOrderString;494 });495 result.push(function(jsonObject){496 logOrderString = "";497 jsonObject.parse(JSON.stringify(complexObject), logOrder);498 return logOrderString;499 });500 var callCount = 0;501 function throwAfterFifthCall(key, value) {502 logOrder(key, value);503 if (++callCount > 5)504 throw "from reviver";505 return null;506 }507 result.push(function(jsonObject){508 callCount = 0;509 logOrderString = "";510 return jsonObject.parse(JSON.stringify(complexArray), throwAfterFifthCall);511 });512 result[result.length - 1].throws = true;513 result.push(function(jsonObject){514 callCount = 0;515 logOrderString = "";516 return jsonObject.parse(JSON.stringify(simpleObject), throwAfterFifthCall);517 });518 result.push(function(jsonObject){519 callCount = 0;520 logOrderString = "";521 return jsonObject.parse(JSON.stringify(complexObject), throwAfterFifthCall);522 });523 result[result.length - 1].throws = true;524 result.push(function(jsonObject){525 callCount = 0;526 logOrderString = "";527 try { jsonObject.parse(JSON.stringify(complexArray), throwAfterFifthCall); } catch (e) {}528 return logOrderString;529 });530 result.push(function(jsonObject){531 callCount = 0;532 logOrderString = "";533 try { jsonObject.parse(JSON.stringify(simpleObject), throwAfterFifthCall); } catch (e) {}534 return logOrderString;535 });536 result.push(function(jsonObject){537 callCount = 0;538 logOrderString = "";539 try { jsonObject.parse(JSON.stringify(complexObject), throwAfterFifthCall); } catch (e) {}540 return logOrderString;541 });542 var unicode = "";543 for (var i = 0; i < 1<<16; i++)544 unicode += String.fromCharCode(i);545 result.push(function(jsonObject){546 return jsonObject.parse(JSON.stringify(unicode));547 });548 result[result.length - 1].unstringifiedExpected = unicode;549 return result;550}551var tests = createTests();552for (var i = 0; i < tests.length; i++) {553 try {554 debug(tests[i]);555 if (tests[i].throws) {556 shouldThrow('tests[i](nativeJSON)');557 try {558 var threw = false;559 tests[i](JSON);560 } catch(e) {561 var threw = true;562 }563 if (!threw)564 debug("json2.js did not throw for a test we expect to throw.");565 } else if (tests[i].expected)566 try { shouldBe('JSON.stringify(tests[i](nativeJSON))', "tests[i].expected") } catch(e) { debug("threw - " + e)}567 else if (tests[i].unstringifiedExpected)568 try { shouldBe('tests[i](nativeJSON)', "tests[i].unstringifiedExpected") } catch(e) { debug("threw - " + e)}569 else570 try { shouldBe('JSON.stringify(tests[i](nativeJSON))', 'JSON.stringify(tests[i](JSON))') } catch(e) { debug("threw - " + e) };571 }catch(e){572 debug(e);573 }...

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run pytest-mock automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful