angr 9.2.118__py3-none-win_amd64.whl → 9.2.120__py3-none-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of angr might be problematic. Click here for more details.

Files changed (839) hide show
  1. angr/__init__.py +217 -2
  2. angr/__main__.py +14 -4
  3. angr/analyses/__init__.py +54 -0
  4. angr/analyses/analysis.py +47 -5
  5. angr/analyses/backward_slice.py +4 -4
  6. angr/analyses/bindiff.py +2 -2
  7. angr/analyses/callee_cleanup_finder.py +1 -1
  8. angr/analyses/calling_convention.py +21 -15
  9. angr/analyses/cdg.py +1 -1
  10. angr/analyses/cfg/__init__.py +12 -1
  11. angr/analyses/cfg/cfb.py +2 -2
  12. angr/analyses/cfg/cfg.py +1 -1
  13. angr/analyses/cfg/cfg_base.py +28 -11
  14. angr/analyses/cfg/cfg_emulated.py +18 -18
  15. angr/analyses/cfg/cfg_fast.py +136 -24
  16. angr/analyses/cfg/cfg_fast_soot.py +5 -5
  17. angr/analyses/cfg/cfg_job_base.py +3 -3
  18. angr/analyses/cfg/indirect_jump_resolvers/__init__.py +13 -0
  19. angr/analyses/cfg/indirect_jump_resolvers/amd64_pe_iat.py +1 -1
  20. angr/analyses/cfg/indirect_jump_resolvers/arm_elf_fast.py +2 -2
  21. angr/analyses/cfg/indirect_jump_resolvers/const_resolver.py +4 -4
  22. angr/analyses/cfg/indirect_jump_resolvers/jumptable.py +21 -18
  23. angr/analyses/cfg/indirect_jump_resolvers/mips_elf_fast.py +5 -5
  24. angr/analyses/cfg/indirect_jump_resolvers/resolver.py +2 -2
  25. angr/analyses/cfg/indirect_jump_resolvers/x86_pe_iat.py +1 -1
  26. angr/analyses/cfg_slice_to_sink/__init__.py +8 -0
  27. angr/analyses/class_identifier.py +2 -2
  28. angr/analyses/code_tagging.py +2 -2
  29. angr/analyses/complete_calling_conventions.py +3 -3
  30. angr/analyses/congruency_check.py +1 -2
  31. angr/analyses/data_dep/__init__.py +13 -0
  32. angr/analyses/data_dep/data_dependency_analysis.py +5 -5
  33. angr/analyses/datagraph_meta.py +1 -1
  34. angr/analyses/ddg.py +3 -3
  35. angr/analyses/decompiler/__init__.py +25 -0
  36. angr/analyses/decompiler/ail_simplifier.py +9 -9
  37. angr/analyses/decompiler/block_simplifier.py +3 -3
  38. angr/analyses/decompiler/callsite_maker.py +5 -3
  39. angr/analyses/decompiler/clinic.py +46 -36
  40. angr/analyses/decompiler/condition_processor.py +48 -21
  41. angr/analyses/decompiler/counters/__init__.py +11 -0
  42. angr/analyses/decompiler/decompiler.py +27 -10
  43. angr/analyses/decompiler/dephication/seqnode_dephication.py +19 -1
  44. angr/analyses/decompiler/jumptable_entry_condition_rewriter.py +1 -1
  45. angr/analyses/decompiler/optimization_passes/__init__.py +66 -54
  46. angr/analyses/decompiler/optimization_passes/const_derefs.py +1 -1
  47. angr/analyses/decompiler/optimization_passes/const_prop_reverter.py +3 -3
  48. angr/analyses/decompiler/optimization_passes/cross_jump_reverter.py +1 -1
  49. angr/analyses/decompiler/optimization_passes/duplication_reverter/__init__.py +3 -0
  50. angr/analyses/decompiler/optimization_passes/duplication_reverter/ail_merge_graph.py +7 -4
  51. angr/analyses/decompiler/optimization_passes/duplication_reverter/duplication_reverter.py +13 -9
  52. angr/analyses/decompiler/optimization_passes/duplication_reverter/similarity.py +1 -1
  53. angr/analyses/decompiler/optimization_passes/duplication_reverter/utils.py +1 -1
  54. angr/analyses/decompiler/optimization_passes/engine_base.py +2 -2
  55. angr/analyses/decompiler/optimization_passes/expr_op_swapper.py +2 -2
  56. angr/analyses/decompiler/optimization_passes/flip_boolean_cmp.py +4 -4
  57. angr/analyses/decompiler/optimization_passes/inlined_string_transformation_simplifier.py +19 -19
  58. angr/analyses/decompiler/optimization_passes/ite_expr_converter.py +6 -6
  59. angr/analyses/decompiler/optimization_passes/ite_region_converter.py +2 -2
  60. angr/analyses/decompiler/optimization_passes/lowered_switch_simplifier.py +7 -3
  61. angr/analyses/decompiler/optimization_passes/optimization_pass.py +34 -28
  62. angr/analyses/decompiler/optimization_passes/register_save_area_simplifier.py +2 -2
  63. angr/analyses/decompiler/optimization_passes/ret_addr_save_simplifier.py +1 -1
  64. angr/analyses/decompiler/optimization_passes/ret_deduplicator.py +3 -3
  65. angr/analyses/decompiler/optimization_passes/return_duplicator_base.py +5 -5
  66. angr/analyses/decompiler/optimization_passes/return_duplicator_high.py +1 -1
  67. angr/analyses/decompiler/peephole_optimizations/__init__.py +61 -19
  68. angr/analyses/decompiler/peephole_optimizations/simplify_pc_relative_loads.py +1 -1
  69. angr/analyses/decompiler/presets/__init__.py +20 -0
  70. angr/analyses/decompiler/presets/basic.py +30 -0
  71. angr/analyses/decompiler/presets/fast.py +54 -0
  72. angr/analyses/decompiler/presets/full.py +64 -0
  73. angr/analyses/decompiler/presets/preset.py +37 -0
  74. angr/analyses/decompiler/region_identifier.py +21 -7
  75. angr/analyses/decompiler/region_simplifiers/__init__.py +3 -0
  76. angr/analyses/decompiler/region_simplifiers/cascading_cond_transformer.py +3 -3
  77. angr/analyses/decompiler/region_simplifiers/cascading_ifs.py +3 -3
  78. angr/analyses/decompiler/region_simplifiers/expr_folding.py +2 -2
  79. angr/analyses/decompiler/region_simplifiers/goto.py +3 -3
  80. angr/analyses/decompiler/region_simplifiers/if_.py +2 -2
  81. angr/analyses/decompiler/region_simplifiers/ifelse.py +4 -4
  82. angr/analyses/decompiler/region_simplifiers/loop.py +4 -4
  83. angr/analyses/decompiler/region_simplifiers/node_address_finder.py +1 -1
  84. angr/analyses/decompiler/region_simplifiers/region_simplifier.py +6 -6
  85. angr/analyses/decompiler/region_simplifiers/switch_cluster_simplifier.py +12 -5
  86. angr/analyses/decompiler/region_simplifiers/switch_expr_simplifier.py +3 -3
  87. angr/analyses/decompiler/sequence_walker.py +11 -12
  88. angr/analyses/decompiler/structured_codegen/__init__.py +14 -0
  89. angr/analyses/decompiler/structured_codegen/base.py +1 -1
  90. angr/analyses/decompiler/structured_codegen/c.py +22 -15
  91. angr/analyses/decompiler/structured_codegen/dwarf_import.py +2 -2
  92. angr/analyses/decompiler/structuring/__init__.py +11 -1
  93. angr/analyses/decompiler/structuring/dream.py +16 -15
  94. angr/analyses/decompiler/structuring/phoenix.py +9 -9
  95. angr/analyses/decompiler/structuring/recursive_structurer.py +7 -7
  96. angr/analyses/decompiler/structuring/sailr.py +2 -2
  97. angr/analyses/decompiler/structuring/structurer_base.py +9 -4
  98. angr/analyses/decompiler/structuring/structurer_nodes.py +18 -9
  99. angr/analyses/decompiler/utils.py +4 -2
  100. angr/analyses/disassembly.py +6 -6
  101. angr/analyses/disassembly_utils.py +1 -1
  102. angr/analyses/dominance_frontier.py +1 -1
  103. angr/analyses/find_objects_static.py +5 -5
  104. angr/analyses/flirt.py +3 -3
  105. angr/analyses/forward_analysis/__init__.py +9 -0
  106. angr/analyses/forward_analysis/forward_analysis.py +4 -4
  107. angr/analyses/forward_analysis/job_info.py +1 -1
  108. angr/analyses/forward_analysis/visitors/__init__.py +9 -0
  109. angr/analyses/forward_analysis/visitors/graph.py +2 -2
  110. angr/analyses/identifier/__init__.py +3 -0
  111. angr/analyses/identifier/custom_callable.py +2 -3
  112. angr/analyses/identifier/errors.py +1 -1
  113. angr/analyses/identifier/functions/__init__.py +4 -4
  114. angr/analyses/identifier/functions/atoi.py +1 -1
  115. angr/analyses/identifier/functions/based_atoi.py +1 -1
  116. angr/analyses/identifier/functions/fdprintf.py +1 -1
  117. angr/analyses/identifier/functions/free.py +2 -2
  118. angr/analyses/identifier/functions/int2str.py +1 -1
  119. angr/analyses/identifier/functions/malloc.py +2 -2
  120. angr/analyses/identifier/functions/memcmp.py +1 -1
  121. angr/analyses/identifier/functions/memcpy.py +3 -3
  122. angr/analyses/identifier/functions/memset.py +1 -1
  123. angr/analyses/identifier/functions/printf.py +1 -1
  124. angr/analyses/identifier/functions/recv_until.py +2 -2
  125. angr/analyses/identifier/functions/skip_calloc.py +2 -2
  126. angr/analyses/identifier/functions/skip_realloc.py +2 -2
  127. angr/analyses/identifier/functions/skip_recv_n.py +1 -1
  128. angr/analyses/identifier/functions/snprintf.py +1 -1
  129. angr/analyses/identifier/functions/sprintf.py +1 -1
  130. angr/analyses/identifier/functions/strcmp.py +1 -1
  131. angr/analyses/identifier/functions/strcpy.py +1 -1
  132. angr/analyses/identifier/functions/strlen.py +1 -1
  133. angr/analyses/identifier/functions/strncmp.py +1 -1
  134. angr/analyses/identifier/functions/strncpy.py +1 -1
  135. angr/analyses/identifier/functions/strtol.py +1 -1
  136. angr/analyses/identifier/identify.py +3 -3
  137. angr/analyses/identifier/runner.py +6 -6
  138. angr/analyses/init_finder.py +1 -1
  139. angr/analyses/loop_analysis.py +2 -2
  140. angr/analyses/propagator/__init__.py +3 -0
  141. angr/analyses/propagator/engine_ail.py +6 -5
  142. angr/analyses/propagator/engine_base.py +2 -2
  143. angr/analyses/propagator/engine_vex.py +2 -2
  144. angr/analyses/propagator/outdated_definition_walker.py +3 -3
  145. angr/analyses/propagator/propagator.py +3 -3
  146. angr/analyses/propagator/top_checker_mixin.py +1 -1
  147. angr/analyses/proximity_graph.py +3 -3
  148. angr/analyses/reaching_definitions/__init__.py +6 -6
  149. angr/analyses/reaching_definitions/dep_graph.py +5 -5
  150. angr/analyses/reaching_definitions/engine_ail.py +8 -8
  151. angr/analyses/reaching_definitions/engine_vex.py +18 -13
  152. angr/analyses/reaching_definitions/function_handler.py +6 -2
  153. angr/analyses/reaching_definitions/heap_allocator.py +3 -3
  154. angr/analyses/reaching_definitions/rd_state.py +4 -10
  155. angr/analyses/reaching_definitions/reaching_definitions.py +11 -11
  156. angr/analyses/reaching_definitions/subject.py +3 -3
  157. angr/analyses/reassembler.py +5 -5
  158. angr/analyses/{s_propagator/s_propagator.py → s_propagator.py} +1 -1
  159. angr/analyses/s_reaching_definitions/__init__.py +11 -1
  160. angr/analyses/s_reaching_definitions/s_rda_model.py +117 -0
  161. angr/analyses/s_reaching_definitions/s_rda_view.py +213 -0
  162. angr/analyses/s_reaching_definitions/s_reaching_definitions.py +159 -0
  163. angr/analyses/stack_pointer_tracker.py +34 -16
  164. angr/analyses/static_hooker.py +2 -2
  165. angr/analyses/typehoon/__init__.py +3 -0
  166. angr/analyses/typehoon/lifter.py +1 -1
  167. angr/analyses/typehoon/translator.py +21 -4
  168. angr/analyses/typehoon/typeconsts.py +8 -0
  169. angr/analyses/typehoon/typehoon.py +3 -3
  170. angr/analyses/variable_recovery/__init__.py +6 -0
  171. angr/analyses/variable_recovery/engine_ail.py +5 -5
  172. angr/analyses/variable_recovery/engine_base.py +7 -7
  173. angr/analyses/variable_recovery/engine_vex.py +14 -17
  174. angr/analyses/variable_recovery/variable_recovery.py +5 -5
  175. angr/analyses/variable_recovery/variable_recovery_base.py +7 -7
  176. angr/analyses/variable_recovery/variable_recovery_fast.py +7 -7
  177. angr/analyses/veritesting.py +8 -8
  178. angr/analyses/vfg.py +13 -13
  179. angr/analyses/vsa_ddg.py +3 -3
  180. angr/analyses/vtable.py +1 -1
  181. angr/analyses/xrefs.py +3 -3
  182. angr/angrdb/__init__.py +3 -0
  183. angr/angrdb/db.py +2 -2
  184. angr/angrdb/serializers/__init__.py +7 -0
  185. angr/angrdb/serializers/cfg_model.py +2 -2
  186. angr/angrdb/serializers/comments.py +2 -2
  187. angr/angrdb/serializers/funcs.py +2 -2
  188. angr/angrdb/serializers/kb.py +2 -2
  189. angr/angrdb/serializers/labels.py +2 -2
  190. angr/angrdb/serializers/loader.py +2 -2
  191. angr/angrdb/serializers/structured_code.py +4 -4
  192. angr/angrdb/serializers/variables.py +3 -3
  193. angr/angrdb/serializers/xrefs.py +2 -2
  194. angr/calling_conventions.py +69 -24
  195. angr/concretization_strategies/__init__.py +17 -0
  196. angr/concretization_strategies/max.py +1 -1
  197. angr/concretization_strategies/norepeats.py +3 -3
  198. angr/concretization_strategies/norepeats_range.py +1 -1
  199. angr/distributed/__init__.py +6 -1
  200. angr/distributed/server.py +0 -1
  201. angr/distributed/worker.py +6 -4
  202. angr/engines/__init__.py +25 -0
  203. angr/engines/concrete.py +2 -3
  204. angr/engines/engine.py +3 -3
  205. angr/engines/failure.py +2 -2
  206. angr/engines/light/__init__.py +12 -0
  207. angr/engines/light/data.py +1 -1
  208. angr/engines/light/engine.py +12 -17
  209. angr/engines/pcode/__init__.py +7 -1
  210. angr/engines/pcode/behavior.py +1 -1
  211. angr/engines/pcode/cc.py +1 -1
  212. angr/engines/pcode/emulate.py +4 -4
  213. angr/engines/pcode/engine.py +5 -5
  214. angr/engines/pcode/lifter.py +7 -7
  215. angr/engines/procedure.py +3 -3
  216. angr/engines/soot/__init__.py +3 -0
  217. angr/engines/soot/engine.py +13 -13
  218. angr/engines/soot/expressions/__init__.py +33 -0
  219. angr/engines/soot/expressions/arrayref.py +1 -1
  220. angr/engines/soot/expressions/base.py +1 -1
  221. angr/engines/soot/expressions/cast.py +1 -1
  222. angr/engines/soot/expressions/condition.py +2 -2
  223. angr/engines/soot/expressions/constants.py +1 -1
  224. angr/engines/soot/expressions/invoke.py +2 -2
  225. angr/engines/soot/expressions/new.py +1 -1
  226. angr/engines/soot/expressions/newArray.py +1 -1
  227. angr/engines/soot/expressions/newMultiArray.py +1 -1
  228. angr/engines/soot/statements/__init__.py +16 -0
  229. angr/engines/soot/statements/assign.py +1 -1
  230. angr/engines/soot/statements/base.py +3 -3
  231. angr/engines/soot/statements/goto.py +1 -1
  232. angr/engines/soot/statements/if_.py +1 -1
  233. angr/engines/soot/statements/throw.py +1 -1
  234. angr/engines/soot/values/__init__.py +14 -0
  235. angr/engines/soot/values/arrayref.py +1 -1
  236. angr/engines/soot/values/instancefieldref.py +1 -1
  237. angr/engines/soot/values/staticfieldref.py +1 -1
  238. angr/engines/soot/values/thisref.py +2 -2
  239. angr/engines/successors.py +8 -8
  240. angr/engines/syscall.py +1 -1
  241. angr/engines/unicorn.py +13 -13
  242. angr/engines/vex/__init__.py +18 -3
  243. angr/engines/vex/claripy/__init__.py +3 -0
  244. angr/engines/vex/claripy/ccall.py +1 -2
  245. angr/engines/vex/claripy/datalayer.py +3 -3
  246. angr/engines/vex/heavy/__init__.py +11 -1
  247. angr/engines/vex/heavy/heavy.py +8 -8
  248. angr/engines/vex/heavy/inspect.py +2 -2
  249. angr/engines/vex/heavy/resilience.py +2 -2
  250. angr/engines/vex/heavy/super_fastpath.py +3 -3
  251. angr/engines/vex/lifter.py +5 -5
  252. angr/engines/vex/light/__init__.py +7 -0
  253. angr/engines/vex/light/light.py +2 -2
  254. angr/engines/vex/light/slicing.py +1 -1
  255. angr/errors.py +4 -4
  256. angr/exploration_techniques/__init__.py +0 -1
  257. angr/exploration_techniques/bucketizer.py +9 -10
  258. angr/exploration_techniques/common.py +2 -2
  259. angr/exploration_techniques/director.py +4 -4
  260. angr/exploration_techniques/driller_core.py +2 -3
  261. angr/exploration_techniques/explorer.py +3 -3
  262. angr/exploration_techniques/loop_seer.py +3 -3
  263. angr/exploration_techniques/oppologist.py +3 -3
  264. angr/exploration_techniques/slicecutor.py +1 -1
  265. angr/exploration_techniques/spiller.py +1 -1
  266. angr/exploration_techniques/suggestions.py +6 -6
  267. angr/exploration_techniques/symbion.py +0 -1
  268. angr/exploration_techniques/threading.py +2 -2
  269. angr/exploration_techniques/tracer.py +3 -3
  270. angr/exploration_techniques/veritesting.py +1 -1
  271. angr/flirt/__init__.py +0 -1
  272. angr/{knowledge_base/knowledge_base.py → knowledge_base.py} +13 -15
  273. angr/knowledge_plugins/__init__.py +23 -1
  274. angr/knowledge_plugins/callsite_prototypes.py +2 -2
  275. angr/knowledge_plugins/cfg/cfg_manager.py +1 -1
  276. angr/knowledge_plugins/cfg/cfg_model.py +8 -7
  277. angr/knowledge_plugins/cfg/indirect_jump.py +1 -1
  278. angr/knowledge_plugins/cfg/memory_data.py +3 -2
  279. angr/knowledge_plugins/debug_variables.py +2 -2
  280. angr/knowledge_plugins/functions/__init__.py +6 -0
  281. angr/knowledge_plugins/functions/function.py +21 -16
  282. angr/knowledge_plugins/functions/function_manager.py +2 -2
  283. angr/knowledge_plugins/functions/function_parser.py +3 -3
  284. angr/knowledge_plugins/functions/soot_function.py +2 -2
  285. angr/knowledge_plugins/key_definitions/atoms.py +2 -2
  286. angr/knowledge_plugins/key_definitions/definition.py +3 -3
  287. angr/knowledge_plugins/key_definitions/key_definition_manager.py +2 -2
  288. angr/knowledge_plugins/key_definitions/uses.py +2 -2
  289. angr/knowledge_plugins/propagations/__init__.py +7 -0
  290. angr/knowledge_plugins/propagations/prop_value.py +1 -1
  291. angr/knowledge_plugins/{structured_code/manager.py → structured_code.py} +6 -3
  292. angr/knowledge_plugins/types.py +1 -1
  293. angr/knowledge_plugins/variables/__init__.py +6 -0
  294. angr/knowledge_plugins/variables/variable_access.py +3 -3
  295. angr/knowledge_plugins/variables/variable_manager.py +7 -7
  296. angr/knowledge_plugins/xrefs/__init__.py +9 -1
  297. angr/knowledge_plugins/xrefs/xref.py +5 -5
  298. angr/knowledge_plugins/xrefs/xref_manager.py +3 -3
  299. angr/lib/angr_native.dll +0 -0
  300. angr/misc/__init__.py +12 -2
  301. angr/misc/loggers.py +2 -2
  302. angr/misc/telemetry.py +54 -0
  303. angr/procedures/__init__.py +9 -0
  304. angr/procedures/cgc/receive.py +2 -2
  305. angr/procedures/cgc/transmit.py +1 -1
  306. angr/procedures/definitions/__init__.py +8 -8
  307. angr/procedures/definitions/cgc.py +1 -1
  308. angr/procedures/definitions/glibc.py +2 -15
  309. angr/procedures/definitions/gnulib.py +2 -6
  310. angr/procedures/definitions/libstdcpp.py +2 -2
  311. angr/procedures/definitions/linux_kernel.py +2 -3
  312. angr/procedures/definitions/linux_loader.py +1 -1
  313. angr/procedures/definitions/msvcr.py +2 -2
  314. angr/procedures/definitions/wdk_api-ms-win-dx-d3dkmt-l1-1-4.py +3 -18
  315. angr/procedures/definitions/wdk_api-ms-win-dx-d3dkmt-l1-1-6.py +3 -18
  316. angr/procedures/definitions/wdk_clfs.py +3 -18
  317. angr/procedures/definitions/wdk_fltmgr.py +3 -18
  318. angr/procedures/definitions/wdk_fwpkclnt.py +3 -18
  319. angr/procedures/definitions/wdk_fwpuclnt.py +3 -18
  320. angr/procedures/definitions/wdk_gdi32.py +3 -18
  321. angr/procedures/definitions/wdk_hal.py +3 -18
  322. angr/procedures/definitions/wdk_ksecdd.py +3 -18
  323. angr/procedures/definitions/wdk_ndis.py +3 -18
  324. angr/procedures/definitions/wdk_ntoskrnl.py +3 -18
  325. angr/procedures/definitions/wdk_offreg.py +3 -18
  326. angr/procedures/definitions/wdk_pshed.py +3 -18
  327. angr/procedures/definitions/wdk_secur32.py +3 -18
  328. angr/procedures/definitions/wdk_vhfum.py +3 -18
  329. angr/procedures/definitions/win32_aclui.py +3 -18
  330. angr/procedures/definitions/win32_activeds.py +3 -18
  331. angr/procedures/definitions/win32_advapi32.py +3 -18
  332. angr/procedures/definitions/win32_advpack.py +3 -18
  333. angr/procedures/definitions/win32_amsi.py +3 -18
  334. angr/procedures/definitions/win32_api-ms-win-appmodel-runtime-l1-1-1.py +3 -18
  335. angr/procedures/definitions/win32_api-ms-win-appmodel-runtime-l1-1-3.py +3 -18
  336. angr/procedures/definitions/win32_api-ms-win-appmodel-runtime-l1-1-6.py +3 -18
  337. angr/procedures/definitions/win32_api-ms-win-core-apiquery-l2-1-0.py +3 -18
  338. angr/procedures/definitions/win32_api-ms-win-core-backgroundtask-l1-1-0.py +3 -18
  339. angr/procedures/definitions/win32_api-ms-win-core-comm-l1-1-1.py +3 -18
  340. angr/procedures/definitions/win32_api-ms-win-core-comm-l1-1-2.py +3 -18
  341. angr/procedures/definitions/win32_api-ms-win-core-enclave-l1-1-1.py +3 -18
  342. angr/procedures/definitions/win32_api-ms-win-core-errorhandling-l1-1-3.py +3 -18
  343. angr/procedures/definitions/win32_api-ms-win-core-featurestaging-l1-1-0.py +3 -18
  344. angr/procedures/definitions/win32_api-ms-win-core-featurestaging-l1-1-1.py +3 -18
  345. angr/procedures/definitions/win32_api-ms-win-core-file-fromapp-l1-1-0.py +3 -18
  346. angr/procedures/definitions/win32_api-ms-win-core-handle-l1-1-0.py +3 -18
  347. angr/procedures/definitions/win32_api-ms-win-core-ioring-l1-1-0.py +3 -18
  348. angr/procedures/definitions/win32_api-ms-win-core-marshal-l1-1-0.py +3 -18
  349. angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-3.py +3 -18
  350. angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-4.py +3 -18
  351. angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-5.py +3 -18
  352. angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-6.py +3 -18
  353. angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-7.py +3 -18
  354. angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-8.py +3 -18
  355. angr/procedures/definitions/win32_api-ms-win-core-path-l1-1-0.py +3 -18
  356. angr/procedures/definitions/win32_api-ms-win-core-psm-appnotify-l1-1-0.py +3 -18
  357. angr/procedures/definitions/win32_api-ms-win-core-psm-appnotify-l1-1-1.py +3 -18
  358. angr/procedures/definitions/win32_api-ms-win-core-realtime-l1-1-1.py +3 -18
  359. angr/procedures/definitions/win32_api-ms-win-core-realtime-l1-1-2.py +3 -18
  360. angr/procedures/definitions/win32_api-ms-win-core-slapi-l1-1-0.py +3 -18
  361. angr/procedures/definitions/win32_api-ms-win-core-state-helpers-l1-1-0.py +3 -18
  362. angr/procedures/definitions/win32_api-ms-win-core-synch-l1-2-0.py +3 -18
  363. angr/procedures/definitions/win32_api-ms-win-core-sysinfo-l1-2-0.py +3 -18
  364. angr/procedures/definitions/win32_api-ms-win-core-sysinfo-l1-2-3.py +3 -18
  365. angr/procedures/definitions/win32_api-ms-win-core-sysinfo-l1-2-4.py +3 -18
  366. angr/procedures/definitions/win32_api-ms-win-core-sysinfo-l1-2-6.py +3 -18
  367. angr/procedures/definitions/win32_api-ms-win-core-util-l1-1-1.py +3 -18
  368. angr/procedures/definitions/win32_api-ms-win-core-winrt-error-l1-1-0.py +3 -3
  369. angr/procedures/definitions/win32_api-ms-win-core-winrt-error-l1-1-1.py +3 -3
  370. angr/procedures/definitions/win32_api-ms-win-core-winrt-l1-1-0.py +3 -3
  371. angr/procedures/definitions/win32_api-ms-win-core-winrt-registration-l1-1-0.py +3 -3
  372. angr/procedures/definitions/win32_api-ms-win-core-winrt-robuffer-l1-1-0.py +3 -3
  373. angr/procedures/definitions/win32_api-ms-win-core-winrt-roparameterizediid-l1-1-0.py +3 -3
  374. angr/procedures/definitions/win32_api-ms-win-core-winrt-string-l1-1-0.py +3 -3
  375. angr/procedures/definitions/win32_api-ms-win-core-winrt-string-l1-1-1.py +3 -3
  376. angr/procedures/definitions/win32_api-ms-win-core-wow64-l1-1-1.py +3 -18
  377. angr/procedures/definitions/win32_api-ms-win-devices-query-l1-1-0.py +3 -18
  378. angr/procedures/definitions/win32_api-ms-win-devices-query-l1-1-1.py +3 -18
  379. angr/procedures/definitions/win32_api-ms-win-dx-d3dkmt-l1-1-0.py +3 -18
  380. angr/procedures/definitions/win32_api-ms-win-gaming-deviceinformation-l1-1-0.py +3 -18
  381. angr/procedures/definitions/win32_api-ms-win-gaming-expandedresources-l1-1-0.py +3 -18
  382. angr/procedures/definitions/win32_api-ms-win-gaming-tcui-l1-1-0.py +3 -18
  383. angr/procedures/definitions/win32_api-ms-win-gaming-tcui-l1-1-1.py +3 -18
  384. angr/procedures/definitions/win32_api-ms-win-gaming-tcui-l1-1-2.py +3 -18
  385. angr/procedures/definitions/win32_api-ms-win-gaming-tcui-l1-1-3.py +3 -18
  386. angr/procedures/definitions/win32_api-ms-win-gaming-tcui-l1-1-4.py +3 -18
  387. angr/procedures/definitions/win32_api-ms-win-mm-misc-l1-1-1.py +3 -18
  388. angr/procedures/definitions/win32_api-ms-win-net-isolation-l1-1-0.py +3 -18
  389. angr/procedures/definitions/win32_api-ms-win-security-base-l1-2-2.py +3 -18
  390. angr/procedures/definitions/win32_api-ms-win-security-isolatedcontainer-l1-1-0.py +3 -18
  391. angr/procedures/definitions/win32_api-ms-win-security-isolatedcontainer-l1-1-1.py +3 -18
  392. angr/procedures/definitions/win32_api-ms-win-service-core-l1-1-3.py +3 -18
  393. angr/procedures/definitions/win32_api-ms-win-service-core-l1-1-4.py +3 -18
  394. angr/procedures/definitions/win32_api-ms-win-service-core-l1-1-5.py +3 -18
  395. angr/procedures/definitions/win32_api-ms-win-shcore-scaling-l1-1-0.py +3 -18
  396. angr/procedures/definitions/win32_api-ms-win-shcore-scaling-l1-1-1.py +3 -18
  397. angr/procedures/definitions/win32_api-ms-win-shcore-scaling-l1-1-2.py +3 -18
  398. angr/procedures/definitions/win32_api-ms-win-shcore-stream-winrt-l1-1-0.py +3 -3
  399. angr/procedures/definitions/win32_api-ms-win-wsl-api-l1-1-0.py +3 -18
  400. angr/procedures/definitions/win32_apphelp.py +3 -18
  401. angr/procedures/definitions/win32_authz.py +3 -18
  402. angr/procedures/definitions/win32_avicap32.py +3 -18
  403. angr/procedures/definitions/win32_avifil32.py +3 -18
  404. angr/procedures/definitions/win32_avrt.py +3 -18
  405. angr/procedures/definitions/win32_bcp47mrm.py +3 -18
  406. angr/procedures/definitions/win32_bcrypt.py +3 -18
  407. angr/procedures/definitions/win32_bcryptprimitives.py +3 -18
  408. angr/procedures/definitions/win32_bluetoothapis.py +3 -18
  409. angr/procedures/definitions/win32_bthprops.py +3 -3
  410. angr/procedures/definitions/win32_bthprops_cpl.py +3 -18
  411. angr/procedures/definitions/win32_cabinet.py +3 -18
  412. angr/procedures/definitions/win32_certadm.py +3 -18
  413. angr/procedures/definitions/win32_certpoleng.py +3 -18
  414. angr/procedures/definitions/win32_cfgmgr32.py +3 -18
  415. angr/procedures/definitions/win32_chakra.py +3 -18
  416. angr/procedures/definitions/win32_cldapi.py +3 -18
  417. angr/procedures/definitions/win32_clfsw32.py +3 -18
  418. angr/procedures/definitions/win32_clusapi.py +3 -18
  419. angr/procedures/definitions/win32_comctl32.py +3 -18
  420. angr/procedures/definitions/win32_comdlg32.py +3 -18
  421. angr/procedures/definitions/win32_compstui.py +3 -18
  422. angr/procedures/definitions/win32_computecore.py +3 -18
  423. angr/procedures/definitions/win32_computenetwork.py +3 -18
  424. angr/procedures/definitions/win32_computestorage.py +3 -18
  425. angr/procedures/definitions/win32_comsvcs.py +3 -18
  426. angr/procedures/definitions/win32_coremessaging.py +3 -3
  427. angr/procedures/definitions/win32_credui.py +3 -18
  428. angr/procedures/definitions/win32_crypt32.py +3 -18
  429. angr/procedures/definitions/win32_cryptnet.py +3 -18
  430. angr/procedures/definitions/win32_cryptui.py +3 -18
  431. angr/procedures/definitions/win32_cryptxml.py +3 -18
  432. angr/procedures/definitions/win32_cscapi.py +3 -18
  433. angr/procedures/definitions/win32_d2d1.py +3 -18
  434. angr/procedures/definitions/win32_d3d10.py +3 -18
  435. angr/procedures/definitions/win32_d3d10_1.py +3 -18
  436. angr/procedures/definitions/win32_d3d11.py +3 -18
  437. angr/procedures/definitions/win32_d3d12.py +3 -18
  438. angr/procedures/definitions/win32_d3d9.py +3 -18
  439. angr/procedures/definitions/win32_d3dcompiler_47.py +3 -18
  440. angr/procedures/definitions/win32_d3dcsx.py +3 -18
  441. angr/procedures/definitions/win32_davclnt.py +3 -18
  442. angr/procedures/definitions/win32_dbgeng.py +3 -18
  443. angr/procedures/definitions/win32_dbghelp.py +3 -18
  444. angr/procedures/definitions/win32_dbgmodel.py +3 -18
  445. angr/procedures/definitions/win32_dciman32.py +3 -18
  446. angr/procedures/definitions/win32_dcomp.py +3 -18
  447. angr/procedures/definitions/win32_ddraw.py +3 -18
  448. angr/procedures/definitions/win32_deviceaccess.py +3 -18
  449. angr/procedures/definitions/win32_dflayout.py +3 -18
  450. angr/procedures/definitions/win32_dhcpcsvc.py +3 -18
  451. angr/procedures/definitions/win32_dhcpcsvc6.py +3 -18
  452. angr/procedures/definitions/win32_dhcpsapi.py +3 -18
  453. angr/procedures/definitions/win32_diagnosticdataquery.py +3 -18
  454. angr/procedures/definitions/win32_dinput8.py +3 -18
  455. angr/procedures/definitions/win32_directml.py +3 -18
  456. angr/procedures/definitions/win32_dmprocessxmlfiltered.py +3 -18
  457. angr/procedures/definitions/win32_dnsapi.py +3 -18
  458. angr/procedures/definitions/win32_drt.py +3 -18
  459. angr/procedures/definitions/win32_drtprov.py +3 -18
  460. angr/procedures/definitions/win32_drttransport.py +3 -18
  461. angr/procedures/definitions/win32_dsound.py +3 -18
  462. angr/procedures/definitions/win32_dsparse.py +3 -18
  463. angr/procedures/definitions/win32_dsprop.py +3 -18
  464. angr/procedures/definitions/win32_dssec.py +3 -18
  465. angr/procedures/definitions/win32_dsuiext.py +3 -18
  466. angr/procedures/definitions/win32_dwmapi.py +3 -18
  467. angr/procedures/definitions/win32_dwrite.py +3 -18
  468. angr/procedures/definitions/win32_dxcompiler.py +3 -18
  469. angr/procedures/definitions/win32_dxcore.py +3 -18
  470. angr/procedures/definitions/win32_dxgi.py +3 -18
  471. angr/procedures/definitions/win32_dxva2.py +3 -18
  472. angr/procedures/definitions/win32_eappcfg.py +3 -18
  473. angr/procedures/definitions/win32_eappprxy.py +3 -18
  474. angr/procedures/definitions/win32_efswrt.py +3 -18
  475. angr/procedures/definitions/win32_elscore.py +3 -18
  476. angr/procedures/definitions/win32_esent.py +3 -18
  477. angr/procedures/definitions/win32_evr.py +3 -18
  478. angr/procedures/definitions/win32_faultrep.py +3 -18
  479. angr/procedures/definitions/win32_fhsvcctl.py +3 -18
  480. angr/procedures/definitions/win32_firewallapi.py +3 -18
  481. angr/procedures/definitions/win32_fltlib.py +3 -18
  482. angr/procedures/definitions/win32_fontsub.py +3 -18
  483. angr/procedures/definitions/win32_forceinline.py +3 -18
  484. angr/procedures/definitions/win32_fwpuclnt.py +3 -18
  485. angr/procedures/definitions/win32_fxsutility.py +3 -18
  486. angr/procedures/definitions/win32_gdi32.py +3 -18
  487. angr/procedures/definitions/win32_gdiplus.py +3 -18
  488. angr/procedures/definitions/win32_glu32.py +3 -18
  489. angr/procedures/definitions/win32_gpedit.py +3 -18
  490. angr/procedures/definitions/win32_hhctrl_ocx.py +3 -18
  491. angr/procedures/definitions/win32_hid.py +3 -18
  492. angr/procedures/definitions/win32_hlink.py +3 -18
  493. angr/procedures/definitions/win32_hrtfapo.py +3 -18
  494. angr/procedures/definitions/win32_httpapi.py +3 -18
  495. angr/procedures/definitions/win32_icm32.py +3 -18
  496. angr/procedures/definitions/win32_icmui.py +3 -18
  497. angr/procedures/definitions/win32_icu.py +3 -18
  498. angr/procedures/definitions/win32_ieframe.py +3 -18
  499. angr/procedures/definitions/win32_imagehlp.py +3 -18
  500. angr/procedures/definitions/win32_imgutil.py +3 -18
  501. angr/procedures/definitions/win32_imm32.py +3 -18
  502. angr/procedures/definitions/win32_infocardapi.py +3 -18
  503. angr/procedures/definitions/win32_inkobjcore.py +3 -18
  504. angr/procedures/definitions/win32_iphlpapi.py +3 -18
  505. angr/procedures/definitions/win32_iscsidsc.py +3 -18
  506. angr/procedures/definitions/win32_isolatedwindowsenvironmentutils.py +3 -18
  507. angr/procedures/definitions/win32_kernel32.py +3 -18
  508. angr/procedures/definitions/win32_kernelbase.py +3 -18
  509. angr/procedures/definitions/win32_keycredmgr.py +3 -18
  510. angr/procedures/definitions/win32_ksproxy_ax.py +3 -18
  511. angr/procedures/definitions/win32_ksuser.py +3 -18
  512. angr/procedures/definitions/win32_ktmw32.py +3 -18
  513. angr/procedures/definitions/win32_licenseprotection.py +3 -18
  514. angr/procedures/definitions/win32_loadperf.py +3 -18
  515. angr/procedures/definitions/win32_magnification.py +3 -18
  516. angr/procedures/definitions/win32_mapi32.py +3 -18
  517. angr/procedures/definitions/win32_mdmlocalmanagement.py +3 -18
  518. angr/procedures/definitions/win32_mdmregistration.py +3 -18
  519. angr/procedures/definitions/win32_mf.py +3 -18
  520. angr/procedures/definitions/win32_mfcore.py +3 -18
  521. angr/procedures/definitions/win32_mfplat.py +3 -18
  522. angr/procedures/definitions/win32_mfplay.py +3 -18
  523. angr/procedures/definitions/win32_mfreadwrite.py +3 -18
  524. angr/procedures/definitions/win32_mfsensorgroup.py +3 -18
  525. angr/procedures/definitions/win32_mfsrcsnk.py +3 -18
  526. angr/procedures/definitions/win32_mgmtapi.py +3 -18
  527. angr/procedures/definitions/win32_mi.py +3 -18
  528. angr/procedures/definitions/win32_mmdevapi.py +3 -18
  529. angr/procedures/definitions/win32_mpr.py +3 -18
  530. angr/procedures/definitions/win32_mprapi.py +3 -18
  531. angr/procedures/definitions/win32_mqrt.py +3 -18
  532. angr/procedures/definitions/win32_mrmsupport.py +3 -18
  533. angr/procedures/definitions/win32_msacm32.py +3 -18
  534. angr/procedures/definitions/win32_msajapi.py +3 -18
  535. angr/procedures/definitions/win32_mscms.py +3 -18
  536. angr/procedures/definitions/win32_mscoree.py +3 -18
  537. angr/procedures/definitions/win32_msctfmonitor.py +3 -18
  538. angr/procedures/definitions/win32_msdelta.py +3 -18
  539. angr/procedures/definitions/win32_msdmo.py +3 -18
  540. angr/procedures/definitions/win32_msdrm.py +3 -18
  541. angr/procedures/definitions/win32_msi.py +3 -18
  542. angr/procedures/definitions/win32_msimg32.py +3 -18
  543. angr/procedures/definitions/win32_mspatcha.py +3 -18
  544. angr/procedures/definitions/win32_mspatchc.py +3 -18
  545. angr/procedures/definitions/win32_msports.py +3 -18
  546. angr/procedures/definitions/win32_msrating.py +3 -18
  547. angr/procedures/definitions/win32_mssign32.py +3 -18
  548. angr/procedures/definitions/win32_mstask.py +3 -18
  549. angr/procedures/definitions/win32_msvfw32.py +3 -18
  550. angr/procedures/definitions/win32_mswsock.py +3 -18
  551. angr/procedures/definitions/win32_mtxdm.py +3 -18
  552. angr/procedures/definitions/win32_ncrypt.py +3 -18
  553. angr/procedures/definitions/win32_ndfapi.py +3 -18
  554. angr/procedures/definitions/win32_netapi32.py +3 -18
  555. angr/procedures/definitions/win32_netsh.py +3 -18
  556. angr/procedures/definitions/win32_netshell.py +3 -18
  557. angr/procedures/definitions/win32_newdev.py +3 -18
  558. angr/procedures/definitions/win32_ninput.py +3 -18
  559. angr/procedures/definitions/win32_normaliz.py +3 -18
  560. angr/procedures/definitions/win32_ntdll.py +3 -18
  561. angr/procedures/definitions/win32_ntdllk.py +3 -18
  562. angr/procedures/definitions/win32_ntdsapi.py +3 -18
  563. angr/procedures/definitions/win32_ntlanman.py +3 -18
  564. angr/procedures/definitions/win32_odbc32.py +3 -18
  565. angr/procedures/definitions/win32_odbcbcp.py +3 -18
  566. angr/procedures/definitions/win32_ole32.py +3 -18
  567. angr/procedures/definitions/win32_oleacc.py +3 -18
  568. angr/procedures/definitions/win32_oleaut32.py +3 -18
  569. angr/procedures/definitions/win32_oledlg.py +3 -18
  570. angr/procedures/definitions/win32_ondemandconnroutehelper.py +3 -18
  571. angr/procedures/definitions/win32_opengl32.py +3 -18
  572. angr/procedures/definitions/win32_opmxbox.py +3 -18
  573. angr/procedures/definitions/win32_p2p.py +3 -18
  574. angr/procedures/definitions/win32_p2pgraph.py +3 -18
  575. angr/procedures/definitions/win32_pdh.py +3 -18
  576. angr/procedures/definitions/win32_peerdist.py +3 -18
  577. angr/procedures/definitions/win32_powrprof.py +3 -18
  578. angr/procedures/definitions/win32_prntvpt.py +3 -18
  579. angr/procedures/definitions/win32_projectedfslib.py +3 -18
  580. angr/procedures/definitions/win32_propsys.py +3 -18
  581. angr/procedures/definitions/win32_psapi.py +3 -18
  582. angr/procedures/definitions/win32_quartz.py +3 -18
  583. angr/procedures/definitions/win32_query.py +3 -18
  584. angr/procedures/definitions/win32_qwave.py +3 -18
  585. angr/procedures/definitions/win32_rasapi32.py +3 -18
  586. angr/procedures/definitions/win32_rasdlg.py +3 -18
  587. angr/procedures/definitions/win32_resutils.py +3 -18
  588. angr/procedures/definitions/win32_rometadata.py +3 -3
  589. angr/procedures/definitions/win32_rpcns4.py +3 -18
  590. angr/procedures/definitions/win32_rpcproxy.py +3 -18
  591. angr/procedures/definitions/win32_rpcrt4.py +3 -18
  592. angr/procedures/definitions/win32_rstrtmgr.py +3 -18
  593. angr/procedures/definitions/win32_rtm.py +3 -18
  594. angr/procedures/definitions/win32_rtutils.py +3 -18
  595. angr/procedures/definitions/win32_rtworkq.py +3 -18
  596. angr/procedures/definitions/win32_sas.py +3 -18
  597. angr/procedures/definitions/win32_scarddlg.py +3 -18
  598. angr/procedures/definitions/win32_schannel.py +3 -18
  599. angr/procedures/definitions/win32_sechost.py +3 -18
  600. angr/procedures/definitions/win32_secur32.py +3 -18
  601. angr/procedures/definitions/win32_sensapi.py +3 -18
  602. angr/procedures/definitions/win32_sensorsutilsv2.py +3 -18
  603. angr/procedures/definitions/win32_setupapi.py +3 -18
  604. angr/procedures/definitions/win32_sfc.py +3 -18
  605. angr/procedures/definitions/win32_shdocvw.py +3 -18
  606. angr/procedures/definitions/win32_shell32.py +3 -18
  607. angr/procedures/definitions/win32_shlwapi.py +3 -18
  608. angr/procedures/definitions/win32_slc.py +3 -18
  609. angr/procedures/definitions/win32_slcext.py +3 -18
  610. angr/procedures/definitions/win32_slwga.py +3 -18
  611. angr/procedures/definitions/win32_snmpapi.py +3 -18
  612. angr/procedures/definitions/win32_spoolss.py +3 -18
  613. angr/procedures/definitions/win32_srclient.py +3 -18
  614. angr/procedures/definitions/win32_srpapi.py +3 -18
  615. angr/procedures/definitions/win32_sspicli.py +3 -18
  616. angr/procedures/definitions/win32_sti.py +3 -18
  617. angr/procedures/definitions/win32_t2embed.py +3 -18
  618. angr/procedures/definitions/win32_tapi32.py +3 -18
  619. angr/procedures/definitions/win32_tbs.py +3 -18
  620. angr/procedures/definitions/win32_tdh.py +3 -18
  621. angr/procedures/definitions/win32_tokenbinding.py +3 -18
  622. angr/procedures/definitions/win32_traffic.py +3 -18
  623. angr/procedures/definitions/win32_txfw32.py +3 -18
  624. angr/procedures/definitions/win32_ualapi.py +3 -18
  625. angr/procedures/definitions/win32_uiautomationcore.py +3 -18
  626. angr/procedures/definitions/win32_urlmon.py +3 -18
  627. angr/procedures/definitions/win32_user32.py +4 -19
  628. angr/procedures/definitions/win32_userenv.py +3 -18
  629. angr/procedures/definitions/win32_usp10.py +3 -18
  630. angr/procedures/definitions/win32_uxtheme.py +3 -18
  631. angr/procedures/definitions/win32_verifier.py +3 -18
  632. angr/procedures/definitions/win32_version.py +3 -18
  633. angr/procedures/definitions/win32_vertdll.py +3 -18
  634. angr/procedures/definitions/win32_virtdisk.py +3 -18
  635. angr/procedures/definitions/win32_vmdevicehost.py +3 -18
  636. angr/procedures/definitions/win32_vmsavedstatedumpprovider.py +3 -18
  637. angr/procedures/definitions/win32_vssapi.py +3 -18
  638. angr/procedures/definitions/win32_wcmapi.py +3 -18
  639. angr/procedures/definitions/win32_wdsbp.py +3 -18
  640. angr/procedures/definitions/win32_wdsclientapi.py +3 -18
  641. angr/procedures/definitions/win32_wdsmc.py +3 -18
  642. angr/procedures/definitions/win32_wdspxe.py +3 -18
  643. angr/procedures/definitions/win32_wdstptc.py +3 -18
  644. angr/procedures/definitions/win32_webauthn.py +3 -18
  645. angr/procedures/definitions/win32_webservices.py +3 -18
  646. angr/procedures/definitions/win32_websocket.py +3 -18
  647. angr/procedures/definitions/win32_wecapi.py +3 -18
  648. angr/procedures/definitions/win32_wer.py +3 -18
  649. angr/procedures/definitions/win32_wevtapi.py +3 -18
  650. angr/procedures/definitions/win32_winbio.py +3 -18
  651. angr/procedures/definitions/win32_windows_ai_machinelearning.py +3 -18
  652. angr/procedures/definitions/win32_windows_data_pdf.py +3 -3
  653. angr/procedures/definitions/win32_windows_media_mediacontrol.py +3 -18
  654. angr/procedures/definitions/win32_windows_networking.py +3 -18
  655. angr/procedures/definitions/win32_windows_ui_xaml.py +3 -18
  656. angr/procedures/definitions/win32_windowscodecs.py +3 -18
  657. angr/procedures/definitions/win32_winfax.py +3 -18
  658. angr/procedures/definitions/win32_winhttp.py +3 -18
  659. angr/procedures/definitions/win32_winhvemulation.py +3 -18
  660. angr/procedures/definitions/win32_winhvplatform.py +3 -18
  661. angr/procedures/definitions/win32_wininet.py +3 -18
  662. angr/procedures/definitions/win32_winml.py +3 -18
  663. angr/procedures/definitions/win32_winmm.py +3 -18
  664. angr/procedures/definitions/win32_winscard.py +3 -18
  665. angr/procedures/definitions/win32_winspool.py +3 -3
  666. angr/procedures/definitions/win32_winspool_drv.py +3 -18
  667. angr/procedures/definitions/win32_wintrust.py +3 -18
  668. angr/procedures/definitions/win32_winusb.py +3 -18
  669. angr/procedures/definitions/win32_wlanapi.py +3 -18
  670. angr/procedures/definitions/win32_wlanui.py +3 -18
  671. angr/procedures/definitions/win32_wldap32.py +3 -18
  672. angr/procedures/definitions/win32_wldp.py +3 -18
  673. angr/procedures/definitions/win32_wmvcore.py +3 -18
  674. angr/procedures/definitions/win32_wnvapi.py +3 -18
  675. angr/procedures/definitions/win32_wofutil.py +3 -18
  676. angr/procedures/definitions/win32_ws2_32.py +3 -18
  677. angr/procedures/definitions/win32_wscapi.py +3 -18
  678. angr/procedures/definitions/win32_wsclient.py +3 -18
  679. angr/procedures/definitions/win32_wsdapi.py +3 -18
  680. angr/procedures/definitions/win32_wsmsvc.py +3 -18
  681. angr/procedures/definitions/win32_wsnmp32.py +3 -18
  682. angr/procedures/definitions/win32_wtsapi32.py +3 -18
  683. angr/procedures/definitions/win32_xaudio2_8.py +3 -18
  684. angr/procedures/definitions/win32_xinput1_4.py +3 -18
  685. angr/procedures/definitions/win32_xinputuap.py +3 -3
  686. angr/procedures/definitions/win32_xmllite.py +3 -18
  687. angr/procedures/definitions/win32_xolehlp.py +3 -18
  688. angr/procedures/definitions/win32_xpsprint.py +3 -18
  689. angr/procedures/glibc/scanf.py +2 -2
  690. angr/procedures/glibc/sscanf.py +1 -1
  691. angr/procedures/java/__init__.py +6 -3
  692. angr/procedures/java/unconstrained.py +4 -4
  693. angr/procedures/java_io/read.py +1 -1
  694. angr/procedures/java_io/write.py +1 -1
  695. angr/procedures/java_jni/__init__.py +25 -17
  696. angr/procedures/java_jni/array_operations.py +2 -2
  697. angr/procedures/java_jni/field_access.py +3 -3
  698. angr/procedures/java_jni/method_calls.py +2 -2
  699. angr/procedures/java_jni/object_operations.py +1 -1
  700. angr/procedures/java_jni/string_operations.py +2 -2
  701. angr/procedures/java_lang/character.py +1 -1
  702. angr/procedures/java_lang/double.py +2 -2
  703. angr/procedures/java_lang/exit.py +1 -1
  704. angr/procedures/java_lang/getsimplename.py +1 -1
  705. angr/procedures/java_lang/integer.py +2 -2
  706. angr/procedures/java_lang/load_library.py +1 -1
  707. angr/procedures/java_lang/math.py +1 -1
  708. angr/procedures/java_lang/string.py +4 -4
  709. angr/procedures/java_lang/stringbuilder.py +2 -2
  710. angr/procedures/java_lang/system.py +1 -1
  711. angr/procedures/java_util/collection.py +2 -2
  712. angr/procedures/java_util/iterator.py +2 -2
  713. angr/procedures/java_util/list.py +3 -3
  714. angr/procedures/java_util/map.py +3 -3
  715. angr/procedures/java_util/random.py +1 -1
  716. angr/procedures/java_util/scanner_nextline.py +3 -3
  717. angr/procedures/libc/fseek.py +1 -1
  718. angr/procedures/libc/memcpy.py +1 -1
  719. angr/procedures/libc/strlen.py +12 -4
  720. angr/procedures/libc/strncmp.py +9 -4
  721. angr/procedures/linux_kernel/iovec.py +3 -3
  722. angr/procedures/linux_kernel/mmap.py +1 -1
  723. angr/procedures/linux_kernel/stat.py +1 -1
  724. angr/procedures/linux_kernel/sysinfo.py +1 -1
  725. angr/procedures/linux_kernel/vsyscall.py +1 -1
  726. angr/procedures/posix/bzero.py +1 -1
  727. angr/procedures/posix/mmap.py +1 -1
  728. angr/procedures/posix/send.py +1 -1
  729. angr/procedures/posix/syslog.py +2 -3
  730. angr/procedures/procedure_dict.py +2 -2
  731. angr/procedures/stubs/Redirect.py +1 -1
  732. angr/procedures/stubs/UserHook.py +1 -1
  733. angr/procedures/stubs/format_parser.py +6 -6
  734. angr/procedures/tracer/random.py +1 -1
  735. angr/procedures/tracer/receive.py +1 -1
  736. angr/procedures/tracer/transmit.py +1 -1
  737. angr/procedures/uclibc/__uClibc_main.py +1 -1
  738. angr/protos/__init__.py +8 -0
  739. angr/sim_options.py +0 -4
  740. angr/sim_procedure.py +5 -5
  741. angr/sim_state.py +21 -34
  742. angr/sim_type.py +51 -18
  743. angr/simos/__init__.py +12 -0
  744. angr/simos/cgc.py +5 -5
  745. angr/simos/javavm.py +18 -23
  746. angr/simos/linux.py +6 -6
  747. angr/simos/simos.py +12 -16
  748. angr/simos/userland.py +3 -3
  749. angr/simos/windows.py +6 -11
  750. angr/state_hierarchy.py +1 -1
  751. angr/state_plugins/__init__.py +84 -28
  752. angr/state_plugins/callstack.py +1 -1
  753. angr/state_plugins/concrete.py +3 -4
  754. angr/state_plugins/filesystem.py +3 -3
  755. angr/state_plugins/gdb.py +1 -1
  756. angr/state_plugins/heap/__init__.py +14 -5
  757. angr/state_plugins/heap/heap_base.py +5 -4
  758. angr/state_plugins/heap/heap_brk.py +1 -1
  759. angr/state_plugins/heap/heap_freelist.py +1 -1
  760. angr/state_plugins/heap/heap_ptmalloc.py +2 -20
  761. angr/state_plugins/heap/utils.py +1 -1
  762. angr/state_plugins/history.py +2 -2
  763. angr/state_plugins/javavm_classloader.py +3 -3
  764. angr/state_plugins/jni_references.py +1 -1
  765. angr/state_plugins/light_registers.py +3 -3
  766. angr/state_plugins/log.py +1 -1
  767. angr/state_plugins/plugin.py +3 -2
  768. angr/state_plugins/posix.py +3 -3
  769. angr/state_plugins/preconstrainer.py +6 -6
  770. angr/state_plugins/scratch.py +4 -4
  771. angr/state_plugins/sim_action_object.py +1 -1
  772. angr/state_plugins/solver.py +15 -19
  773. angr/state_plugins/symbolizer.py +2 -3
  774. angr/state_plugins/trace_additions.py +8 -8
  775. angr/state_plugins/uc_manager.py +1 -1
  776. angr/state_plugins/unicorn_engine.py +4 -4
  777. angr/state_plugins/view.py +1 -1
  778. angr/storage/__init__.py +9 -3
  779. angr/storage/file.py +16 -16
  780. angr/storage/memory_mixins/__init__.py +88 -6
  781. angr/storage/memory_mixins/actions_mixin.py +3 -3
  782. angr/storage/memory_mixins/address_concretization_mixin.py +6 -6
  783. angr/storage/memory_mixins/bvv_conversion_mixin.py +1 -1
  784. angr/storage/memory_mixins/clouseau_mixin.py +1 -1
  785. angr/storage/memory_mixins/convenient_mappings_mixin.py +8 -10
  786. angr/storage/memory_mixins/default_filler_mixin.py +3 -3
  787. angr/storage/memory_mixins/hex_dumper_mixin.py +1 -1
  788. angr/storage/memory_mixins/{javavm_memory/javavm_memory_mixin.py → javavm_memory_mixin.py} +15 -12
  789. angr/storage/memory_mixins/{keyvalue_memory/keyvalue_memory_mixin.py → keyvalue_memory_mixin.py} +11 -6
  790. angr/storage/memory_mixins/multi_value_merger_mixin.py +5 -5
  791. angr/storage/memory_mixins/name_resolution_mixin.py +2 -2
  792. angr/storage/memory_mixins/paged_memory/paged_memory_mixin.py +1 -1
  793. angr/storage/memory_mixins/paged_memory/paged_memory_multivalue_mixin.py +1 -1
  794. angr/storage/memory_mixins/paged_memory/pages/__init__.py +15 -0
  795. angr/storage/memory_mixins/paged_memory/pages/mv_list_page.py +1 -1
  796. angr/storage/memory_mixins/paged_memory/pages/ultra_page.py +2 -2
  797. angr/storage/memory_mixins/paged_memory/stack_allocation_mixin.py +2 -2
  798. angr/storage/memory_mixins/regioned_memory/__init__.py +10 -0
  799. angr/storage/memory_mixins/regioned_memory/abstract_merger_mixin.py +1 -1
  800. angr/storage/memory_mixins/regioned_memory/region_category_mixin.py +1 -1
  801. angr/storage/memory_mixins/regioned_memory/region_data.py +2 -2
  802. angr/storage/memory_mixins/regioned_memory/region_meta_mixin.py +1 -1
  803. angr/storage/memory_mixins/regioned_memory/regioned_address_concretization_mixin.py +4 -4
  804. angr/storage/memory_mixins/regioned_memory/regioned_memory_mixin.py +7 -19
  805. angr/storage/memory_mixins/regioned_memory/static_find_mixin.py +1 -1
  806. angr/storage/memory_mixins/simple_interface_mixin.py +1 -1
  807. angr/storage/memory_mixins/simplification_mixin.py +1 -1
  808. angr/storage/memory_mixins/size_resolution_mixin.py +2 -2
  809. angr/storage/memory_mixins/slotted_memory.py +1 -1
  810. angr/storage/memory_mixins/smart_find_mixin.py +3 -3
  811. angr/storage/memory_mixins/underconstrained_mixin.py +1 -1
  812. angr/storage/memory_mixins/unwrapper_mixin.py +1 -1
  813. angr/storage/memory_object.py +8 -10
  814. angr/utils/__init__.py +12 -0
  815. angr/utils/enums_conv.py +1 -1
  816. angr/utils/library.py +2 -2
  817. angr/utils/mp.py +1 -1
  818. angr/utils/timing.py +30 -18
  819. {angr-9.2.118.dist-info → angr-9.2.120.dist-info}/METADATA +8 -7
  820. angr-9.2.120.dist-info/RECORD +1340 -0
  821. angr/analyses/s_liveness/__init__.py +0 -2
  822. angr/analyses/s_propagator/__init__.py +0 -2
  823. angr/analyses/s_reaching_definitions/s_rda.py +0 -479
  824. angr/knowledge_base/__init__.py +0 -2
  825. angr/knowledge_plugins/structured_code/__init__.py +0 -2
  826. angr/knowledge_plugins/sync/__init__.py +0 -2
  827. angr/knowledge_plugins/sync/sync_controller.py +0 -324
  828. angr/misc/range.py +0 -24
  829. angr/misc/weakpatch.py +0 -59
  830. angr/storage/memory_mixins/javavm_memory/__init__.py +0 -2
  831. angr/storage/memory_mixins/keyvalue_memory/__init__.py +0 -2
  832. angr/storage/pcap.py +0 -65
  833. angr/utils/typing.py +0 -18
  834. angr-9.2.118.dist-info/RECORD +0 -1344
  835. /angr/analyses/{s_liveness/s_liveness.py → s_liveness.py} +0 -0
  836. {angr-9.2.118.dist-info → angr-9.2.120.dist-info}/LICENSE +0 -0
  837. {angr-9.2.118.dist-info → angr-9.2.120.dist-info}/WHEEL +0 -0
  838. {angr-9.2.118.dist-info → angr-9.2.120.dist-info}/entry_points.txt +0 -0
  839. {angr-9.2.118.dist-info → angr-9.2.120.dist-info}/top_level.txt +0 -0
