angr 9.2.118__py3-none-manylinux2014_x86_64.whl → 9.2.120__py3-none-manylinux2014_x86_64.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 (838) 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/misc/__init__.py +12 -2
  300. angr/misc/loggers.py +2 -2
  301. angr/misc/telemetry.py +54 -0
  302. angr/procedures/__init__.py +9 -0
  303. angr/procedures/cgc/receive.py +2 -2
  304. angr/procedures/cgc/transmit.py +1 -1
  305. angr/procedures/definitions/__init__.py +8 -8
  306. angr/procedures/definitions/cgc.py +1 -1
  307. angr/procedures/definitions/glibc.py +2 -15
  308. angr/procedures/definitions/gnulib.py +2 -6
  309. angr/procedures/definitions/libstdcpp.py +2 -2
  310. angr/procedures/definitions/linux_kernel.py +2 -3
  311. angr/procedures/definitions/linux_loader.py +1 -1
  312. angr/procedures/definitions/msvcr.py +2 -2
  313. angr/procedures/definitions/wdk_api-ms-win-dx-d3dkmt-l1-1-4.py +3 -18
  314. angr/procedures/definitions/wdk_api-ms-win-dx-d3dkmt-l1-1-6.py +3 -18
  315. angr/procedures/definitions/wdk_clfs.py +3 -18
  316. angr/procedures/definitions/wdk_fltmgr.py +3 -18
  317. angr/procedures/definitions/wdk_fwpkclnt.py +3 -18
  318. angr/procedures/definitions/wdk_fwpuclnt.py +3 -18
  319. angr/procedures/definitions/wdk_gdi32.py +3 -18
  320. angr/procedures/definitions/wdk_hal.py +3 -18
  321. angr/procedures/definitions/wdk_ksecdd.py +3 -18
  322. angr/procedures/definitions/wdk_ndis.py +3 -18
  323. angr/procedures/definitions/wdk_ntoskrnl.py +3 -18
  324. angr/procedures/definitions/wdk_offreg.py +3 -18
  325. angr/procedures/definitions/wdk_pshed.py +3 -18
  326. angr/procedures/definitions/wdk_secur32.py +3 -18
  327. angr/procedures/definitions/wdk_vhfum.py +3 -18
  328. angr/procedures/definitions/win32_aclui.py +3 -18
  329. angr/procedures/definitions/win32_activeds.py +3 -18
  330. angr/procedures/definitions/win32_advapi32.py +3 -18
  331. angr/procedures/definitions/win32_advpack.py +3 -18
  332. angr/procedures/definitions/win32_amsi.py +3 -18
  333. angr/procedures/definitions/win32_api-ms-win-appmodel-runtime-l1-1-1.py +3 -18
  334. angr/procedures/definitions/win32_api-ms-win-appmodel-runtime-l1-1-3.py +3 -18
  335. angr/procedures/definitions/win32_api-ms-win-appmodel-runtime-l1-1-6.py +3 -18
  336. angr/procedures/definitions/win32_api-ms-win-core-apiquery-l2-1-0.py +3 -18
  337. angr/procedures/definitions/win32_api-ms-win-core-backgroundtask-l1-1-0.py +3 -18
  338. angr/procedures/definitions/win32_api-ms-win-core-comm-l1-1-1.py +3 -18
  339. angr/procedures/definitions/win32_api-ms-win-core-comm-l1-1-2.py +3 -18
  340. angr/procedures/definitions/win32_api-ms-win-core-enclave-l1-1-1.py +3 -18
  341. angr/procedures/definitions/win32_api-ms-win-core-errorhandling-l1-1-3.py +3 -18
  342. angr/procedures/definitions/win32_api-ms-win-core-featurestaging-l1-1-0.py +3 -18
  343. angr/procedures/definitions/win32_api-ms-win-core-featurestaging-l1-1-1.py +3 -18
  344. angr/procedures/definitions/win32_api-ms-win-core-file-fromapp-l1-1-0.py +3 -18
  345. angr/procedures/definitions/win32_api-ms-win-core-handle-l1-1-0.py +3 -18
  346. angr/procedures/definitions/win32_api-ms-win-core-ioring-l1-1-0.py +3 -18
  347. angr/procedures/definitions/win32_api-ms-win-core-marshal-l1-1-0.py +3 -18
  348. angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-3.py +3 -18
  349. angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-4.py +3 -18
  350. angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-5.py +3 -18
  351. angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-6.py +3 -18
  352. angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-7.py +3 -18
  353. angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-8.py +3 -18
  354. angr/procedures/definitions/win32_api-ms-win-core-path-l1-1-0.py +3 -18
  355. angr/procedures/definitions/win32_api-ms-win-core-psm-appnotify-l1-1-0.py +3 -18
  356. angr/procedures/definitions/win32_api-ms-win-core-psm-appnotify-l1-1-1.py +3 -18
  357. angr/procedures/definitions/win32_api-ms-win-core-realtime-l1-1-1.py +3 -18
  358. angr/procedures/definitions/win32_api-ms-win-core-realtime-l1-1-2.py +3 -18
  359. angr/procedures/definitions/win32_api-ms-win-core-slapi-l1-1-0.py +3 -18
  360. angr/procedures/definitions/win32_api-ms-win-core-state-helpers-l1-1-0.py +3 -18
  361. angr/procedures/definitions/win32_api-ms-win-core-synch-l1-2-0.py +3 -18
  362. angr/procedures/definitions/win32_api-ms-win-core-sysinfo-l1-2-0.py +3 -18
  363. angr/procedures/definitions/win32_api-ms-win-core-sysinfo-l1-2-3.py +3 -18
  364. angr/procedures/definitions/win32_api-ms-win-core-sysinfo-l1-2-4.py +3 -18
  365. angr/procedures/definitions/win32_api-ms-win-core-sysinfo-l1-2-6.py +3 -18
  366. angr/procedures/definitions/win32_api-ms-win-core-util-l1-1-1.py +3 -18
  367. angr/procedures/definitions/win32_api-ms-win-core-winrt-error-l1-1-0.py +3 -3
  368. angr/procedures/definitions/win32_api-ms-win-core-winrt-error-l1-1-1.py +3 -3
  369. angr/procedures/definitions/win32_api-ms-win-core-winrt-l1-1-0.py +3 -3
  370. angr/procedures/definitions/win32_api-ms-win-core-winrt-registration-l1-1-0.py +3 -3
  371. angr/procedures/definitions/win32_api-ms-win-core-winrt-robuffer-l1-1-0.py +3 -3
  372. angr/procedures/definitions/win32_api-ms-win-core-winrt-roparameterizediid-l1-1-0.py +3 -3
  373. angr/procedures/definitions/win32_api-ms-win-core-winrt-string-l1-1-0.py +3 -3
  374. angr/procedures/definitions/win32_api-ms-win-core-winrt-string-l1-1-1.py +3 -3
  375. angr/procedures/definitions/win32_api-ms-win-core-wow64-l1-1-1.py +3 -18
  376. angr/procedures/definitions/win32_api-ms-win-devices-query-l1-1-0.py +3 -18
  377. angr/procedures/definitions/win32_api-ms-win-devices-query-l1-1-1.py +3 -18
  378. angr/procedures/definitions/win32_api-ms-win-dx-d3dkmt-l1-1-0.py +3 -18
  379. angr/procedures/definitions/win32_api-ms-win-gaming-deviceinformation-l1-1-0.py +3 -18
  380. angr/procedures/definitions/win32_api-ms-win-gaming-expandedresources-l1-1-0.py +3 -18
  381. angr/procedures/definitions/win32_api-ms-win-gaming-tcui-l1-1-0.py +3 -18
  382. angr/procedures/definitions/win32_api-ms-win-gaming-tcui-l1-1-1.py +3 -18
  383. angr/procedures/definitions/win32_api-ms-win-gaming-tcui-l1-1-2.py +3 -18
  384. angr/procedures/definitions/win32_api-ms-win-gaming-tcui-l1-1-3.py +3 -18
  385. angr/procedures/definitions/win32_api-ms-win-gaming-tcui-l1-1-4.py +3 -18
  386. angr/procedures/definitions/win32_api-ms-win-mm-misc-l1-1-1.py +3 -18
  387. angr/procedures/definitions/win32_api-ms-win-net-isolation-l1-1-0.py +3 -18
  388. angr/procedures/definitions/win32_api-ms-win-security-base-l1-2-2.py +3 -18
  389. angr/procedures/definitions/win32_api-ms-win-security-isolatedcontainer-l1-1-0.py +3 -18
  390. angr/procedures/definitions/win32_api-ms-win-security-isolatedcontainer-l1-1-1.py +3 -18
  391. angr/procedures/definitions/win32_api-ms-win-service-core-l1-1-3.py +3 -18
  392. angr/procedures/definitions/win32_api-ms-win-service-core-l1-1-4.py +3 -18
  393. angr/procedures/definitions/win32_api-ms-win-service-core-l1-1-5.py +3 -18
  394. angr/procedures/definitions/win32_api-ms-win-shcore-scaling-l1-1-0.py +3 -18
  395. angr/procedures/definitions/win32_api-ms-win-shcore-scaling-l1-1-1.py +3 -18
  396. angr/procedures/definitions/win32_api-ms-win-shcore-scaling-l1-1-2.py +3 -18
  397. angr/procedures/definitions/win32_api-ms-win-shcore-stream-winrt-l1-1-0.py +3 -3
  398. angr/procedures/definitions/win32_api-ms-win-wsl-api-l1-1-0.py +3 -18
  399. angr/procedures/definitions/win32_apphelp.py +3 -18
  400. angr/procedures/definitions/win32_authz.py +3 -18
  401. angr/procedures/definitions/win32_avicap32.py +3 -18
  402. angr/procedures/definitions/win32_avifil32.py +3 -18
  403. angr/procedures/definitions/win32_avrt.py +3 -18
  404. angr/procedures/definitions/win32_bcp47mrm.py +3 -18
  405. angr/procedures/definitions/win32_bcrypt.py +3 -18
  406. angr/procedures/definitions/win32_bcryptprimitives.py +3 -18
  407. angr/procedures/definitions/win32_bluetoothapis.py +3 -18
  408. angr/procedures/definitions/win32_bthprops.py +3 -3
  409. angr/procedures/definitions/win32_bthprops_cpl.py +3 -18
  410. angr/procedures/definitions/win32_cabinet.py +3 -18
  411. angr/procedures/definitions/win32_certadm.py +3 -18
  412. angr/procedures/definitions/win32_certpoleng.py +3 -18
  413. angr/procedures/definitions/win32_cfgmgr32.py +3 -18
  414. angr/procedures/definitions/win32_chakra.py +3 -18
  415. angr/procedures/definitions/win32_cldapi.py +3 -18
  416. angr/procedures/definitions/win32_clfsw32.py +3 -18
  417. angr/procedures/definitions/win32_clusapi.py +3 -18
  418. angr/procedures/definitions/win32_comctl32.py +3 -18
  419. angr/procedures/definitions/win32_comdlg32.py +3 -18
  420. angr/procedures/definitions/win32_compstui.py +3 -18
  421. angr/procedures/definitions/win32_computecore.py +3 -18
  422. angr/procedures/definitions/win32_computenetwork.py +3 -18
  423. angr/procedures/definitions/win32_computestorage.py +3 -18
  424. angr/procedures/definitions/win32_comsvcs.py +3 -18
  425. angr/procedures/definitions/win32_coremessaging.py +3 -3
  426. angr/procedures/definitions/win32_credui.py +3 -18
  427. angr/procedures/definitions/win32_crypt32.py +3 -18
  428. angr/procedures/definitions/win32_cryptnet.py +3 -18
  429. angr/procedures/definitions/win32_cryptui.py +3 -18
  430. angr/procedures/definitions/win32_cryptxml.py +3 -18
  431. angr/procedures/definitions/win32_cscapi.py +3 -18
  432. angr/procedures/definitions/win32_d2d1.py +3 -18
  433. angr/procedures/definitions/win32_d3d10.py +3 -18
  434. angr/procedures/definitions/win32_d3d10_1.py +3 -18
  435. angr/procedures/definitions/win32_d3d11.py +3 -18
  436. angr/procedures/definitions/win32_d3d12.py +3 -18
  437. angr/procedures/definitions/win32_d3d9.py +3 -18
  438. angr/procedures/definitions/win32_d3dcompiler_47.py +3 -18
  439. angr/procedures/definitions/win32_d3dcsx.py +3 -18
  440. angr/procedures/definitions/win32_davclnt.py +3 -18
  441. angr/procedures/definitions/win32_dbgeng.py +3 -18
  442. angr/procedures/definitions/win32_dbghelp.py +3 -18
  443. angr/procedures/definitions/win32_dbgmodel.py +3 -18
  444. angr/procedures/definitions/win32_dciman32.py +3 -18
  445. angr/procedures/definitions/win32_dcomp.py +3 -18
  446. angr/procedures/definitions/win32_ddraw.py +3 -18
  447. angr/procedures/definitions/win32_deviceaccess.py +3 -18
  448. angr/procedures/definitions/win32_dflayout.py +3 -18
  449. angr/procedures/definitions/win32_dhcpcsvc.py +3 -18
  450. angr/procedures/definitions/win32_dhcpcsvc6.py +3 -18
  451. angr/procedures/definitions/win32_dhcpsapi.py +3 -18
  452. angr/procedures/definitions/win32_diagnosticdataquery.py +3 -18
  453. angr/procedures/definitions/win32_dinput8.py +3 -18
  454. angr/procedures/definitions/win32_directml.py +3 -18
  455. angr/procedures/definitions/win32_dmprocessxmlfiltered.py +3 -18
  456. angr/procedures/definitions/win32_dnsapi.py +3 -18
  457. angr/procedures/definitions/win32_drt.py +3 -18
  458. angr/procedures/definitions/win32_drtprov.py +3 -18
  459. angr/procedures/definitions/win32_drttransport.py +3 -18
  460. angr/procedures/definitions/win32_dsound.py +3 -18
  461. angr/procedures/definitions/win32_dsparse.py +3 -18
  462. angr/procedures/definitions/win32_dsprop.py +3 -18
  463. angr/procedures/definitions/win32_dssec.py +3 -18
  464. angr/procedures/definitions/win32_dsuiext.py +3 -18
  465. angr/procedures/definitions/win32_dwmapi.py +3 -18
  466. angr/procedures/definitions/win32_dwrite.py +3 -18
  467. angr/procedures/definitions/win32_dxcompiler.py +3 -18
  468. angr/procedures/definitions/win32_dxcore.py +3 -18
  469. angr/procedures/definitions/win32_dxgi.py +3 -18
  470. angr/procedures/definitions/win32_dxva2.py +3 -18
  471. angr/procedures/definitions/win32_eappcfg.py +3 -18
  472. angr/procedures/definitions/win32_eappprxy.py +3 -18
  473. angr/procedures/definitions/win32_efswrt.py +3 -18
  474. angr/procedures/definitions/win32_elscore.py +3 -18
  475. angr/procedures/definitions/win32_esent.py +3 -18
  476. angr/procedures/definitions/win32_evr.py +3 -18
  477. angr/procedures/definitions/win32_faultrep.py +3 -18
  478. angr/procedures/definitions/win32_fhsvcctl.py +3 -18
  479. angr/procedures/definitions/win32_firewallapi.py +3 -18
  480. angr/procedures/definitions/win32_fltlib.py +3 -18
  481. angr/procedures/definitions/win32_fontsub.py +3 -18
  482. angr/procedures/definitions/win32_forceinline.py +3 -18
  483. angr/procedures/definitions/win32_fwpuclnt.py +3 -18
  484. angr/procedures/definitions/win32_fxsutility.py +3 -18
  485. angr/procedures/definitions/win32_gdi32.py +3 -18
  486. angr/procedures/definitions/win32_gdiplus.py +3 -18
  487. angr/procedures/definitions/win32_glu32.py +3 -18
  488. angr/procedures/definitions/win32_gpedit.py +3 -18
  489. angr/procedures/definitions/win32_hhctrl_ocx.py +3 -18
  490. angr/procedures/definitions/win32_hid.py +3 -18
  491. angr/procedures/definitions/win32_hlink.py +3 -18
  492. angr/procedures/definitions/win32_hrtfapo.py +3 -18
  493. angr/procedures/definitions/win32_httpapi.py +3 -18
  494. angr/procedures/definitions/win32_icm32.py +3 -18
  495. angr/procedures/definitions/win32_icmui.py +3 -18
  496. angr/procedures/definitions/win32_icu.py +3 -18
  497. angr/procedures/definitions/win32_ieframe.py +3 -18
  498. angr/procedures/definitions/win32_imagehlp.py +3 -18
  499. angr/procedures/definitions/win32_imgutil.py +3 -18
  500. angr/procedures/definitions/win32_imm32.py +3 -18
  501. angr/procedures/definitions/win32_infocardapi.py +3 -18
  502. angr/procedures/definitions/win32_inkobjcore.py +3 -18
  503. angr/procedures/definitions/win32_iphlpapi.py +3 -18
  504. angr/procedures/definitions/win32_iscsidsc.py +3 -18
  505. angr/procedures/definitions/win32_isolatedwindowsenvironmentutils.py +3 -18
  506. angr/procedures/definitions/win32_kernel32.py +3 -18
  507. angr/procedures/definitions/win32_kernelbase.py +3 -18
  508. angr/procedures/definitions/win32_keycredmgr.py +3 -18
  509. angr/procedures/definitions/win32_ksproxy_ax.py +3 -18
  510. angr/procedures/definitions/win32_ksuser.py +3 -18
  511. angr/procedures/definitions/win32_ktmw32.py +3 -18
  512. angr/procedures/definitions/win32_licenseprotection.py +3 -18
  513. angr/procedures/definitions/win32_loadperf.py +3 -18
  514. angr/procedures/definitions/win32_magnification.py +3 -18
  515. angr/procedures/definitions/win32_mapi32.py +3 -18
  516. angr/procedures/definitions/win32_mdmlocalmanagement.py +3 -18
  517. angr/procedures/definitions/win32_mdmregistration.py +3 -18
  518. angr/procedures/definitions/win32_mf.py +3 -18
  519. angr/procedures/definitions/win32_mfcore.py +3 -18
  520. angr/procedures/definitions/win32_mfplat.py +3 -18
  521. angr/procedures/definitions/win32_mfplay.py +3 -18
  522. angr/procedures/definitions/win32_mfreadwrite.py +3 -18
  523. angr/procedures/definitions/win32_mfsensorgroup.py +3 -18
  524. angr/procedures/definitions/win32_mfsrcsnk.py +3 -18
  525. angr/procedures/definitions/win32_mgmtapi.py +3 -18
  526. angr/procedures/definitions/win32_mi.py +3 -18
  527. angr/procedures/definitions/win32_mmdevapi.py +3 -18
  528. angr/procedures/definitions/win32_mpr.py +3 -18
  529. angr/procedures/definitions/win32_mprapi.py +3 -18
  530. angr/procedures/definitions/win32_mqrt.py +3 -18
  531. angr/procedures/definitions/win32_mrmsupport.py +3 -18
  532. angr/procedures/definitions/win32_msacm32.py +3 -18
  533. angr/procedures/definitions/win32_msajapi.py +3 -18
  534. angr/procedures/definitions/win32_mscms.py +3 -18
  535. angr/procedures/definitions/win32_mscoree.py +3 -18
  536. angr/procedures/definitions/win32_msctfmonitor.py +3 -18
  537. angr/procedures/definitions/win32_msdelta.py +3 -18
  538. angr/procedures/definitions/win32_msdmo.py +3 -18
  539. angr/procedures/definitions/win32_msdrm.py +3 -18
  540. angr/procedures/definitions/win32_msi.py +3 -18
  541. angr/procedures/definitions/win32_msimg32.py +3 -18
  542. angr/procedures/definitions/win32_mspatcha.py +3 -18
  543. angr/procedures/definitions/win32_mspatchc.py +3 -18
  544. angr/procedures/definitions/win32_msports.py +3 -18
  545. angr/procedures/definitions/win32_msrating.py +3 -18
  546. angr/procedures/definitions/win32_mssign32.py +3 -18
  547. angr/procedures/definitions/win32_mstask.py +3 -18
  548. angr/procedures/definitions/win32_msvfw32.py +3 -18
  549. angr/procedures/definitions/win32_mswsock.py +3 -18
  550. angr/procedures/definitions/win32_mtxdm.py +3 -18
  551. angr/procedures/definitions/win32_ncrypt.py +3 -18
  552. angr/procedures/definitions/win32_ndfapi.py +3 -18
  553. angr/procedures/definitions/win32_netapi32.py +3 -18
  554. angr/procedures/definitions/win32_netsh.py +3 -18
  555. angr/procedures/definitions/win32_netshell.py +3 -18
  556. angr/procedures/definitions/win32_newdev.py +3 -18
  557. angr/procedures/definitions/win32_ninput.py +3 -18
  558. angr/procedures/definitions/win32_normaliz.py +3 -18
  559. angr/procedures/definitions/win32_ntdll.py +3 -18
  560. angr/procedures/definitions/win32_ntdllk.py +3 -18
  561. angr/procedures/definitions/win32_ntdsapi.py +3 -18
  562. angr/procedures/definitions/win32_ntlanman.py +3 -18
  563. angr/procedures/definitions/win32_odbc32.py +3 -18
  564. angr/procedures/definitions/win32_odbcbcp.py +3 -18
  565. angr/procedures/definitions/win32_ole32.py +3 -18
  566. angr/procedures/definitions/win32_oleacc.py +3 -18
  567. angr/procedures/definitions/win32_oleaut32.py +3 -18
  568. angr/procedures/definitions/win32_oledlg.py +3 -18
  569. angr/procedures/definitions/win32_ondemandconnroutehelper.py +3 -18
  570. angr/procedures/definitions/win32_opengl32.py +3 -18
  571. angr/procedures/definitions/win32_opmxbox.py +3 -18
  572. angr/procedures/definitions/win32_p2p.py +3 -18
  573. angr/procedures/definitions/win32_p2pgraph.py +3 -18
  574. angr/procedures/definitions/win32_pdh.py +3 -18
  575. angr/procedures/definitions/win32_peerdist.py +3 -18
  576. angr/procedures/definitions/win32_powrprof.py +3 -18
  577. angr/procedures/definitions/win32_prntvpt.py +3 -18
  578. angr/procedures/definitions/win32_projectedfslib.py +3 -18
  579. angr/procedures/definitions/win32_propsys.py +3 -18
  580. angr/procedures/definitions/win32_psapi.py +3 -18
  581. angr/procedures/definitions/win32_quartz.py +3 -18
  582. angr/procedures/definitions/win32_query.py +3 -18
  583. angr/procedures/definitions/win32_qwave.py +3 -18
  584. angr/procedures/definitions/win32_rasapi32.py +3 -18
  585. angr/procedures/definitions/win32_rasdlg.py +3 -18
  586. angr/procedures/definitions/win32_resutils.py +3 -18
  587. angr/procedures/definitions/win32_rometadata.py +3 -3
  588. angr/procedures/definitions/win32_rpcns4.py +3 -18
  589. angr/procedures/definitions/win32_rpcproxy.py +3 -18
  590. angr/procedures/definitions/win32_rpcrt4.py +3 -18
  591. angr/procedures/definitions/win32_rstrtmgr.py +3 -18
  592. angr/procedures/definitions/win32_rtm.py +3 -18
  593. angr/procedures/definitions/win32_rtutils.py +3 -18
  594. angr/procedures/definitions/win32_rtworkq.py +3 -18
  595. angr/procedures/definitions/win32_sas.py +3 -18
  596. angr/procedures/definitions/win32_scarddlg.py +3 -18
  597. angr/procedures/definitions/win32_schannel.py +3 -18
  598. angr/procedures/definitions/win32_sechost.py +3 -18
  599. angr/procedures/definitions/win32_secur32.py +3 -18
  600. angr/procedures/definitions/win32_sensapi.py +3 -18
  601. angr/procedures/definitions/win32_sensorsutilsv2.py +3 -18
  602. angr/procedures/definitions/win32_setupapi.py +3 -18
  603. angr/procedures/definitions/win32_sfc.py +3 -18
  604. angr/procedures/definitions/win32_shdocvw.py +3 -18
  605. angr/procedures/definitions/win32_shell32.py +3 -18
  606. angr/procedures/definitions/win32_shlwapi.py +3 -18
  607. angr/procedures/definitions/win32_slc.py +3 -18
  608. angr/procedures/definitions/win32_slcext.py +3 -18
  609. angr/procedures/definitions/win32_slwga.py +3 -18
  610. angr/procedures/definitions/win32_snmpapi.py +3 -18
  611. angr/procedures/definitions/win32_spoolss.py +3 -18
  612. angr/procedures/definitions/win32_srclient.py +3 -18
  613. angr/procedures/definitions/win32_srpapi.py +3 -18
  614. angr/procedures/definitions/win32_sspicli.py +3 -18
  615. angr/procedures/definitions/win32_sti.py +3 -18
  616. angr/procedures/definitions/win32_t2embed.py +3 -18
  617. angr/procedures/definitions/win32_tapi32.py +3 -18
  618. angr/procedures/definitions/win32_tbs.py +3 -18
  619. angr/procedures/definitions/win32_tdh.py +3 -18
  620. angr/procedures/definitions/win32_tokenbinding.py +3 -18
  621. angr/procedures/definitions/win32_traffic.py +3 -18
  622. angr/procedures/definitions/win32_txfw32.py +3 -18
  623. angr/procedures/definitions/win32_ualapi.py +3 -18
  624. angr/procedures/definitions/win32_uiautomationcore.py +3 -18
  625. angr/procedures/definitions/win32_urlmon.py +3 -18
  626. angr/procedures/definitions/win32_user32.py +4 -19
  627. angr/procedures/definitions/win32_userenv.py +3 -18
  628. angr/procedures/definitions/win32_usp10.py +3 -18
  629. angr/procedures/definitions/win32_uxtheme.py +3 -18
  630. angr/procedures/definitions/win32_verifier.py +3 -18
  631. angr/procedures/definitions/win32_version.py +3 -18
  632. angr/procedures/definitions/win32_vertdll.py +3 -18
  633. angr/procedures/definitions/win32_virtdisk.py +3 -18
  634. angr/procedures/definitions/win32_vmdevicehost.py +3 -18
  635. angr/procedures/definitions/win32_vmsavedstatedumpprovider.py +3 -18
  636. angr/procedures/definitions/win32_vssapi.py +3 -18
  637. angr/procedures/definitions/win32_wcmapi.py +3 -18
  638. angr/procedures/definitions/win32_wdsbp.py +3 -18
  639. angr/procedures/definitions/win32_wdsclientapi.py +3 -18
  640. angr/procedures/definitions/win32_wdsmc.py +3 -18
  641. angr/procedures/definitions/win32_wdspxe.py +3 -18
  642. angr/procedures/definitions/win32_wdstptc.py +3 -18
  643. angr/procedures/definitions/win32_webauthn.py +3 -18
  644. angr/procedures/definitions/win32_webservices.py +3 -18
  645. angr/procedures/definitions/win32_websocket.py +3 -18
  646. angr/procedures/definitions/win32_wecapi.py +3 -18
  647. angr/procedures/definitions/win32_wer.py +3 -18
  648. angr/procedures/definitions/win32_wevtapi.py +3 -18
  649. angr/procedures/definitions/win32_winbio.py +3 -18
  650. angr/procedures/definitions/win32_windows_ai_machinelearning.py +3 -18
  651. angr/procedures/definitions/win32_windows_data_pdf.py +3 -3
  652. angr/procedures/definitions/win32_windows_media_mediacontrol.py +3 -18
  653. angr/procedures/definitions/win32_windows_networking.py +3 -18
  654. angr/procedures/definitions/win32_windows_ui_xaml.py +3 -18
  655. angr/procedures/definitions/win32_windowscodecs.py +3 -18
  656. angr/procedures/definitions/win32_winfax.py +3 -18
  657. angr/procedures/definitions/win32_winhttp.py +3 -18
  658. angr/procedures/definitions/win32_winhvemulation.py +3 -18
  659. angr/procedures/definitions/win32_winhvplatform.py +3 -18
  660. angr/procedures/definitions/win32_wininet.py +3 -18
  661. angr/procedures/definitions/win32_winml.py +3 -18
  662. angr/procedures/definitions/win32_winmm.py +3 -18
  663. angr/procedures/definitions/win32_winscard.py +3 -18
  664. angr/procedures/definitions/win32_winspool.py +3 -3
  665. angr/procedures/definitions/win32_winspool_drv.py +3 -18
  666. angr/procedures/definitions/win32_wintrust.py +3 -18
  667. angr/procedures/definitions/win32_winusb.py +3 -18
  668. angr/procedures/definitions/win32_wlanapi.py +3 -18
  669. angr/procedures/definitions/win32_wlanui.py +3 -18
  670. angr/procedures/definitions/win32_wldap32.py +3 -18
  671. angr/procedures/definitions/win32_wldp.py +3 -18
  672. angr/procedures/definitions/win32_wmvcore.py +3 -18
  673. angr/procedures/definitions/win32_wnvapi.py +3 -18
  674. angr/procedures/definitions/win32_wofutil.py +3 -18
  675. angr/procedures/definitions/win32_ws2_32.py +3 -18
  676. angr/procedures/definitions/win32_wscapi.py +3 -18
  677. angr/procedures/definitions/win32_wsclient.py +3 -18
  678. angr/procedures/definitions/win32_wsdapi.py +3 -18
  679. angr/procedures/definitions/win32_wsmsvc.py +3 -18
  680. angr/procedures/definitions/win32_wsnmp32.py +3 -18
  681. angr/procedures/definitions/win32_wtsapi32.py +3 -18
  682. angr/procedures/definitions/win32_xaudio2_8.py +3 -18
  683. angr/procedures/definitions/win32_xinput1_4.py +3 -18
  684. angr/procedures/definitions/win32_xinputuap.py +3 -3
  685. angr/procedures/definitions/win32_xmllite.py +3 -18
  686. angr/procedures/definitions/win32_xolehlp.py +3 -18
  687. angr/procedures/definitions/win32_xpsprint.py +3 -18
  688. angr/procedures/glibc/scanf.py +2 -2
  689. angr/procedures/glibc/sscanf.py +1 -1
  690. angr/procedures/java/__init__.py +6 -3
  691. angr/procedures/java/unconstrained.py +4 -4
  692. angr/procedures/java_io/read.py +1 -1
  693. angr/procedures/java_io/write.py +1 -1
  694. angr/procedures/java_jni/__init__.py +25 -17
  695. angr/procedures/java_jni/array_operations.py +2 -2
  696. angr/procedures/java_jni/field_access.py +3 -3
  697. angr/procedures/java_jni/method_calls.py +2 -2
  698. angr/procedures/java_jni/object_operations.py +1 -1
  699. angr/procedures/java_jni/string_operations.py +2 -2
  700. angr/procedures/java_lang/character.py +1 -1
  701. angr/procedures/java_lang/double.py +2 -2
  702. angr/procedures/java_lang/exit.py +1 -1
  703. angr/procedures/java_lang/getsimplename.py +1 -1
  704. angr/procedures/java_lang/integer.py +2 -2
  705. angr/procedures/java_lang/load_library.py +1 -1
  706. angr/procedures/java_lang/math.py +1 -1
  707. angr/procedures/java_lang/string.py +4 -4
  708. angr/procedures/java_lang/stringbuilder.py +2 -2
  709. angr/procedures/java_lang/system.py +1 -1
  710. angr/procedures/java_util/collection.py +2 -2
  711. angr/procedures/java_util/iterator.py +2 -2
  712. angr/procedures/java_util/list.py +3 -3
  713. angr/procedures/java_util/map.py +3 -3
  714. angr/procedures/java_util/random.py +1 -1
  715. angr/procedures/java_util/scanner_nextline.py +3 -3
  716. angr/procedures/libc/fseek.py +1 -1
  717. angr/procedures/libc/memcpy.py +1 -1
  718. angr/procedures/libc/strlen.py +12 -4
  719. angr/procedures/libc/strncmp.py +9 -4
  720. angr/procedures/linux_kernel/iovec.py +3 -3
  721. angr/procedures/linux_kernel/mmap.py +1 -1
  722. angr/procedures/linux_kernel/stat.py +1 -1
  723. angr/procedures/linux_kernel/sysinfo.py +1 -1
  724. angr/procedures/linux_kernel/vsyscall.py +1 -1
  725. angr/procedures/posix/bzero.py +1 -1
  726. angr/procedures/posix/mmap.py +1 -1
  727. angr/procedures/posix/send.py +1 -1
  728. angr/procedures/posix/syslog.py +2 -3
  729. angr/procedures/procedure_dict.py +2 -2
  730. angr/procedures/stubs/Redirect.py +1 -1
  731. angr/procedures/stubs/UserHook.py +1 -1
  732. angr/procedures/stubs/format_parser.py +6 -6
  733. angr/procedures/tracer/random.py +1 -1
  734. angr/procedures/tracer/receive.py +1 -1
  735. angr/procedures/tracer/transmit.py +1 -1
  736. angr/procedures/uclibc/__uClibc_main.py +1 -1
  737. angr/protos/__init__.py +8 -0
  738. angr/sim_options.py +0 -4
  739. angr/sim_procedure.py +5 -5
  740. angr/sim_state.py +21 -34
  741. angr/sim_type.py +51 -18
  742. angr/simos/__init__.py +12 -0
  743. angr/simos/cgc.py +5 -5
  744. angr/simos/javavm.py +18 -23
  745. angr/simos/linux.py +6 -6
  746. angr/simos/simos.py +12 -16
  747. angr/simos/userland.py +3 -3
  748. angr/simos/windows.py +6 -11
  749. angr/state_hierarchy.py +1 -1
  750. angr/state_plugins/__init__.py +84 -28
  751. angr/state_plugins/callstack.py +1 -1
  752. angr/state_plugins/concrete.py +3 -4
  753. angr/state_plugins/filesystem.py +3 -3
  754. angr/state_plugins/gdb.py +1 -1
  755. angr/state_plugins/heap/__init__.py +14 -5
  756. angr/state_plugins/heap/heap_base.py +5 -4
  757. angr/state_plugins/heap/heap_brk.py +1 -1
  758. angr/state_plugins/heap/heap_freelist.py +1 -1
  759. angr/state_plugins/heap/heap_ptmalloc.py +2 -20
  760. angr/state_plugins/heap/utils.py +1 -1
  761. angr/state_plugins/history.py +2 -2
  762. angr/state_plugins/javavm_classloader.py +3 -3
  763. angr/state_plugins/jni_references.py +1 -1
  764. angr/state_plugins/light_registers.py +3 -3
  765. angr/state_plugins/log.py +1 -1
  766. angr/state_plugins/plugin.py +3 -2
  767. angr/state_plugins/posix.py +3 -3
  768. angr/state_plugins/preconstrainer.py +6 -6
  769. angr/state_plugins/scratch.py +4 -4
  770. angr/state_plugins/sim_action_object.py +1 -1
  771. angr/state_plugins/solver.py +15 -19
  772. angr/state_plugins/symbolizer.py +2 -3
  773. angr/state_plugins/trace_additions.py +8 -8
  774. angr/state_plugins/uc_manager.py +1 -1
  775. angr/state_plugins/unicorn_engine.py +4 -4
  776. angr/state_plugins/view.py +1 -1
  777. angr/storage/__init__.py +9 -3
  778. angr/storage/file.py +16 -16
  779. angr/storage/memory_mixins/__init__.py +88 -6
  780. angr/storage/memory_mixins/actions_mixin.py +3 -3
  781. angr/storage/memory_mixins/address_concretization_mixin.py +6 -6
  782. angr/storage/memory_mixins/bvv_conversion_mixin.py +1 -1
  783. angr/storage/memory_mixins/clouseau_mixin.py +1 -1
  784. angr/storage/memory_mixins/convenient_mappings_mixin.py +8 -10
  785. angr/storage/memory_mixins/default_filler_mixin.py +3 -3
  786. angr/storage/memory_mixins/hex_dumper_mixin.py +1 -1
  787. angr/storage/memory_mixins/{javavm_memory/javavm_memory_mixin.py → javavm_memory_mixin.py} +15 -12
  788. angr/storage/memory_mixins/{keyvalue_memory/keyvalue_memory_mixin.py → keyvalue_memory_mixin.py} +11 -6
  789. angr/storage/memory_mixins/multi_value_merger_mixin.py +5 -5
  790. angr/storage/memory_mixins/name_resolution_mixin.py +2 -2
  791. angr/storage/memory_mixins/paged_memory/paged_memory_mixin.py +1 -1
  792. angr/storage/memory_mixins/paged_memory/paged_memory_multivalue_mixin.py +1 -1
  793. angr/storage/memory_mixins/paged_memory/pages/__init__.py +15 -0
  794. angr/storage/memory_mixins/paged_memory/pages/mv_list_page.py +1 -1
  795. angr/storage/memory_mixins/paged_memory/pages/ultra_page.py +2 -2
  796. angr/storage/memory_mixins/paged_memory/stack_allocation_mixin.py +2 -2
  797. angr/storage/memory_mixins/regioned_memory/__init__.py +10 -0
  798. angr/storage/memory_mixins/regioned_memory/abstract_merger_mixin.py +1 -1
  799. angr/storage/memory_mixins/regioned_memory/region_category_mixin.py +1 -1
  800. angr/storage/memory_mixins/regioned_memory/region_data.py +2 -2
  801. angr/storage/memory_mixins/regioned_memory/region_meta_mixin.py +1 -1
  802. angr/storage/memory_mixins/regioned_memory/regioned_address_concretization_mixin.py +4 -4
  803. angr/storage/memory_mixins/regioned_memory/regioned_memory_mixin.py +7 -19
  804. angr/storage/memory_mixins/regioned_memory/static_find_mixin.py +1 -1
  805. angr/storage/memory_mixins/simple_interface_mixin.py +1 -1
  806. angr/storage/memory_mixins/simplification_mixin.py +1 -1
  807. angr/storage/memory_mixins/size_resolution_mixin.py +2 -2
  808. angr/storage/memory_mixins/slotted_memory.py +1 -1
  809. angr/storage/memory_mixins/smart_find_mixin.py +3 -3
  810. angr/storage/memory_mixins/underconstrained_mixin.py +1 -1
  811. angr/storage/memory_mixins/unwrapper_mixin.py +1 -1
  812. angr/storage/memory_object.py +8 -10
  813. angr/utils/__init__.py +12 -0
  814. angr/utils/enums_conv.py +1 -1
  815. angr/utils/library.py +2 -2
  816. angr/utils/mp.py +1 -1
  817. angr/utils/timing.py +30 -18
  818. {angr-9.2.118.dist-info → angr-9.2.120.dist-info}/METADATA +8 -7
  819. angr-9.2.120.dist-info/RECORD +1340 -0
  820. angr/analyses/s_liveness/__init__.py +0 -2
  821. angr/analyses/s_propagator/__init__.py +0 -2
  822. angr/analyses/s_reaching_definitions/s_rda.py +0 -479
  823. angr/knowledge_base/__init__.py +0 -2
  824. angr/knowledge_plugins/structured_code/__init__.py +0 -2
  825. angr/knowledge_plugins/sync/__init__.py +0 -2
  826. angr/knowledge_plugins/sync/sync_controller.py +0 -324
  827. angr/misc/range.py +0 -24
  828. angr/misc/weakpatch.py +0 -59
  829. angr/storage/memory_mixins/javavm_memory/__init__.py +0 -2
  830. angr/storage/memory_mixins/keyvalue_memory/__init__.py +0 -2
  831. angr/storage/pcap.py +0 -65
  832. angr/utils/typing.py +0 -18
  833. angr-9.2.118.dist-info/RECORD +0 -1344
  834. /angr/analyses/{s_liveness/s_liveness.py → s_liveness.py} +0 -0
  835. {angr-9.2.118.dist-info → angr-9.2.120.dist-info}/LICENSE +0 -0
  836. {angr-9.2.118.dist-info → angr-9.2.120.dist-info}/WHEEL +0 -0
  837. {angr-9.2.118.dist-info → angr-9.2.120.dist-info}/entry_points.txt +0 -0
  838. {angr-9.2.118.dist-info → angr-9.2.120.dist-info}/top_level.txt +0 -0