@@ -1,7 +1,7 @@
1
1
  # pylint:disable=abstract-method,ungrouped-imports
2
2
  from __future__ import annotations
3
3
 
4
- from typing import TYPE_CHECKING
4
+ from typing import Any, TYPE_CHECKING
5
5
  import re
6
6
  import logging
7
7
  from collections import defaultdict
@@ -9,11 +9,11 @@ from collections import defaultdict
9
9
  import pyvex
10
10
 
11
11
  from angr.analyses import ForwardAnalysis, visitors
12
- from ..utils.constants import is_alignment_mask
13
- from ..analyses import AnalysesHub
14
- from ..knowledge_plugins import Function
15
- from ..block import BlockNode
16
- from ..errors import SimTranslationError
12
+ from angr.utils.constants import is_alignment_mask
13
+ from angr.analyses import AnalysesHub
14
+ from angr.knowledge_plugins import Function
15
+ from angr.block import BlockNode
16
+ from angr.errors import SimTranslationError
17
17
  from .analysis import Analysis
18
18
  import contextlib
19
19
 
@@ -179,7 +179,13 @@ class FrozenStackPointerTrackerState:
179
179
 
180
180
  __slots__ = "regs", "memory", "is_tracking_memory", "resilient"
181
181
 
182
- def __init__(self, regs, memory, is_tracking_memory, resilient):
182
+ def __init__(
183
+ self,
184
+ regs,
185
+ memory,
186
+ is_tracking_memory,
187
+ resilient,
188
+ ):
183
189
  self.regs = regs