@@ -1,12 +1,12 @@
1
1
  from __future__ import annotations
2
2
  import ailment
3
3
 
4
- from ..goto_manager import GotoManager
5
- from ....analyses import AnalysesHub
6
- from ...analysis import Analysis
7
- from ..empty_node_remover import EmptyNodeRemover
8
- from ..jump_target_collector import JumpTargetCollector
9
- from ..redundant_label_remover import RedundantLabelRemover
4
+ from angr.analyses.decompiler.goto_manager import GotoManager
5
+ from angr.analyses import AnalysesHub
6
+ from angr.analyses.analysis import Analysis
7
+ from angr.analyses.decompiler.empty_node_remover import EmptyNodeRemover
8
+ from angr.analyses.decompiler.jump_target_collector import JumpTargetCollector
9
+ from angr.analyses.decompiler.redundant_label_remover import RedundantLabelRemover
10
10
  from .goto import GotoSimplifier
11
11
  from .if_ import IfSimplifier
12
12
  from .cascading_ifs import CascadingIfsRemover
@@ -8,11 +8,18 @@ import ailment
8
8
  from ailment import UnaryOp
9
9
  from ailment.expression import negate
10
10
 
11
- from ....utils.constants import SWITCH_MISSING_DEFAULT_NODE_ADDR
12
- from ..structuring.structurer_nodes import SwitchCaseNode, ConditionNode, SequenceNode, MultiNode, BaseNode, BreakNode
13
- from ..sequence_walker import SequenceWalker
14
- from ..condition_processor import ConditionProcessor, EmptyBlockNotice
15
- from ..utils import is_statement_terminating
11
+ from angr.utils.constants import SWITCH_MISSING_DEFAULT_NODE_ADDR
12
+ from angr.analyses.decompiler.structuring.structurer_nodes import (
13
+ SwitchCaseNode,
14
+ ConditionNode,
15
+ SequenceNode,
16
+ MultiNode,
17
+ BaseNode,
18
+ BreakNode,
19
+ )
20
+ from angr.analyses.decompiler.sequence_walker import SequenceWalker
21
+ from angr.analyses.decompiler.condition_processor import ConditionProcessor, EmptyBlockNotice
22
+ from angr.analyses.decompiler.utils import is_statement_terminating
16
23
 