184
190
  self.memory = memory
185
191
  self.is_tracking_memory = is_tracking_memory
@@ -193,8 +199,10 @@ class FrozenStackPointerTrackerState:
193
199
  return hash((FrozenStackPointerTrackerState, self.regs, self.memory, self.is_tracking_memory))
194
200
  return hash((FrozenStackPointerTrackerState, self.regs, self.is_tracking_memory))
195
201
 
196
- def merge(self, other):
197
- return self.unfreeze().merge(other.unfreeze()).freeze()
202
+ def merge(
203
+ self, other, addr: int, reg_merge_cache: dict[tuple[int, int], Any], mem_merge_cache: dict[tuple[int, int], Any]
204
+ ):
205
+ return self.unfreeze().merge(other.unfreeze(), addr, reg_merge_cache, mem_merge_cache).freeze()
198
206
 
199
207
  def __eq__(self, other):
200
208
  if type(other) is FrozenStackPointerTrackerState or isinstance(other, FrozenStackPointerTrackerState):
@@ -278,16 +286,18 @@ class StackPointerTrackerState:
278
286
  return hash((StackPointerTrackerState, self.regs, self.memory, self.is_tracking_memory))
279
287
  return hash((StackPointerTrackerState, self.regs, self.is_tracking_memory))
280
288
 
281
- def merge(self, other):
289
+ def merge(
290
+ self, other, addr: int, reg_merge_cache: dict[tuple[int, int], Any], mem_merge_cache: dict[tuple[int, int], Any]
291
+ ):
282
292
  return StackPointerTrackerState(
283
- regs=_dict_merge(self.regs, other.regs, self.resilient),
284
- memory=_dict_merge(self.memory, other.memory, self.resilient),
293
+ regs=_dict_merge(self.regs, other.regs, self.resilient, addr, reg_merge_cache),
294
+ memory=_dict_merge(self.memory, other.memory, self.resilient, addr, mem_merge_cache),
285
295
  is_tracking_memory=self.is_tracking_memory and other.is_tracking_memory,
286
296
  resilient=self.resilient or other.resilient,
287
297
  )
288
298
 
289
299
 
290
- def _dict_merge(d1, d2, resilient: bool):
300
+ def _dict_merge(d1, d2, resilient: bool, addr: int, merge_cache: dict[tuple[int, int], Any]):
291
301
  all_keys = set(d1.keys()) | set(d2.keys())
292
302
  merged = {}
293
303
  for k in all_keys:
@@ -299,7 +309,12 @@ def _dict_merge(d1, d2, resilient: bool):
299
309
  merged[k] = d1[k]