17
24
 
18
25
  class CmpOp(enum.Enum):
@@ -4,8 +4,8 @@ from collections import OrderedDict
4
4
 
5
5
  import ailment
6
6
 
7
- from ..structuring.structurer_nodes import SwitchCaseNode
8
- from ..sequence_walker import SequenceWalker
7
+ from angr.analyses.decompiler.structuring.structurer_nodes import SwitchCaseNode
8
+ from angr.analyses.decompiler.sequence_walker import SequenceWalker
9
9
 
10
10
 
11
11
  class SwitchExpressionSimplifier(SequenceWalker):
@@ -29,7 +29,7 @@ class SwitchExpressionSimplifier(SequenceWalker):
29
29
  convert = None
30
30
 
31
31
  # pylint: disable=import-outside-toplevel
32
- from ..peephole_optimizations.remove_noop_conversions import RemoveNoopConversions
32
+ from angr.analyses.decompiler.peephole_optimizations.remove_noop_conversions import RemoveNoopConversions
33
33
 
34
34
  while isinstance(switch_expr, ailment.Expr.Convert):
35
35
  optimized = RemoveNoopConversions(None, None).optimize(switch_expr)
@@ -4,7 +4,7 @@ from collections import OrderedDict
4
4
 
5
5
  import ailment