300
310
  else: # d1[k] != d2[k]
301
311
  if resilient and isinstance(d1[k], OffsetVal) and isinstance(d2[k], OffsetVal):
302
- merged[k] = min(d1[k], d2[k])
312
+ if (addr, k) in merge_cache:
313
+ merged[k] = merge_cache[(addr, k)]
314
+ else:
315
+ v = min(d1[k], d2[k])
316
+ merge_cache[(addr, k)] = v
317
+ merged[k] = v
303
318
  else:
304
319
  merged[k] = TOP
305
320
  return merged
@@ -350,6 +365,9 @@ class StackPointerTracker(Analysis, ForwardAnalysis):
350
365
  self._reg_value_at_block_start = defaultdict(dict)
351
366
  self.cross_insn_opt = cross_insn_opt
352
367
  self._resilient = resilient
368
+ # in resilience mode, cache previously merged values to ensure we reach a fixed point
369
+ self._reg_merge_cache = {}
370
+ self._mem_merge_cache = {}
353
371
 
354
372
  if initial_reg_values:
355
373
  self._reg_value_at_block_start[func.addr if func is not None else block.addr] = initial_reg_values
@@ -492,7 +510,7 @@ class StackPointerTracker(Analysis, ForwardAnalysis):
492
510
  def _set_state(self, addr, new_val, pre_or_post):
493
511
  previous_val = self._state_for(addr, pre_or_post)
494
512
  if previous_val is not None:
495
- new_val = previous_val.merge(new_val)
513
+ new_val = previous_val.merge(new_val, addr, self._reg_merge_cache, self._mem_merge_cache)
496
514
  if addr not in self.states:
497
515
  self.states[addr] = {}
498
516
  self.states[addr][pre_or_post] = new_val
@@ -808,7 +826,7 @@ class StackPointerTracker(Analysis, ForwardAnalysis):
808
826
  def _merge_states(self, node, *states: StackPointerTrackerState):
809
827
  merged_state = states[0]
810
828
  for other in states[1:]:
811
- merged_state = merged_state.merge(other)
829
+ merged_state = merged_state.merge(other, node.addr, self._reg_merge_cache, self._mem_merge_cache)
812
830
  return merged_state, merged_state == states[0]
813
831
 
814
832
  def _find_callees(self, node) -> list[Function]:
@@ -3,8 +3,8 @@ import logging
3
3
 
4
4
  from . import Analysis
5
5
 
6
- from .. import SIM_LIBRARIES
7
- from ..errors import AngrValueError
6
+ from angr import SIM_LIBRARIES
7
+ from angr.errors import AngrValueError
8
8
 
9
9
  l = logging.getLogger(name=__name__)
10
10
 
@@ -1,2 +1,5 @@
1
1
  from __future__ import annotations
2
+
2
3
  from .typehoon import Typehoon
4
+
5
+ __all__ = ("Typehoon",)
@@ -1,7 +1,7 @@
1
1
  from __future__ import annotations
2
2
  from typing import TYPE_CHECKING
3
3
 