6
6
 
7
- from ...errors import UnsupportedNodeTypeError
7
+ from angr.errors import UnsupportedNodeTypeError
8
8
  from .structuring.structurer_nodes import (
9
9
  MultiNode,
10
10
  CodeNode,
@@ -181,22 +181,21 @@ class SequenceWalker:
181
181
  return None
182
182
 
183
183
  def _handle_Loop(self, node: LoopNode, **kwargs):
184
- if node.initializer is not None:
185
- self._handle(node.initializer)
186
- if node.iterator is not None:
187
- self._handle(node.iterator)
188
- if node.condition is not None:
189
- self._handle(node.condition, parent=node, label="condition")
184
+ new_initializer = self._handle(node.initializer) if node.initializer is not None else None
185
+ new_iterator = self._handle(node.iterator) if node.iterator is not None else None
186
+ new_condition = (
187
+ self._handle(node.condition, parent=node, label="condition") if node.condition is not None else None
188
+ )
190
189
  seq_node = self._handle(node.sequence_node, parent=node, label="body", index=0)
191
- if seq_node is not None:
190
+ if seq_node is not None or new_initializer is not None or new_iterator is not None or new_condition is not None:
192
191
  return LoopNode(
193
192
  node.sort,
194
- node.condition,
195
- seq_node,
193
+ new_condition if new_condition is not None else node.condition,
194
+ seq_node if seq_node is not None else node.sequence_node,
196
195
  addr=node.addr,
197
196
  continue_addr=node.continue_addr,
198
- initializer=node.initializer,
199
- iterator=node.iterator,
197
+ initializer=new_initializer if new_initializer is not None else node.initializer,
198
+ iterator=new_iterator if new_iterator is not None else node.iterator,
200
199
  )
201
200
  return None
202
201
 
@@ -1,4 +1,5 @@
1
1
  from __future__ import annotations
2
+
2
3
  from .base import (
3
4
  BaseStructuredCodeGenerator,
4
5
  InstructionMapping,
@@ -9,3 +10,16 @@ from .base import (
9
10
  from .c import CStructuredCodeGenerator, CStructuredCodeWalker
10
11
  from .dwarf_import import ImportSourceCode
11
12
  from .dummy import DummyStructuredCodeGenerator
13
+
14
+
15
+ __all__ = (
16
+ "BaseStructuredCodeGenerator",
17
+ "InstructionMapping",
18
+ "InstructionMappingElement",
19
+ "PositionMappingElement",
20
+ "PositionMapping",
21
+ "CStructuredCodeGenerator",
22
+ "CStructuredCodeWalker",
23
+ "ImportSourceCode",
24
+ "DummyStructuredCodeGenerator",
25
+ )
@@ -1,7 +1,7 @@
1
1
  from __future__ import annotations
2
2
  from sortedcontainers import SortedDict
3
3
 
4
- from ....sim_variable import SimVariable
4
+ from angr.sim_variable import SimVariable
5
5
 
6
6
  #
7
7
  # Position Mapping Classes
@@ -10,8 +10,8 @@ from ailment import Block, Expr, Stmt, Tmp
10
10
  from ailment.expression import StackBaseOffset, BinaryOp
11
11
  from unique_log_filter import UniqueLogFilter
12
12
 
13
- from ....procedures import SIM_LIBRARIES, SIM_TYPE_COLLECTIONS
14
- from ....sim_type import (
13
+ from angr.procedures import SIM_LIBRARIES, SIM_TYPE_COLLECTIONS
14
+ from angr.sim_type import (
15
15
  SimTypeLongLong,
16
16
  SimTypeInt,
17
17
  SimTypeShort,
@@ -31,18 +31,20 @@ from ....sim_type import (
31
31
  SimTypeLength,
32
32
  SimTypeReg,
33
33
  dereference_simtype,
34
+ SimTypeInt128,
35
+ SimTypeInt256,
34
36
  )
35
- from ....knowledge_plugins.functions import Function
36
- from ....sim_variable import SimVariable, SimTemporaryVariable, SimStackVariable, SimMemoryVariable
37
- from ....utils.constants import is_alignment_mask
38
- from ....utils.library import get_cpp_function_name
39
- from ....utils.loader import is_in_readonly_segment, is_in_readonly_section
40
- from ..utils import structured_node_is_simple_return
41
- from ....errors import UnsupportedNodeTypeError, AngrRuntimeError
42
- from ....knowledge_plugins.cfg.memory_data import MemoryData, MemoryDataSort
43
- from ... import Analysis, register_analysis
44
- from ..region_identifier import MultiNode
45
- from ..structuring.structurer_nodes import (
37
+ from angr.knowledge_plugins.functions import Function
38
+ from angr.sim_variable import SimVariable, SimTemporaryVariable, SimStackVariable, SimMemoryVariable
39
+ from angr.utils.constants import is_alignment_mask
40
+ from angr.utils.library import get_cpp_function_name
41
+ from angr.utils.loader import is_in_readonly_segment, is_in_readonly_section
42
+ from angr.analyses.decompiler.utils import structured_node_is_simple_return
43
+ from angr.errors import UnsupportedNodeTypeError, AngrRuntimeError
44
+ from angr.knowledge_plugins.cfg.memory_data import MemoryData, MemoryDataSort
45
+ from angr.analyses import Analysis, register_analysis
46
+ from angr.analyses.decompiler.region_identifier import MultiNode
47
+ from angr.analyses.decompiler.structuring.structurer_nodes import (
46
48
  SequenceNode,
47
49
  CodeNode,
48
50
  ConditionNode,
@@ -3479,8 +3481,13 @@ class CStructuredCodeGenerator(BaseStructuredCodeGenerator, Analysis):
3479
3481
 
3480
3482
  def _handle_Expr_Convert(self, expr: Expr.Convert, **kwargs):
3481
3483
  # width of converted type is easy
3482
- if 64 >= expr.to_bits > 32:
3483
- dst_type: SimTypeInt | SimTypeChar = SimTypeLongLong()
3484
+ dst_type: SimTypeInt | SimTypeChar
3485
+ if 258 >= expr.to_bits > 128:
3486
+ dst_type = SimTypeInt256()
3487
+ elif 128 >= expr.to_bits > 64:
3488
+ dst_type = SimTypeInt128()
3489
+ elif 64 >= expr.to_bits > 32:
3490
+ dst_type = SimTypeLongLong()
3484
3491
  elif 32 >= expr.to_bits > 16:
3485
3492
  dst_type = SimTypeInt()
3486
3493
  elif 16 >= expr.to_bits > 8:
@@ -4,9 +4,9 @@ import re
4
4
  import logging
5
5
  from sortedcontainers import SortedList
6
6
 
7
- from ... import Analysis, register_analysis
7
+ from angr.analyses import Analysis, register_analysis
8
8
  from .base import BaseStructuredCodeGenerator, InstructionMapping, PositionMapping
9
- from ....knowledge_plugins.functions.function import Function
9
+ from angr.knowledge_plugins.functions.function import Function
10
10
 
11
11
 
12
12
  l = logging.getLogger(__name__)
@@ -1,5 +1,4 @@
1
1
  from __future__ import annotations
2
- from typing import Optional, Type
3
2
 
4
3
  from .dream import DreamStructurer
5
4
  from .phoenix import PhoenixStructurer
@@ -18,3 +17,14 @@ DEFAULT_STRUCTURER = SAILRStructurer
18
17
 
19
18
  def structurer_class_from_name(name: str) -> type | None:
20
19
  return STRUCTURER_CLASSES.get(name.lower(), None)
20
+
21
+
22
+ __all__ = (
23
+ "DreamStructurer",
24
+ "PhoenixStructurer",
25
+ "SAILRStructurer",
26
+ "RecursiveStructurer",
27
+ "STRUCTURER_CLASSES",
28
+ "DEFAULT_STRUCTURER",
29
+ "structurer_class_from_name",
30
+ )
@@ -10,13 +10,13 @@ import claripy
10
10
  import ailment
11
11
 
12
12
  from angr.utils.graph import GraphUtils
13
- from ....knowledge_plugins.cfg import IndirectJump, IndirectJumpType
14
- from ..graph_region import GraphRegion
15
- from ..empty_node_remover import EmptyNodeRemover
16
- from ..jumptable_entry_condition_rewriter import JumpTableEntryConditionRewriter
17
- from ..condition_processor import ConditionProcessor
18
- from ..region_simplifiers.cascading_cond_transformer import CascadingConditionTransformer
19
- from ..utils import (
13
+ from angr.knowledge_plugins.cfg import IndirectJump, IndirectJumpType
14
+ from angr.analyses.decompiler.graph_region import GraphRegion
15
+ from angr.analyses.decompiler.empty_node_remover import EmptyNodeRemover
16
+ from angr.analyses.decompiler.jumptable_entry_condition_rewriter import JumpTableEntryConditionRewriter
17
+ from angr.analyses.decompiler.condition_processor import ConditionProcessor
18
+ from angr.analyses.decompiler.region_simplifiers.cascading_cond_transformer import CascadingConditionTransformer
19
+ from angr.analyses.decompiler.utils import (
20
20
  extract_jump_targets,
21
21
  get_ast_subexprs,
22
22
  switch_extract_cmp_bounds,
@@ -767,7 +767,7 @@ class DreamStructurer(StructurerBase):
767
767
  if (
768
768
  arg.op == "__eq__"
769
769
  and arg.args[0] is jumptable_var
770
- and isinstance(arg.args[1], claripy.Bits)
770
+ and isinstance(arg.args[1], claripy.ast.Bits)
771
771
  and arg.args[1].concrete
772
772
  ):
773
773
  # found it
@@ -780,7 +780,7 @@ class DreamStructurer(StructurerBase):
780
780
  # unsupported
781
781
  return None
782
782
  elif cond.op == "__eq__":
783
- if cond.args[0] is jumptable_var and isinstance(cond.args[1], claripy.Bits) and cond.args[1].concrete:
783
+ if cond.args[0] is jumptable_var and isinstance(cond.args[1], claripy.ast.Bits) and cond.args[1].concrete:
784
784
  # found it
785
785
  eq_condition = cond
786
786
  true_node = cond_node.true_node
@@ -800,7 +800,8 @@ class DreamStructurer(StructurerBase):
800
800
  return None
801
801
 
802
802
  return CodeNode(
803
- ConditionNode(cond_node.addr, claripy.true, remaining_cond, true_node, false_node=false_node), eq_condition
803
+ ConditionNode(cond_node.addr, claripy.true(), remaining_cond, true_node, false_node=false_node),
804
+ eq_condition,
804
805
  )
805
806
 
806
807
  def _switch_check_existence_of_jumptable_entries(
@@ -942,11 +943,11 @@ class DreamStructurer(StructurerBase):
942
943
  )
943
944
  ],
944
945
  )
945
- case_node = SequenceNode(0, nodes=[CodeNode(case_inner_node, claripy.true)])
946
+ case_node = SequenceNode(0, nodes=[CodeNode(case_inner_node, claripy.true())])
946
947
  converted_nodes[entry_addr] = case_node
947
948
  continue
948
949
 
949
- case_node = SequenceNode(entry_node.addr, nodes=[CodeNode(entry_node.node, claripy.true)])
950
+ case_node = SequenceNode(entry_node.addr, nodes=[CodeNode(entry_node.node, claripy.true())])
950
951
  to_remove.add(entry_node)
951
952
  entry_node_idx = seq.nodes.index(entry_node)
952
953
 
@@ -966,7 +967,7 @@ class DreamStructurer(StructurerBase):
966
967
  )
967
968
  ],
968
969
  )
969
- case_node = SequenceNode(0, nodes=[CodeNode(case_inner_node, claripy.true)])
970
+ case_node = SequenceNode(0, nodes=[CodeNode(case_inner_node, claripy.true())])
970
971
  converted_nodes[entry_addr] = case_node
971
972
  continue
972
973
 
@@ -1097,7 +1098,7 @@ class DreamStructurer(StructurerBase):
1097
1098
  def _nodes_guarded_by_common_subexpr(seq, common_subexpr, starting_idx):
1098
1099
  candidates = []
1099
1100
 
1100
- if common_subexpr is claripy.true:
1101
+ if common_subexpr is claripy.true():
1101
1102
  return []
1102
1103
  for j, node_1 in enumerate(seq.nodes[starting_idx:]):
1103
1104
  rcond_1 = getattr(node_1, "reaching_condition", None)
@@ -1204,4 +1205,4 @@ class DreamStructurer(StructurerBase):
1204
1205
 
1205
1206
 
1206
1207
  # delayed import
1207
- from ..sequence_walker import SequenceWalker # pylint:disable=wrong-import-position
1208
+ from angr.analyses.decompiler.sequence_walker import SequenceWalker # pylint:disable=wrong-import-position
@@ -14,11 +14,11 @@ from ailment.expression import Const, UnaryOp, MultiStatementExpression
14
14
 
15
15
  from angr.utils.graph import GraphUtils
16
16
  from angr.utils.ail import is_phi_assignment
17
- from ....knowledge_plugins.cfg import IndirectJumpType
18
- from ....utils.constants import SWITCH_MISSING_DEFAULT_NODE_ADDR
19
- from ....utils.graph import dominates, to_acyclic_graph, dfs_back_edges
20
- from ..sequence_walker import SequenceWalker
21
- from ..utils import (
17
+ from angr.knowledge_plugins.cfg import IndirectJumpType
18
+ from angr.utils.constants import SWITCH_MISSING_DEFAULT_NODE_ADDR
19
+ from angr.utils.graph import dominates, to_acyclic_graph, dfs_back_edges
20
+ from angr.analyses.decompiler.sequence_walker import SequenceWalker
21
+ from angr.analyses.decompiler.utils import (
22
22
  remove_last_statement,
23
23
  extract_jump_targets,
24
24
  switch_extract_cmp_bounds,
@@ -26,7 +26,7 @@ from ..utils import (
26
26
  has_nonlabel_nonphi_statements,
27
27
  first_nonlabel_nonphi_statement,
28
28
  )
29
- from ..counters.call_counter import AILCallCounter
29
+ from angr.analyses.decompiler.counters.call_counter import AILCallCounter
30
30
  from .structurer_nodes import (
31
31
  ConditionNode,
32
32
  SequenceNode,
@@ -368,7 +368,7 @@ class PhoenixStructurer(StructurerBase):
368
368
  jump_node = Block(last_stmt.ins_addr, None, statements=[cond_jump])
369
369
  cond_jump_node = ConditionNode(last_stmt.ins_addr, None, edge_cond_right, jump_node)
370
370
  new_node = SequenceNode(node.addr, nodes=[node, cond_jump_node, left])
371
- loop_node = LoopNode("while", claripy.true, new_node, addr=node.addr)
371
+ loop_node = LoopNode("while", claripy.true(), new_node, addr=node.addr)
372
372
 
373
373
  # on the original graph
374
374
  self.replace_nodes(graph, node, loop_node, old_node_1=left, self_loop=False)
@@ -392,7 +392,7 @@ class PhoenixStructurer(StructurerBase):
392
392
  self._remove_last_statement_if_jump(head_block)
393
393
  cond_break = ConditionalBreakNode(node.addr, edge_cond_right, right.addr)
394
394
  new_node = SequenceNode(node.addr, nodes=[node, cond_break, left])
395
- loop_node = LoopNode("while", claripy.true, new_node, addr=node.addr)
395
+ loop_node = LoopNode("while", claripy.true(), new_node, addr=node.addr)
396
396
 
397
397
  # on the original graph
398
398
  self.replace_nodes(graph, node, loop_node, old_node_1=left, self_loop=False)
@@ -572,7 +572,7 @@ class PhoenixStructurer(StructurerBase):
572
572
  seen_nodes.add(next_node)
573
573
  seq_node.nodes.append(next_node)
574
574
 
575
- loop_node = LoopNode("while", claripy.true, seq_node, addr=node.addr)
575
+ loop_node = LoopNode("while", claripy.true(), seq_node, addr=node.addr)
576
576
 
577
577
  # on the original graph
578
578
  for node_ in seq_node.nodes:
@@ -5,13 +5,13 @@ import logging
5
5
 
6
6
  import networkx
7
7
 
8
- from ... import Analysis, register_analysis
9
- from ..condition_processor import ConditionProcessor
10
- from ..graph_region import GraphRegion
11
- from ..jumptable_entry_condition_rewriter import JumpTableEntryConditionRewriter
12
- from ..empty_node_remover import EmptyNodeRemover
13
- from ..jump_target_collector import JumpTargetCollector
14
- from ..redundant_label_remover import RedundantLabelRemover
8
+ from angr.analyses import Analysis, register_analysis
9
+ from angr.analyses.decompiler.condition_processor import ConditionProcessor
10
+ from angr.analyses.decompiler.graph_region import GraphRegion
11
+ from angr.analyses.decompiler.jumptable_entry_condition_rewriter import JumpTableEntryConditionRewriter
12
+ from angr.analyses.decompiler.empty_node_remover import EmptyNodeRemover
13
+ from angr.analyses.decompiler.jump_target_collector import JumpTargetCollector
14
+ from angr.analyses.decompiler.redundant_label_remover import RedundantLabelRemover
15
15
  from .structurer_nodes import BaseNode
16
16
  from .structurer_base import StructurerBase
17
17
  from .dream import DreamStructurer
@@ -3,8 +3,8 @@ from typing import Any
3
3
 
4
4
  import networkx
5
5
 
6
- from ..utils import structured_node_is_simple_return
7
- from ....utils.graph import PostDominators, TemporaryNode
6
+ from angr.analyses.decompiler.utils import structured_node_is_simple_return
7
+ from angr.utils.graph import PostDominators, TemporaryNode
8
8
  from .phoenix import PhoenixStructurer
9
9
 
10
10
 
@@ -9,10 +9,15 @@ import networkx
9
9
  import ailment
10
10
  import claripy
11
11
 
12
- from ... import Analysis
13
- from ..condition_processor import ConditionProcessor
14
- from ..sequence_walker import SequenceWalker
15
- from ..utils import extract_jump_targets, insert_node, remove_last_statement, has_nonlabel_nonphi_statements
12
+ from angr.analyses import Analysis
13
+ from angr.analyses.decompiler.condition_processor import ConditionProcessor
14
+ from angr.analyses.decompiler.sequence_walker import SequenceWalker
15
+ from angr.analyses.decompiler.utils import (
16
+ extract_jump_targets,
17
+ insert_node,
18
+ remove_last_statement,
19
+ has_nonlabel_nonphi_statements,
20
+ )
16
21
  from .structurer_nodes import (
17
22
  MultiNode,
18
23
  SequenceNode,
@@ -24,7 +24,7 @@ class MultiNode:
24
24
 
25
25
  def __init__(self, nodes, addr=None, idx=None):
26
26
  # delayed import
27
- from ..graph_region import GraphRegion # pylint:disable=import-outside-toplevel
27
+ from angr.analyses.decompiler.graph_region import GraphRegion # pylint:disable=import-outside-toplevel
28
28
 
29
29
  self.nodes = []
30
30
 
@@ -247,14 +247,23 @@ class LoopNode(BaseNode):
247
247
  "_continue_addr",
248
248
  )
249
249
 
250
- def __init__(self, sort, condition, sequence_node, addr=None, continue_addr=None, initializer=None, iterator=None):
251
- self.sort = sort
252
- self.condition = condition
253
- self.sequence_node = sequence_node
254
- self.initializer = initializer
255
- self.iterator = iterator
256
- self._addr = addr
257
- self._continue_addr = continue_addr
250
+ def __init__(
251
+ self,
252
+ sort: str,
253
+ condition: ailment.Expr.Expression | None,
254
+ sequence_node: SequenceNode,
255
+ addr: int | None = None,
256
+ continue_addr: int | None = None,
257
+ initializer: ailment.Stmt.Assignment | None = None,
258
+ iterator: ailment.Stmt.Assignment | None = None,
259
+ ):
260
+ self.sort: str = sort
261
+ self.condition: ailment.Expr.Expression | None = condition
262
+ self.sequence_node: SequenceNode = sequence_node
263
+ self.initializer: ailment.Stmt.Assignment | None = initializer
264
+ self.iterator: ailment.Stmt.Assignment | None = iterator
265
+ self._addr: int | None = addr
266
+ self._continue_addr: int | None = continue_addr
258
267
 
259
268
  def copy(self):
260
269
  return LoopNode(
@@ -694,6 +694,7 @@ def decompile_functions(
694
694
  catch_errors: bool = False,
695
695
  show_casts: bool = True,
696
696
  base_address: int | None = None,
697
+ preset: str | None = None,
697
698
  ) -> str | None:
698
699
  """
699
700
  Decompile a binary into a set of functions.
@@ -704,6 +705,7 @@ def decompile_functions(
704
705
  :param catch_errors: The structuring algorithms to use.
705
706
  :param show_casts: Whether to show casts in the decompiled output.
706
707
  :param base_address: The base address of the binary.
708
+ :param preset: The configuration preset to use during decompilation.
707
709
  :return: The decompilation of all functions appended in order.
708
710
  """
709
711
  # delayed imports to avoid circular imports
@@ -757,11 +759,11 @@ def decompile_functions(
757
759
 
758
760
  exception_string = ""
759
761
  if not catch_errors:
760
- dec = proj.analyses.Decompiler(f, cfg=cfg, options=dec_options)
762
+ dec = proj.analyses.Decompiler(f, cfg=cfg, options=dec_options, preset=preset)
761
763
  else:
762
764
  try:
763
765
  # TODO: add a timeout
764
- dec = proj.analyses.Decompiler(f, cfg=cfg, options=dec_options)
766
+ dec = proj.analyses.Decompiler(f, cfg=cfg, options=dec_options, preset=preset)
765
767
  except Exception as e:
766
768
  exception_string = str(e).replace("\n", " ")
767
769
  dec = None
@@ -10,16 +10,16 @@ from angr.knowledge_plugins import Function
10
10
 
11
11
  from . import Analysis
12
12
 
13
- from ..errors import AngrTypeError
14
- from ..utils.library import get_cpp_function_name
15
- from ..utils.formatting import ansi_color_enabled, ansi_color, add_edge_to_buffer
16
- from ..block import DisassemblerInsn, CapstoneInsn, SootBlockNode
17
- from ..codenode import BlockNode
13
+ from angr.errors import AngrTypeError
14
+ from angr.utils.library import get_cpp_function_name
15
+ from angr.utils.formatting import ansi_color_enabled, ansi_color, add_edge_to_buffer
16
+ from angr.block import DisassemblerInsn, CapstoneInsn, SootBlockNode
17
+ from angr.codenode import BlockNode
18
18
  from .disassembly_utils import decode_instruction
19
19
  import contextlib
20
20
 
21
21
  try:
22
- from ..engines import pcode
22
+ from angr.engines import pcode
23
23
  import pypcode
24
24
 
25
25
  IRSBType = Union[pyvex.IRSB, pcode.lifter.IRSB]
@@ -5,7 +5,7 @@ import logging
5
5
  import capstone as cs
6
6
  from archinfo.arch_arm import is_arm_arch
7
7
 
8
- from ..misc.ux import once
8
+ from angr.misc.ux import once
9
9
 
10
10
  l = logging.getLogger(name=__name__)
11
11
 
@@ -1,5 +1,5 @@
1
1
  from __future__ import annotations
2
- from ..utils.graph import compute_dominance_frontier, Dominators
2
+ from angr.utils.graph import compute_dominance_frontier, Dominators
3
3
  from .analysis import Analysis
4
4
  from . import register_analysis
5
5
 
@@ -4,11 +4,11 @@ from collections import defaultdict
4
4
 
5
5
  import claripy
6
6
 
7
- from ..analyses import AnalysesHub
8
- from ..analyses.reaching_definitions.function_handler import FunctionHandler
9
- from ..knowledge_plugins.key_definitions.atoms import Register, MemoryLocation
10
- from ..storage.memory_mixins.paged_memory.pages.multi_values import MultiValues
11
- from ..knowledge_plugins.key_definitions.constants import OP_BEFORE, OP_AFTER
7
+ from angr.analyses import AnalysesHub
8
+ from angr.analyses.reaching_definitions.function_handler import FunctionHandler
9
+ from angr.knowledge_plugins.key_definitions.atoms import Register, MemoryLocation
10
+ from angr.storage.memory_mixins.paged_memory.pages.multi_values import MultiValues
11
+ from angr.knowledge_plugins.key_definitions.constants import OP_BEFORE, OP_AFTER
12
12
  from . import Analysis, VtableFinder, CFGFast, ReachingDefinitionsAnalysis
13
13
 
14
14
  if TYPE_CHECKING:
angr/analyses/flirt.py CHANGED
@@ -7,9 +7,9 @@ import logging
7
7
  import nampa
8
8
  from archinfo.arch_arm import is_arm_arch
9
9
 
10
- from ..analyses import AnalysesHub
11
- from ..errors import AngrRuntimeError
12
- from ..flirt import FlirtSignature, STRING_TO_LIBRARIES, LIBRARY_TO_SIGNATURES, FLIRT_SIGNATURES_BY_ARCH
10
+ from angr.analyses import AnalysesHub
11
+ from angr.errors import AngrRuntimeError
12
+ from angr.flirt import FlirtSignature, STRING_TO_LIBRARIES, LIBRARY_TO_SIGNATURES, FLIRT_SIGNATURES_BY_ARCH
13
13
  from .analysis import Analysis
14
14
  import contextlib
15
15
 
@@ -1,3 +1,12 @@
1
1
  from __future__ import annotations
2
+
2
3
  from .forward_analysis import ForwardAnalysis
3
4
  from .visitors import CallGraphVisitor, FunctionGraphVisitor, LoopVisitor, SingleNodeGraphVisitor
5
+
6
+ __all__ = (
7
+ "ForwardAnalysis",
8
+ "CallGraphVisitor",
9
+ "FunctionGraphVisitor",
10
+ "LoopVisitor",
11
+ "SingleNodeGraphVisitor",
12
+ )
@@ -6,10 +6,10 @@ from collections.abc import Callable
6
6
  import networkx
7
7
 
8
8
  from .visitors.graph import NodeType
9
- from ...sim_state import SimState
10
- from ...errors import AngrForwardAnalysisError
11
- from ...errors import AngrSkipJobNotice, AngrDelayJobNotice, AngrJobMergingFailureNotice, AngrJobWideningFailureNotice
12
- from ...utils.algo import binary_insert
9
+ from angr.sim_state import SimState
10
+ from angr.errors import AngrForwardAnalysisError
11
+ from angr.errors import AngrSkipJobNotice, AngrDelayJobNotice, AngrJobMergingFailureNotice, AngrJobWideningFailureNotice
12
+ from angr.utils.algo import binary_insert
13
13
  from .job_info import JobInfo, JobType, JobKey
14
14
 
15
15
  if TYPE_CHECKING:
@@ -20,7 +20,7 @@ class JobInfo(Generic[JobType, JobKey]):
20
20
  return hash((self.key, *tuple(self.jobs)))
21
21
 
22
22
  def __eq__(self, o):
23
- return type(self) == type(o) and self.key == o.key and self.job == o.job
23
+ return type(self) is type(o) and self.key == o.key and self.job == o.job
24
24
 
25
25
  def __repr__(self):
26
26
  return f"<JobInfo {self.key!s}>"
@@ -1,5 +1,14 @@
1
1
  from __future__ import annotations
2
+
2
3
  from .call_graph import CallGraphVisitor
3
4
  from .function_graph import FunctionGraphVisitor
4
5
  from .loop import LoopVisitor
5
6
  from .single_node_graph import SingleNodeGraphVisitor
7
+
8
+
9
+ __all__ = (
10
+ "CallGraphVisitor",
11
+ "FunctionGraphVisitor",
12
+ "LoopVisitor",
13
+ "SingleNodeGraphVisitor",
14
+ )
@@ -3,8 +3,8 @@ from typing import TypeVar, Generic
3
3
  from collections.abc import Collection, Iterator
4
4
  from collections import defaultdict
5
5
 
6
- from ....misc.ux import deprecated
7
- from ....utils.algo import binary_insert
6
+ from angr.misc.ux import deprecated
7
+ from angr.utils.algo import binary_insert
8
8
 
9
9
  NodeType = TypeVar("NodeType")
10
10
 
@@ -1,2 +1,5 @@
1
1
  from __future__ import annotations
2
+
2
3
  from .identify import Identifier
4
+
5
+ __all__ = ("Identifier",)