4
- from ...sim_type import (
4
+ from angr.sim_type import (
5
5
  SimType,
6
6
  SimTypeChar,
7
7
  SimTypeShort,
@@ -1,18 +1,23 @@
1
+ # pylint:disable=unused-argument,no-self-use
1
2
  from __future__ import annotations
2
3
  from itertools import count
3
4
 
4
- from ... import sim_type
5
- from ...sim_type import SimType
5
+ from angr import sim_type
6
+ from angr.sim_type import SimType
6
7
  from . import typeconsts
7
8
  from .typeconsts import TypeConstant
8
9
 
9
10
 
10
11
  class SimTypeTempRef(sim_type.SimType):
12
+ """
13
+ Represents a temporary reference to another type. TypeVariableReference is translated to SimTypeTempRef.
14
+ """
15
+
11
16
  def __init__(self, typevar):
12
17
  super().__init__()
13
18
  self.typevar = typevar
14
19
 
15
- def c_repr(self):
20
+ def c_repr(self, **kwargs):
16
21
  return "<SimTypeTempRef>"
17
22
 
18
23
 
@@ -141,7 +146,10 @@ class TypeTranslator:
141
146
  return sim_type.SimTypeLongLong(signed=False).with_arch(self.arch)
142
147
 
143
148
  def _translate_Int128(self, tc): # pylint:disable=unused-argument
144
- return sim_type.SimTypeNum(128, signed=False).with_arch(self.arch)
149
+ return sim_type.SimTypeInt128(signed=False).with_arch(self.arch)
150
+
151
+ def _translate_Int256(self, tc): # pylint:disable=unused-argument
152
+ return sim_type.SimTypeInt256(signed=False).with_arch(self.arch)
145
153
 
146
154
  def _translate_TypeVariableReference(self, tc):
147
155
  if tc.typevar in self.translated:
@@ -176,6 +184,12 @@ class TypeTranslator:
176
184
  # SimType handlers
177
185
  #
178
186
 
187
+ def _translate_SimTypeInt128(self, st: sim_type.SimTypeChar) -> typeconsts.Int128:
188
+ return typeconsts.Int128()
189
+
190
+ def _translate_SimTypeInt256(self, st: sim_type.SimTypeChar) -> typeconsts.Int256:
191
+ return typeconsts.Int256()
192
+
179
193
  def _translate_SimTypeInt(self, st: sim_type.SimTypeInt) -> typeconsts.Int32:
180
194
  return typeconsts.Int32()
181
195
 
@@ -220,6 +234,7 @@ TypeConstHandlers = {
220
234
  typeconsts.Int32: TypeTranslator._translate_Int32,
221
235
  typeconsts.Int64: TypeTranslator._translate_Int64,
222
236
  typeconsts.Int128: TypeTranslator._translate_Int128,
237
+ typeconsts.Int256: TypeTranslator._translate_Int256,
223
238
  typeconsts.TypeVariableReference: TypeTranslator._translate_TypeVariableReference,
224
239
  }
225
240
 
@@ -230,6 +245,8 @@ SimTypeHandlers = {
230
245
  sim_type.SimTypeLong: TypeTranslator._translate_SimTypeLong,
231
246
  sim_type.SimTypeLongLong: TypeTranslator._translate_SimTypeLongLong,
232
247
  sim_type.SimTypeChar: TypeTranslator._translate_SimTypeChar,
248
+ sim_type.SimTypeInt128: TypeTranslator._translate_SimTypeInt128,
249
+ sim_type.SimTypeInt256: TypeTranslator._translate_SimTypeInt256,
233
250
  sim_type.SimStruct: TypeTranslator._translate_SimStruct,
234
251
  sim_type.SimTypeArray: TypeTranslator._translate_SimTypeArray,
235
252
  }
@@ -100,6 +100,13 @@ class Int128(Int):
100
100
  return "int128"
101
101
 
102
102
 
103
+ class Int256(Int):
104
+ SIZE = 32
105
+
106
+ def __repr__(self, memo=None):
107
+ return "int256"
108
+
109
+
103
110
  class FloatBase(TypeConstant):
104
111
  def __repr__(self, memo=None):
105
112
  return "floatbase"
@@ -282,6 +289,7 @@ def int_type(bits: int) -> Int | None:
282
289
  32: Int32,
283
290
  64: Int64,
284
291
  128: Int128,
292
+ 256: Int256,
285
293
  }
286
294
  if bits in mapping:
287
295
  return mapping[bits]()
@@ -2,9 +2,9 @@
2
2
  from __future__ import annotations
3
3
  from typing import TYPE_CHECKING
4
4
 
5
- from ...sim_type import SimStruct, SimTypePointer, SimTypeArray
6
- from ...errors import AngrRuntimeError
7
- from ..analysis import Analysis, AnalysesHub
5
+ from angr.sim_type import SimStruct, SimTypePointer, SimTypeArray
6
+ from angr.errors import AngrRuntimeError
7
+ from angr.analyses.analysis import Analysis, AnalysesHub
8
8
  from .simple_solver import SimpleSolver
9
9
  from .translator import TypeTranslator
10
10
  from .typeconsts import Struct, Pointer, TypeConstant, Array, TopType
@@ -1,3 +1,9 @@
1
1
  from __future__ import annotations
2
+
2
3
  from .variable_recovery import VariableRecovery
3
4
  from .variable_recovery_fast import VariableRecoveryFast
5
+
6
+ __all__ = (
7
+ "VariableRecovery",
8
+ "VariableRecoveryFast",
9
+ )
@@ -9,11 +9,11 @@ from unique_log_filter import UniqueLogFilter
9
9
 
10
10
  from angr.procedures import SIM_LIBRARIES, SIM_TYPE_COLLECTIONS
11
11
  from angr.utils.constants import MAX_POINTSTO_BITS
12
- from ...calling_conventions import SimRegArg
13
- from ...sim_type import SimTypeFunction, dereference_simtype
14
- from ...engines.light import SimEngineLightAILMixin
15
- from ..typehoon import typeconsts, typevars
16
- from ..typehoon.lifter import TypeLifter
12
+ from angr.calling_conventions import SimRegArg
13
+ from angr.sim_type import SimTypeFunction, dereference_simtype
14
+ from angr.engines.light import SimEngineLightAILMixin
15
+ from angr.analyses.typehoon import typeconsts, typevars
16
+ from angr.analyses.typehoon.lifter import TypeLifter
17
17
  from .engine_base import SimEngineVRBase, RichR
18
18
 
19
19
  if TYPE_CHECKING:
@@ -6,13 +6,13 @@ import logging
6
6
  import ailment
7
7
  import claripy
8
8
 
9
- from ...storage.memory_mixins.paged_memory.pages.multi_values import MultiValues
10
- from ...engines.light import SimEngineLight, ArithmeticExpression
11
- from ...errors import SimEngineError, SimMemoryMissingError
12
- from ...sim_variable import SimVariable, SimStackVariable, SimRegisterVariable, SimMemoryVariable
13
- from ...code_location import CodeLocation
14
- from ..typehoon import typevars, typeconsts
15
- from ..typehoon.typevars import TypeVariable, DerivedTypeVariable, AddN, SubN, Load, Store
9
+ from angr.storage.memory_mixins.paged_memory.pages.multi_values import MultiValues
10
+ from angr.engines.light import SimEngineLight, ArithmeticExpression
11
+ from angr.errors import SimEngineError, SimMemoryMissingError
12
+ from angr.sim_variable import SimVariable, SimStackVariable, SimRegisterVariable, SimMemoryVariable
13
+ from angr.code_location import CodeLocation
14
+ from angr.analyses.typehoon import typevars, typeconsts
15
+ from angr.analyses.typehoon.typevars import TypeVariable, DerivedTypeVariable, AddN, SubN, Load, Store
16
16
 
17
17
  if TYPE_CHECKING:
18
18
  from .variable_recovery_base import VariableRecoveryStateBase
@@ -6,13 +6,13 @@ import claripy
6
6
  import pyvex
7
7
  from archinfo.arch_arm import is_arm_arch
8
8
 
9
- from ...errors import SimMemoryMissingError
10
- from ...calling_conventions import SimRegArg, SimStackArg, default_cc
11
- from ...engines.vex.claripy.datalayer import value as claripy_value
12
- from ...engines.light import SimEngineLightVEXMixin
13
- from ...knowledge_plugins import Function
14
- from ...storage.memory_mixins.paged_memory.pages.multi_values import MultiValues
15
- from ..typehoon import typevars, typeconsts
9
+ from angr.errors import SimMemoryMissingError
10
+ from angr.calling_conventions import SimRegArg, SimStackArg, default_cc
11
+ from angr.engines.vex.claripy.datalayer import value as claripy_value
12
+ from angr.engines.light import SimEngineLightVEXMixin
13
+ from angr.knowledge_plugins import Function
14
+ from angr.storage.memory_mixins.paged_memory.pages.multi_values import MultiValues
15
+ from angr.analyses.typehoon import typevars, typeconsts
16
16
  from .engine_base import SimEngineVRBase, RichR
17
17
  from .irsb_scanner import VEXIRSBScanner
18
18
 
@@ -254,10 +254,13 @@ class SimEngineVRVEX(
254
254
  typevar = typevars.DerivedTypeVariable(r0.typevar, typevars.AddN(r1.data.concrete_value))
255
255
 
256
256
  sum_ = r0.data + r1.data
257
+ tc = set()
258
+ if r0.typevar is not None and r1.typevar is not None:
259
+ tc.add(typevars.Subtype(r0.typevar, r1.typevar))
257
260
  return RichR(
258
261
  sum_,
259
262
  typevar=typevar,
260
- type_constraints={typevars.Subtype(r0.typevar, r1.typevar)},
263
+ type_constraints=tc,
261
264
  )
262
265
 
263
266
  def _handle_Sub(self, expr):
@@ -501,6 +504,9 @@ class SimEngineVRVEX(
501
504
  def _handle_Clz(self, expr):
502
505
  return RichR(self.state.top(expr.result_size(self.tyenv)))
503
506
 
507
+ def _handle_Ctz(self, expr):
508
+ return RichR(self.state.top(expr.result_size(self.tyenv)))
509
+
504
510
  def _handle_Mull(self, expr):
505
511
  return RichR(self.state.top(expr.result_size(self.tyenv)))
506
512
 
@@ -553,15 +559,6 @@ class SimEngineVRVEX(
553
559
  _, _ = self._expr(expr.args[0]), self._expr(expr.args[1])
554
560
  return RichR(self.state.top(expr.result_size(self.tyenv)))
555
561
 
556
- def _handle_Clz(self, expr):
557
- arg0 = expr.args[0]
558
- expr_0 = self._expr(arg0)
559
- if expr_0 is None:
560
- return None
561
- if self.state.is_top(expr_0.data):
562
- return RichR(self.state.top(expr_0.data.size()))
563
- return RichR(self.state.top(expr_0.data.size()))
564
-
565
562
  _handle_CmpEQ_v = _handle_Cmp_v
566
563
  _handle_CmpNE_v = _handle_Cmp_v
567
564
  _handle_CmpLE_v = _handle_Cmp_v
@@ -6,11 +6,11 @@ import claripy
6
6
 
7
7
  from angr.analyses import ForwardAnalysis, visitors
8
8
  from angr.analyses import AnalysesHub
9
- from ...errors import SimMemoryMissingError
10
- from ...storage.memory_mixins.paged_memory.pages.multi_values import MultiValues
11
- from ... import BP, BP_AFTER
12
- from ...sim_variable import SimRegisterVariable, SimStackVariable
13
- from ...code_location import CodeLocation
9
+ from angr.errors import SimMemoryMissingError
10
+ from angr.storage.memory_mixins.paged_memory.pages.multi_values import MultiValues
11
+ from angr import BP, BP_AFTER
12
+ from angr.sim_variable import SimRegisterVariable, SimStackVariable
13
+ from angr.code_location import CodeLocation
14
14
  from .variable_recovery_base import VariableRecoveryBase, VariableRecoveryStateBase
15
15
  from .annotations import StackLocationAnnotation
16
16
 
@@ -10,13 +10,13 @@ from claripy.annotation import Annotation
10
10
  from archinfo import Arch
11
11
  from ailment.expression import BinaryOp, StackBaseOffset
12
12
 
13
- from ...utils.cowdict import DefaultChainMapCOW
14
- from ...engines.light import SpOffset
15
- from ...sim_variable import SimVariable
16
- from ...errors import AngrRuntimeError
17
- from ...storage.memory_mixins import MultiValuedMemory
18
- from ..analysis import Analysis
19
- from ..typehoon.typevars import TypeVariables, TypeVariable
13
+ from angr.utils.cowdict import DefaultChainMapCOW
14
+ from angr.engines.light import SpOffset
15
+ from angr.sim_variable import SimVariable
16
+ from angr.errors import AngrRuntimeError
17
+ from angr.storage.memory_mixins import MultiValuedMemory
18
+ from angr.analyses.analysis import Analysis
19
+ from angr.analyses.typehoon.typevars import TypeVariables, TypeVariable
20
20
 
21
21
  if TYPE_CHECKING:
22
22
  from angr.storage import SimMemoryObject
@@ -12,14 +12,14 @@ import ailment
12
12
  from ailment.expression import VirtualVariable
13
13
 
14
14
  import angr.errors
15
- from ...storage.memory_mixins.paged_memory.pages.multi_values import MultiValues
16
- from ...block import Block
17
- from ...errors import AngrVariableRecoveryError, SimEngineError
18
- from ...knowledge_plugins import Function
19
- from ...sim_variable import SimStackVariable, SimRegisterVariable, SimVariable, SimMemoryVariable
20
- from ...engines.vex.claripy.irop import vexop_to_simop
15
+ from angr.storage.memory_mixins.paged_memory.pages.multi_values import MultiValues
16
+ from angr.block import Block
17
+ from angr.errors import AngrVariableRecoveryError, SimEngineError
18
+ from angr.knowledge_plugins import Function
19
+ from angr.sim_variable import SimStackVariable, SimRegisterVariable, SimVariable, SimMemoryVariable
20
+ from angr.engines.vex.claripy.irop import vexop_to_simop
21
21
  from angr.analyses import ForwardAnalysis, visitors
22
- from ..typehoon.typevars import Equivalence, TypeVariable, TypeVariables
22
+ from angr.analyses.typehoon.typevars import Equivalence, TypeVariable, TypeVariables
23
23
  from .variable_recovery_base import VariableRecoveryBase, VariableRecoveryStateBase
24
24
  from .engine_vex import SimEngineVRVEX
25
25
  from .engine_ail import SimEngineVRAIL
@@ -5,12 +5,12 @@ from functools import cmp_to_key
5
5
 
6
6
  import networkx
7
7
 
8
- from .. import SIM_PROCEDURES
9
- from .. import options as o
10
- from ..knowledge_base import KnowledgeBase
11
- from ..errors import AngrError, AngrCFGError
12
- from ..sim_manager import SimulationManager
13
- from ..utils.graph import shallow_reverse
8
+ from angr import SIM_PROCEDURES
9
+ from angr import options as o
10
+ from angr.knowledge_base import KnowledgeBase
11
+ from angr.errors import AngrError, AngrCFGError
12
+ from angr.sim_manager import SimulationManager
13
+ from angr.utils.graph import shallow_reverse
14
14
  from . import Analysis, CFGEmulated
15
15
 
16
16
  l = logging.getLogger(name=__name__)
@@ -624,6 +624,6 @@ from angr.analyses import AnalysesHub
624
624
 
625
625
  AnalysesHub.register_default("Veritesting", Veritesting)
626
626
 
627
- from ..errors import SimValueError, SimSolverModeError, SimError
628
- from ..sim_options import BYPASS_VERITESTING_EXCEPTIONS
627
+ from angr.errors import SimValueError, SimSolverModeError, SimError
628
+ from angr.sim_options import BYPASS_VERITESTING_EXCEPTIONS
629
629
  from claripy import ClaripyError
angr/analyses/vfg.py CHANGED
@@ -12,10 +12,10 @@ import networkx
12
12
  from angr.utils.graph import GraphUtils
13
13
  from angr.analyses import ForwardAnalysis
14
14
  from .cfg.cfg_job_base import BlockID, FunctionKey, CFGJobBase
15
- from .. import sim_options
16
- from ..engines.procedure import ProcedureEngine
17
- from ..engines import SimSuccessors
18
- from ..errors import (
15
+ from angr import sim_options
16
+ from angr.engines.procedure import ProcedureEngine
17
+ from angr.engines import SimSuccessors
18
+ from angr.errors import (
19
19
  AngrDelayJobNotice,
20
20
  AngrSkipJobNotice,
21
21
  AngrVFGError,
@@ -26,14 +26,14 @@ from ..errors import (
26
26
  SimIRSBError,
27
27
  SimError,
28
28
  )
29
- from ..procedures import SIM_PROCEDURES
30
- from ..state_plugins.callstack import CallStack
31
- from ..analyses import AnalysesHub
32
- from ..sim_state import SimState
29
+ from angr.procedures import SIM_PROCEDURES
30
+ from angr.state_plugins.callstack import CallStack
31
+ from angr.analyses import AnalysesHub
32
+ from angr.sim_state import SimState
33
33
  from . import Analysis, CFGEmulated
34
34
 
35
35
  if TYPE_CHECKING:
36
- from ..knowledge_base import KnowledgeBase
36
+ from angr.knowledge_base import KnowledgeBase
37
37
 
38
38
  l = logging.getLogger(name=__name__)
39
39
 
@@ -249,8 +249,8 @@ class VFGNode:
249
249
 
250
250
  def __eq__(self, o):
251
251
  return (
252
- type(self) == type(o)
253
- and self.key == o.key # pylint:disable=unidiomatic-typecheck
252
+ type(self) is type(o)
253
+ and self.key == o.key
254
254
  and self.addr == o.addr
255
255
  and self.state == o.state
256
256
  and self.actions == o.actions
@@ -1508,7 +1508,7 @@ class VFG(ForwardAnalysis[SimState, VFGNode, VFGJob, BlockID], Analysis): # pyl
1508
1508
  successor_state.registers.store(arch.sp_offset, reg_sp_expr)
1509
1509
 
1510
1510
  # Clear the return value with a TOP
1511
- top_si = claripy.TSI(arch.bits)
1511
+ top_si = claripy.BVS("unnamed", arch.bits)
1512
1512
  successor_state.registers.store(arch.ret_offset, top_si)
1513
1513
 
1514
1514
  if job.call_skipped:
@@ -1686,7 +1686,7 @@ class VFG(ForwardAnalysis[SimState, VFGNode, VFGJob, BlockID], Analysis): # pyl
1686
1686
  reg_sp_expr = successor_state.registers.load(reg_sp_offset, size=arch.bytes, endness=arch.register_endness)
1687
1687
 
1688
1688
  reg_sp_val = successor_state.solver.min(reg_sp_expr)
1689
- reg_sp_si = claripy.SI(bits=successor_state.arch.bits, to_conv=reg_sp_val)
1689
+ reg_sp_si = claripy.BVV(reg_sp_val, successor_state.arch.bits)
1690
1690
 
1691
1691
  reg_sp_val = reg_sp_val - arch.bytes # TODO: Is it OK?
1692
1692
  new_stack_region_id = successor_state.memory.stack_id(successor_ip)
angr/analyses/vsa_ddg.py CHANGED
@@ -5,9 +5,9 @@ from collections import defaultdict
5
5
  import networkx
6
6
  from . import Analysis, VFG
7
7
 
8
- from ..code_location import CodeLocation
9
- from ..errors import AngrDDGError
10
- from ..sim_variable import SimRegisterVariable, SimMemoryVariable
8
+ from angr.code_location import CodeLocation
9
+ from angr.errors import AngrDDGError
10
+ from angr.sim_variable import SimRegisterVariable, SimMemoryVariable
11
11
 
12
12
  l = logging.getLogger(name=__name__)
13
13
 
angr/analyses/vtable.py CHANGED
@@ -1,7 +1,7 @@
1
1
  from __future__ import annotations
2
2
  import logging
3
3
 
4
- from ..analyses import AnalysesHub
4
+ from angr.analyses import AnalysesHub
5
5
  from . import Analysis, CFGFast
6
6
 
7
7
  l = logging.getLogger(name=__name__)
angr/analyses/xrefs.py CHANGED
@@ -5,9 +5,9 @@ import claripy
5
5
  import pyvex
6
6
 
7
7
  from angr.analyses import visitors, ForwardAnalysis
8
- from ..knowledge_plugins.xrefs import XRef, XRefType
9
- from ..knowledge_plugins.functions.function import Function
10
- from ..engines.light import SimEngineLight, SimEngineLightVEXMixin
8
+ from angr.knowledge_plugins.xrefs import XRef, XRefType
9
+ from angr.knowledge_plugins.functions.function import Function
10
+ from angr.engines.light import SimEngineLight, SimEngineLightVEXMixin
11
11
  from .propagator.vex_vars import VEXTmp
12
12
  from .propagator.values import Top
13
13
  from . import register_analysis, PropagatorAnalysis
angr/angrdb/__init__.py CHANGED
@@ -9,3 +9,6 @@ except ImportError as err:
9
9
  ) from err
10
10
 
11
11
  from .db import AngrDB
12
+
13
+
14
+ __all__ = ("AngrDB",)
angr/angrdb/db.py CHANGED
@@ -7,8 +7,8 @@ from sqlalchemy import create_engine
7
7
  from sqlalchemy.orm import sessionmaker
8
8
  from sqlalchemy.exc import DatabaseError
9
9
 
10
- from ..errors import AngrCorruptDBError, AngrIncompatibleDBError, AngrDBError
11
- from ..project import Project
10
+ from angr.errors import AngrCorruptDBError, AngrIncompatibleDBError, AngrDBError
11
+ from angr.project import Project
12
12
  from .models import Base, DbInformation
13
13
  from .serializers import LoaderSerializer, KnowledgeBaseSerializer
14
14
 
@@ -1,3 +1,10 @@
1
1
  from __future__ import annotations
2
+
2
3
  from .loader import LoaderSerializer
3
4
  from .kb import KnowledgeBaseSerializer
5
+
6
+
7
+ __all__ = (
8
+ "LoaderSerializer",
9
+ "KnowledgeBaseSerializer",
10
+ )
@@ -1,7 +1,7 @@
1
1
  # pylint:disable=unused-import
2
2
  from __future__ import annotations
3
- from ..models import DbCFGModel
4
- from ...knowledge_plugins.cfg.cfg_model import CFGModel
3
+ from angr.angrdb.models import DbCFGModel
4
+ from angr.knowledge_plugins.cfg.cfg_model import CFGModel
5
5
 
6
6
 
7
7
  class CFGModelSerializer:
@@ -1,7 +1,7 @@
1
1
  # pylint:disable=unused-import
2
2
  from __future__ import annotations
3
- from ..models import DbComment
4
- from ...knowledge_plugins.comments import Comments
3
+ from angr.angrdb.models import DbComment
4
+ from angr.knowledge_plugins.comments import Comments
5
5
 
6
6
 
7
7
  class CommentsSerializer:
@@ -1,8 +1,8 @@
1
1
  from __future__ import annotations
2
2
  from typing import TYPE_CHECKING
3
3
 
4
- from ...knowledge_plugins import FunctionManager, Function
5
- from ..models import DbFunction
4
+ from angr.knowledge_plugins import FunctionManager, Function
5
+ from angr.angrdb.models import DbFunction
6
6
 
7
7
  if TYPE_CHECKING:
8
8
  from angr.knowledge_base import KnowledgeBase
@@ -1,6 +1,6 @@
1
1
  from __future__ import annotations
2
- from ...knowledge_base import KnowledgeBase
3
- from ..models import DbKnowledgeBase
2
+ from angr.knowledge_base import KnowledgeBase
3
+ from angr.angrdb.models import DbKnowledgeBase
4
4
  from .cfg_model import CFGModelSerializer
5
5
  from .funcs import FunctionManagerSerializer
6
6
  from .xrefs import XRefsSerializer
@@ -1,7 +1,7 @@
1
1
  # pylint:disable=unused-import
2
2
  from __future__ import annotations
3
- from ..models import DbLabel
4
- from ...knowledge_plugins.labels import Labels
3
+ from angr.angrdb.models import DbLabel
4
+ from angr.knowledge_plugins.labels import Labels
5
5
 
6
6
 
7
7
  class LabelsSerializer:
@@ -7,8 +7,8 @@ import logging
7
7
 
8
8
  import cle
9
9
 
10
- from ...errors import AngrCorruptDBError, AngrDBError
11
- from ..models import DbObject
10
+ from angr.errors import AngrCorruptDBError, AngrDBError
11
+ from angr.angrdb.models import DbObject
12
12
 
13
13
 
14
14
  _l = logging.getLogger(__name__)