angr 9.2.119__py3-none-manylinux2014_aarch64.whl → 9.2.120__py3-none-manylinux2014_aarch64.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 (817) 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 +8 -8
  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 +1 -1
  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 +8 -8
  37. angr/analyses/decompiler/block_simplifier.py +3 -3
  38. angr/analyses/decompiler/callsite_maker.py +5 -3
  39. angr/analyses/decompiler/clinic.py +25 -26
  40. angr/analyses/decompiler/condition_processor.py +7 -5
  41. angr/analyses/decompiler/counters/__init__.py +11 -0
  42. angr/analyses/decompiler/decompiler.py +24 -10
  43. angr/analyses/decompiler/dephication/seqnode_dephication.py +19 -1
  44. angr/analyses/decompiler/optimization_passes/__init__.py +66 -54
  45. angr/analyses/decompiler/optimization_passes/const_derefs.py +1 -1
  46. angr/analyses/decompiler/optimization_passes/const_prop_reverter.py +3 -3
  47. angr/analyses/decompiler/optimization_passes/cross_jump_reverter.py +1 -1
  48. angr/analyses/decompiler/optimization_passes/duplication_reverter/__init__.py +3 -0
  49. angr/analyses/decompiler/optimization_passes/duplication_reverter/duplication_reverter.py +7 -7
  50. angr/analyses/decompiler/optimization_passes/duplication_reverter/similarity.py +1 -1
  51. angr/analyses/decompiler/optimization_passes/duplication_reverter/utils.py +1 -1
  52. angr/analyses/decompiler/optimization_passes/engine_base.py +2 -2
  53. angr/analyses/decompiler/optimization_passes/expr_op_swapper.py +2 -2
  54. angr/analyses/decompiler/optimization_passes/flip_boolean_cmp.py +4 -4
  55. angr/analyses/decompiler/optimization_passes/ite_expr_converter.py +6 -6
  56. angr/analyses/decompiler/optimization_passes/ite_region_converter.py +2 -2
  57. angr/analyses/decompiler/optimization_passes/lowered_switch_simplifier.py +7 -3
  58. angr/analyses/decompiler/optimization_passes/optimization_pass.py +34 -28
  59. angr/analyses/decompiler/optimization_passes/register_save_area_simplifier.py +2 -2
  60. angr/analyses/decompiler/optimization_passes/ret_addr_save_simplifier.py +1 -1
  61. angr/analyses/decompiler/optimization_passes/ret_deduplicator.py +3 -3
  62. angr/analyses/decompiler/optimization_passes/return_duplicator_base.py +5 -5
  63. angr/analyses/decompiler/optimization_passes/return_duplicator_high.py +1 -1
  64. angr/analyses/decompiler/peephole_optimizations/__init__.py +61 -19
  65. angr/analyses/decompiler/peephole_optimizations/simplify_pc_relative_loads.py +1 -1
  66. angr/analyses/decompiler/presets/__init__.py +20 -0
  67. angr/analyses/decompiler/presets/basic.py +30 -0
  68. angr/analyses/decompiler/presets/fast.py +54 -0
  69. angr/analyses/decompiler/presets/full.py +64 -0
  70. angr/analyses/decompiler/presets/preset.py +37 -0
  71. angr/analyses/decompiler/region_identifier.py +21 -7
  72. angr/analyses/decompiler/region_simplifiers/__init__.py +3 -0
  73. angr/analyses/decompiler/region_simplifiers/cascading_cond_transformer.py +3 -3
  74. angr/analyses/decompiler/region_simplifiers/cascading_ifs.py +3 -3
  75. angr/analyses/decompiler/region_simplifiers/expr_folding.py +2 -2
  76. angr/analyses/decompiler/region_simplifiers/goto.py +3 -3
  77. angr/analyses/decompiler/region_simplifiers/if_.py +2 -2
  78. angr/analyses/decompiler/region_simplifiers/ifelse.py +4 -4
  79. angr/analyses/decompiler/region_simplifiers/loop.py +4 -4
  80. angr/analyses/decompiler/region_simplifiers/node_address_finder.py +1 -1
  81. angr/analyses/decompiler/region_simplifiers/region_simplifier.py +6 -6
  82. angr/analyses/decompiler/region_simplifiers/switch_cluster_simplifier.py +12 -5
  83. angr/analyses/decompiler/region_simplifiers/switch_expr_simplifier.py +3 -3
  84. angr/analyses/decompiler/sequence_walker.py +11 -12
  85. angr/analyses/decompiler/structured_codegen/__init__.py +14 -0
  86. angr/analyses/decompiler/structured_codegen/base.py +1 -1
  87. angr/analyses/decompiler/structured_codegen/c.py +13 -13
  88. angr/analyses/decompiler/structured_codegen/dwarf_import.py +2 -2
  89. angr/analyses/decompiler/structuring/__init__.py +11 -1
  90. angr/analyses/decompiler/structuring/dream.py +8 -8
  91. angr/analyses/decompiler/structuring/phoenix.py +6 -6
  92. angr/analyses/decompiler/structuring/recursive_structurer.py +7 -7
  93. angr/analyses/decompiler/structuring/sailr.py +2 -2
  94. angr/analyses/decompiler/structuring/structurer_base.py +9 -4
  95. angr/analyses/decompiler/structuring/structurer_nodes.py +18 -9
  96. angr/analyses/decompiler/utils.py +4 -2
  97. angr/analyses/disassembly.py +6 -6
  98. angr/analyses/disassembly_utils.py +1 -1
  99. angr/analyses/dominance_frontier.py +1 -1
  100. angr/analyses/find_objects_static.py +5 -5
  101. angr/analyses/flirt.py +3 -3
  102. angr/analyses/forward_analysis/__init__.py +9 -0
  103. angr/analyses/forward_analysis/forward_analysis.py +4 -4
  104. angr/analyses/forward_analysis/job_info.py +1 -1
  105. angr/analyses/forward_analysis/visitors/__init__.py +9 -0
  106. angr/analyses/forward_analysis/visitors/graph.py +2 -2
  107. angr/analyses/identifier/__init__.py +3 -0
  108. angr/analyses/identifier/custom_callable.py +2 -3
  109. angr/analyses/identifier/errors.py +1 -1
  110. angr/analyses/identifier/functions/__init__.py +4 -4
  111. angr/analyses/identifier/functions/atoi.py +1 -1
  112. angr/analyses/identifier/functions/based_atoi.py +1 -1
  113. angr/analyses/identifier/functions/fdprintf.py +1 -1
  114. angr/analyses/identifier/functions/free.py +2 -2
  115. angr/analyses/identifier/functions/int2str.py +1 -1
  116. angr/analyses/identifier/functions/malloc.py +2 -2
  117. angr/analyses/identifier/functions/memcmp.py +1 -1
  118. angr/analyses/identifier/functions/memcpy.py +3 -3
  119. angr/analyses/identifier/functions/memset.py +1 -1
  120. angr/analyses/identifier/functions/printf.py +1 -1
  121. angr/analyses/identifier/functions/recv_until.py +2 -2
  122. angr/analyses/identifier/functions/skip_calloc.py +2 -2
  123. angr/analyses/identifier/functions/skip_realloc.py +2 -2
  124. angr/analyses/identifier/functions/skip_recv_n.py +1 -1
  125. angr/analyses/identifier/functions/snprintf.py +1 -1
  126. angr/analyses/identifier/functions/sprintf.py +1 -1
  127. angr/analyses/identifier/functions/strcmp.py +1 -1
  128. angr/analyses/identifier/functions/strcpy.py +1 -1
  129. angr/analyses/identifier/functions/strlen.py +1 -1
  130. angr/analyses/identifier/functions/strncmp.py +1 -1
  131. angr/analyses/identifier/functions/strncpy.py +1 -1
  132. angr/analyses/identifier/functions/strtol.py +1 -1
  133. angr/analyses/identifier/identify.py +3 -3
  134. angr/analyses/identifier/runner.py +6 -6
  135. angr/analyses/init_finder.py +1 -1
  136. angr/analyses/loop_analysis.py +2 -2
  137. angr/analyses/propagator/__init__.py +3 -0
  138. angr/analyses/propagator/engine_ail.py +4 -4
  139. angr/analyses/propagator/engine_base.py +2 -2
  140. angr/analyses/propagator/engine_vex.py +2 -2
  141. angr/analyses/propagator/outdated_definition_walker.py +3 -3
  142. angr/analyses/propagator/propagator.py +3 -3
  143. angr/analyses/propagator/top_checker_mixin.py +1 -1
  144. angr/analyses/proximity_graph.py +3 -3
  145. angr/analyses/reaching_definitions/__init__.py +6 -6
  146. angr/analyses/reaching_definitions/dep_graph.py +5 -5
  147. angr/analyses/reaching_definitions/engine_ail.py +8 -8
  148. angr/analyses/reaching_definitions/engine_vex.py +18 -13
  149. angr/analyses/reaching_definitions/heap_allocator.py +3 -3
  150. angr/analyses/reaching_definitions/rd_state.py +4 -10
  151. angr/analyses/reaching_definitions/reaching_definitions.py +11 -11
  152. angr/analyses/reaching_definitions/subject.py +3 -3
  153. angr/analyses/reassembler.py +5 -5
  154. angr/analyses/{s_propagator/s_propagator.py → s_propagator.py} +1 -1
  155. angr/analyses/s_reaching_definitions/__init__.py +11 -1
  156. angr/analyses/s_reaching_definitions/s_rda_model.py +117 -0
  157. angr/analyses/s_reaching_definitions/s_rda_view.py +213 -0
  158. angr/analyses/s_reaching_definitions/s_reaching_definitions.py +159 -0
  159. angr/analyses/stack_pointer_tracker.py +5 -5
  160. angr/analyses/static_hooker.py +2 -2
  161. angr/analyses/typehoon/__init__.py +3 -0
  162. angr/analyses/typehoon/lifter.py +1 -1
  163. angr/analyses/typehoon/translator.py +2 -2
  164. angr/analyses/typehoon/typehoon.py +3 -3
  165. angr/analyses/variable_recovery/__init__.py +6 -0
  166. angr/analyses/variable_recovery/engine_ail.py +5 -5
  167. angr/analyses/variable_recovery/engine_base.py +7 -7
  168. angr/analyses/variable_recovery/engine_vex.py +7 -7
  169. angr/analyses/variable_recovery/variable_recovery.py +5 -5
  170. angr/analyses/variable_recovery/variable_recovery_base.py +7 -7
  171. angr/analyses/variable_recovery/variable_recovery_fast.py +7 -7
  172. angr/analyses/veritesting.py +8 -8
  173. angr/analyses/vfg.py +13 -13
  174. angr/analyses/vsa_ddg.py +3 -3
  175. angr/analyses/vtable.py +1 -1
  176. angr/analyses/xrefs.py +3 -3
  177. angr/angrdb/__init__.py +3 -0
  178. angr/angrdb/db.py +2 -2
  179. angr/angrdb/serializers/__init__.py +7 -0
  180. angr/angrdb/serializers/cfg_model.py +2 -2
  181. angr/angrdb/serializers/comments.py +2 -2
  182. angr/angrdb/serializers/funcs.py +2 -2
  183. angr/angrdb/serializers/kb.py +2 -2
  184. angr/angrdb/serializers/labels.py +2 -2
  185. angr/angrdb/serializers/loader.py +2 -2
  186. angr/angrdb/serializers/structured_code.py +4 -4
  187. angr/angrdb/serializers/variables.py +3 -3
  188. angr/angrdb/serializers/xrefs.py +2 -2
  189. angr/concretization_strategies/__init__.py +17 -0
  190. angr/concretization_strategies/max.py +1 -1
  191. angr/concretization_strategies/norepeats_range.py +1 -1
  192. angr/distributed/__init__.py +6 -1
  193. angr/distributed/server.py +0 -1
  194. angr/distributed/worker.py +6 -4
  195. angr/engines/__init__.py +25 -0
  196. angr/engines/concrete.py +1 -2
  197. angr/engines/engine.py +3 -3
  198. angr/engines/failure.py +2 -2
  199. angr/engines/light/__init__.py +12 -0
  200. angr/engines/light/data.py +1 -1
  201. angr/engines/light/engine.py +6 -6
  202. angr/engines/pcode/__init__.py +7 -1
  203. angr/engines/pcode/behavior.py +1 -1
  204. angr/engines/pcode/cc.py +1 -1
  205. angr/engines/pcode/emulate.py +4 -4
  206. angr/engines/pcode/engine.py +3 -3
  207. angr/engines/pcode/lifter.py +7 -7
  208. angr/engines/procedure.py +3 -3
  209. angr/engines/soot/__init__.py +3 -0
  210. angr/engines/soot/engine.py +8 -8
  211. angr/engines/soot/expressions/__init__.py +33 -0
  212. angr/engines/soot/expressions/arrayref.py +1 -1
  213. angr/engines/soot/expressions/base.py +1 -1
  214. angr/engines/soot/expressions/cast.py +1 -1
  215. angr/engines/soot/expressions/condition.py +1 -1
  216. angr/engines/soot/expressions/constants.py +1 -1
  217. angr/engines/soot/expressions/invoke.py +2 -2
  218. angr/engines/soot/expressions/new.py +1 -1
  219. angr/engines/soot/expressions/newArray.py +1 -1
  220. angr/engines/soot/expressions/newMultiArray.py +1 -1
  221. angr/engines/soot/statements/__init__.py +16 -0
  222. angr/engines/soot/statements/assign.py +1 -1
  223. angr/engines/soot/statements/base.py +3 -3
  224. angr/engines/soot/values/__init__.py +14 -0
  225. angr/engines/soot/values/arrayref.py +1 -1
  226. angr/engines/soot/values/instancefieldref.py +1 -1
  227. angr/engines/soot/values/staticfieldref.py +1 -1
  228. angr/engines/soot/values/thisref.py +2 -2
  229. angr/engines/successors.py +7 -7
  230. angr/engines/syscall.py +1 -1
  231. angr/engines/unicorn.py +11 -11
  232. angr/engines/vex/__init__.py +18 -3
  233. angr/engines/vex/claripy/__init__.py +3 -0
  234. angr/engines/vex/claripy/ccall.py +1 -2
  235. angr/engines/vex/claripy/datalayer.py +3 -3
  236. angr/engines/vex/heavy/__init__.py +11 -1
  237. angr/engines/vex/heavy/heavy.py +6 -6
  238. angr/engines/vex/heavy/inspect.py +2 -2
  239. angr/engines/vex/heavy/resilience.py +2 -2
  240. angr/engines/vex/heavy/super_fastpath.py +3 -3
  241. angr/engines/vex/lifter.py +5 -5
  242. angr/engines/vex/light/__init__.py +7 -0
  243. angr/engines/vex/light/light.py +2 -2
  244. angr/engines/vex/light/slicing.py +1 -1
  245. angr/errors.py +0 -4
  246. angr/exploration_techniques/__init__.py +0 -1
  247. angr/exploration_techniques/bucketizer.py +9 -10
  248. angr/exploration_techniques/common.py +2 -2
  249. angr/exploration_techniques/director.py +4 -4
  250. angr/exploration_techniques/explorer.py +3 -3
  251. angr/exploration_techniques/loop_seer.py +3 -3
  252. angr/exploration_techniques/oppologist.py +3 -3
  253. angr/exploration_techniques/slicecutor.py +1 -1
  254. angr/exploration_techniques/spiller.py +1 -1
  255. angr/exploration_techniques/suggestions.py +4 -4
  256. angr/exploration_techniques/symbion.py +0 -1
  257. angr/exploration_techniques/threading.py +2 -2
  258. angr/exploration_techniques/tracer.py +3 -3
  259. angr/exploration_techniques/veritesting.py +1 -1
  260. angr/flirt/__init__.py +0 -1
  261. angr/{knowledge_base/knowledge_base.py → knowledge_base.py} +13 -15
  262. angr/knowledge_plugins/__init__.py +23 -1
  263. angr/knowledge_plugins/callsite_prototypes.py +2 -2
  264. angr/knowledge_plugins/cfg/cfg_manager.py +1 -1
  265. angr/knowledge_plugins/cfg/cfg_model.py +6 -6
  266. angr/knowledge_plugins/cfg/indirect_jump.py +1 -1
  267. angr/knowledge_plugins/cfg/memory_data.py +2 -2
  268. angr/knowledge_plugins/debug_variables.py +2 -2
  269. angr/knowledge_plugins/functions/__init__.py +6 -0
  270. angr/knowledge_plugins/functions/function.py +21 -16
  271. angr/knowledge_plugins/functions/function_manager.py +2 -2
  272. angr/knowledge_plugins/functions/function_parser.py +3 -3
  273. angr/knowledge_plugins/functions/soot_function.py +2 -2
  274. angr/knowledge_plugins/key_definitions/atoms.py +2 -2
  275. angr/knowledge_plugins/key_definitions/definition.py +3 -3
  276. angr/knowledge_plugins/key_definitions/key_definition_manager.py +2 -2
  277. angr/knowledge_plugins/key_definitions/uses.py +2 -2
  278. angr/knowledge_plugins/propagations/__init__.py +7 -0
  279. angr/knowledge_plugins/propagations/prop_value.py +1 -1
  280. angr/knowledge_plugins/{structured_code/manager.py → structured_code.py} +6 -3
  281. angr/knowledge_plugins/types.py +1 -1
  282. angr/knowledge_plugins/variables/__init__.py +6 -0
  283. angr/knowledge_plugins/variables/variable_access.py +3 -3
  284. angr/knowledge_plugins/variables/variable_manager.py +7 -7
  285. angr/knowledge_plugins/xrefs/__init__.py +9 -1
  286. angr/knowledge_plugins/xrefs/xref.py +5 -5
  287. angr/knowledge_plugins/xrefs/xref_manager.py +3 -3
  288. angr/misc/__init__.py +12 -2
  289. angr/misc/loggers.py +2 -2
  290. angr/procedures/__init__.py +9 -0
  291. angr/procedures/cgc/receive.py +2 -2
  292. angr/procedures/cgc/transmit.py +1 -1
  293. angr/procedures/definitions/__init__.py +8 -8
  294. angr/procedures/definitions/cgc.py +1 -1
  295. angr/procedures/definitions/glibc.py +2 -15
  296. angr/procedures/definitions/gnulib.py +2 -6
  297. angr/procedures/definitions/libstdcpp.py +2 -2
  298. angr/procedures/definitions/linux_kernel.py +2 -3
  299. angr/procedures/definitions/linux_loader.py +1 -1
  300. angr/procedures/definitions/msvcr.py +2 -2
  301. angr/procedures/definitions/wdk_api-ms-win-dx-d3dkmt-l1-1-4.py +3 -18
  302. angr/procedures/definitions/wdk_api-ms-win-dx-d3dkmt-l1-1-6.py +3 -18
  303. angr/procedures/definitions/wdk_clfs.py +3 -18
  304. angr/procedures/definitions/wdk_fltmgr.py +3 -18
  305. angr/procedures/definitions/wdk_fwpkclnt.py +3 -18
  306. angr/procedures/definitions/wdk_fwpuclnt.py +3 -18
  307. angr/procedures/definitions/wdk_gdi32.py +3 -18
  308. angr/procedures/definitions/wdk_hal.py +3 -18
  309. angr/procedures/definitions/wdk_ksecdd.py +3 -18
  310. angr/procedures/definitions/wdk_ndis.py +3 -18
  311. angr/procedures/definitions/wdk_ntoskrnl.py +3 -18
  312. angr/procedures/definitions/wdk_offreg.py +3 -18
  313. angr/procedures/definitions/wdk_pshed.py +3 -18
  314. angr/procedures/definitions/wdk_secur32.py +3 -18
  315. angr/procedures/definitions/wdk_vhfum.py +3 -18
  316. angr/procedures/definitions/win32_aclui.py +3 -18
  317. angr/procedures/definitions/win32_activeds.py +3 -18
  318. angr/procedures/definitions/win32_advapi32.py +3 -18
  319. angr/procedures/definitions/win32_advpack.py +3 -18
  320. angr/procedures/definitions/win32_amsi.py +3 -18
  321. angr/procedures/definitions/win32_api-ms-win-appmodel-runtime-l1-1-1.py +3 -18
  322. angr/procedures/definitions/win32_api-ms-win-appmodel-runtime-l1-1-3.py +3 -18
  323. angr/procedures/definitions/win32_api-ms-win-appmodel-runtime-l1-1-6.py +3 -18
  324. angr/procedures/definitions/win32_api-ms-win-core-apiquery-l2-1-0.py +3 -18
  325. angr/procedures/definitions/win32_api-ms-win-core-backgroundtask-l1-1-0.py +3 -18
  326. angr/procedures/definitions/win32_api-ms-win-core-comm-l1-1-1.py +3 -18
  327. angr/procedures/definitions/win32_api-ms-win-core-comm-l1-1-2.py +3 -18
  328. angr/procedures/definitions/win32_api-ms-win-core-enclave-l1-1-1.py +3 -18
  329. angr/procedures/definitions/win32_api-ms-win-core-errorhandling-l1-1-3.py +3 -18
  330. angr/procedures/definitions/win32_api-ms-win-core-featurestaging-l1-1-0.py +3 -18
  331. angr/procedures/definitions/win32_api-ms-win-core-featurestaging-l1-1-1.py +3 -18
  332. angr/procedures/definitions/win32_api-ms-win-core-file-fromapp-l1-1-0.py +3 -18
  333. angr/procedures/definitions/win32_api-ms-win-core-handle-l1-1-0.py +3 -18
  334. angr/procedures/definitions/win32_api-ms-win-core-ioring-l1-1-0.py +3 -18
  335. angr/procedures/definitions/win32_api-ms-win-core-marshal-l1-1-0.py +3 -18
  336. angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-3.py +3 -18
  337. angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-4.py +3 -18
  338. angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-5.py +3 -18
  339. angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-6.py +3 -18
  340. angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-7.py +3 -18
  341. angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-8.py +3 -18
  342. angr/procedures/definitions/win32_api-ms-win-core-path-l1-1-0.py +3 -18
  343. angr/procedures/definitions/win32_api-ms-win-core-psm-appnotify-l1-1-0.py +3 -18
  344. angr/procedures/definitions/win32_api-ms-win-core-psm-appnotify-l1-1-1.py +3 -18
  345. angr/procedures/definitions/win32_api-ms-win-core-realtime-l1-1-1.py +3 -18
  346. angr/procedures/definitions/win32_api-ms-win-core-realtime-l1-1-2.py +3 -18
  347. angr/procedures/definitions/win32_api-ms-win-core-slapi-l1-1-0.py +3 -18
  348. angr/procedures/definitions/win32_api-ms-win-core-state-helpers-l1-1-0.py +3 -18
  349. angr/procedures/definitions/win32_api-ms-win-core-synch-l1-2-0.py +3 -18
  350. angr/procedures/definitions/win32_api-ms-win-core-sysinfo-l1-2-0.py +3 -18
  351. angr/procedures/definitions/win32_api-ms-win-core-sysinfo-l1-2-3.py +3 -18
  352. angr/procedures/definitions/win32_api-ms-win-core-sysinfo-l1-2-4.py +3 -18
  353. angr/procedures/definitions/win32_api-ms-win-core-sysinfo-l1-2-6.py +3 -18
  354. angr/procedures/definitions/win32_api-ms-win-core-util-l1-1-1.py +3 -18
  355. angr/procedures/definitions/win32_api-ms-win-core-winrt-error-l1-1-0.py +3 -3
  356. angr/procedures/definitions/win32_api-ms-win-core-winrt-error-l1-1-1.py +3 -3
  357. angr/procedures/definitions/win32_api-ms-win-core-winrt-l1-1-0.py +3 -3
  358. angr/procedures/definitions/win32_api-ms-win-core-winrt-registration-l1-1-0.py +3 -3
  359. angr/procedures/definitions/win32_api-ms-win-core-winrt-robuffer-l1-1-0.py +3 -3
  360. angr/procedures/definitions/win32_api-ms-win-core-winrt-roparameterizediid-l1-1-0.py +3 -3
  361. angr/procedures/definitions/win32_api-ms-win-core-winrt-string-l1-1-0.py +3 -3
  362. angr/procedures/definitions/win32_api-ms-win-core-winrt-string-l1-1-1.py +3 -3
  363. angr/procedures/definitions/win32_api-ms-win-core-wow64-l1-1-1.py +3 -18
  364. angr/procedures/definitions/win32_api-ms-win-devices-query-l1-1-0.py +3 -18
  365. angr/procedures/definitions/win32_api-ms-win-devices-query-l1-1-1.py +3 -18
  366. angr/procedures/definitions/win32_api-ms-win-dx-d3dkmt-l1-1-0.py +3 -18
  367. angr/procedures/definitions/win32_api-ms-win-gaming-deviceinformation-l1-1-0.py +3 -18
  368. angr/procedures/definitions/win32_api-ms-win-gaming-expandedresources-l1-1-0.py +3 -18
  369. angr/procedures/definitions/win32_api-ms-win-gaming-tcui-l1-1-0.py +3 -18
  370. angr/procedures/definitions/win32_api-ms-win-gaming-tcui-l1-1-1.py +3 -18
  371. angr/procedures/definitions/win32_api-ms-win-gaming-tcui-l1-1-2.py +3 -18
  372. angr/procedures/definitions/win32_api-ms-win-gaming-tcui-l1-1-3.py +3 -18
  373. angr/procedures/definitions/win32_api-ms-win-gaming-tcui-l1-1-4.py +3 -18
  374. angr/procedures/definitions/win32_api-ms-win-mm-misc-l1-1-1.py +3 -18
  375. angr/procedures/definitions/win32_api-ms-win-net-isolation-l1-1-0.py +3 -18
  376. angr/procedures/definitions/win32_api-ms-win-security-base-l1-2-2.py +3 -18
  377. angr/procedures/definitions/win32_api-ms-win-security-isolatedcontainer-l1-1-0.py +3 -18
  378. angr/procedures/definitions/win32_api-ms-win-security-isolatedcontainer-l1-1-1.py +3 -18
  379. angr/procedures/definitions/win32_api-ms-win-service-core-l1-1-3.py +3 -18
  380. angr/procedures/definitions/win32_api-ms-win-service-core-l1-1-4.py +3 -18
  381. angr/procedures/definitions/win32_api-ms-win-service-core-l1-1-5.py +3 -18
  382. angr/procedures/definitions/win32_api-ms-win-shcore-scaling-l1-1-0.py +3 -18
  383. angr/procedures/definitions/win32_api-ms-win-shcore-scaling-l1-1-1.py +3 -18
  384. angr/procedures/definitions/win32_api-ms-win-shcore-scaling-l1-1-2.py +3 -18
  385. angr/procedures/definitions/win32_api-ms-win-shcore-stream-winrt-l1-1-0.py +3 -3
  386. angr/procedures/definitions/win32_api-ms-win-wsl-api-l1-1-0.py +3 -18
  387. angr/procedures/definitions/win32_apphelp.py +3 -18
  388. angr/procedures/definitions/win32_authz.py +3 -18
  389. angr/procedures/definitions/win32_avicap32.py +3 -18
  390. angr/procedures/definitions/win32_avifil32.py +3 -18
  391. angr/procedures/definitions/win32_avrt.py +3 -18
  392. angr/procedures/definitions/win32_bcp47mrm.py +3 -18
  393. angr/procedures/definitions/win32_bcrypt.py +3 -18
  394. angr/procedures/definitions/win32_bcryptprimitives.py +3 -18
  395. angr/procedures/definitions/win32_bluetoothapis.py +3 -18
  396. angr/procedures/definitions/win32_bthprops.py +3 -3
  397. angr/procedures/definitions/win32_bthprops_cpl.py +3 -18
  398. angr/procedures/definitions/win32_cabinet.py +3 -18
  399. angr/procedures/definitions/win32_certadm.py +3 -18
  400. angr/procedures/definitions/win32_certpoleng.py +3 -18
  401. angr/procedures/definitions/win32_cfgmgr32.py +3 -18
  402. angr/procedures/definitions/win32_chakra.py +3 -18
  403. angr/procedures/definitions/win32_cldapi.py +3 -18
  404. angr/procedures/definitions/win32_clfsw32.py +3 -18
  405. angr/procedures/definitions/win32_clusapi.py +3 -18
  406. angr/procedures/definitions/win32_comctl32.py +3 -18
  407. angr/procedures/definitions/win32_comdlg32.py +3 -18
  408. angr/procedures/definitions/win32_compstui.py +3 -18
  409. angr/procedures/definitions/win32_computecore.py +3 -18
  410. angr/procedures/definitions/win32_computenetwork.py +3 -18
  411. angr/procedures/definitions/win32_computestorage.py +3 -18
  412. angr/procedures/definitions/win32_comsvcs.py +3 -18
  413. angr/procedures/definitions/win32_coremessaging.py +3 -3
  414. angr/procedures/definitions/win32_credui.py +3 -18
  415. angr/procedures/definitions/win32_crypt32.py +3 -18
  416. angr/procedures/definitions/win32_cryptnet.py +3 -18
  417. angr/procedures/definitions/win32_cryptui.py +3 -18
  418. angr/procedures/definitions/win32_cryptxml.py +3 -18
  419. angr/procedures/definitions/win32_cscapi.py +3 -18
  420. angr/procedures/definitions/win32_d2d1.py +3 -18
  421. angr/procedures/definitions/win32_d3d10.py +3 -18
  422. angr/procedures/definitions/win32_d3d10_1.py +3 -18
  423. angr/procedures/definitions/win32_d3d11.py +3 -18
  424. angr/procedures/definitions/win32_d3d12.py +3 -18
  425. angr/procedures/definitions/win32_d3d9.py +3 -18
  426. angr/procedures/definitions/win32_d3dcompiler_47.py +3 -18
  427. angr/procedures/definitions/win32_d3dcsx.py +3 -18
  428. angr/procedures/definitions/win32_davclnt.py +3 -18
  429. angr/procedures/definitions/win32_dbgeng.py +3 -18
  430. angr/procedures/definitions/win32_dbghelp.py +3 -18
  431. angr/procedures/definitions/win32_dbgmodel.py +3 -18
  432. angr/procedures/definitions/win32_dciman32.py +3 -18
  433. angr/procedures/definitions/win32_dcomp.py +3 -18
  434. angr/procedures/definitions/win32_ddraw.py +3 -18
  435. angr/procedures/definitions/win32_deviceaccess.py +3 -18
  436. angr/procedures/definitions/win32_dflayout.py +3 -18
  437. angr/procedures/definitions/win32_dhcpcsvc.py +3 -18
  438. angr/procedures/definitions/win32_dhcpcsvc6.py +3 -18
  439. angr/procedures/definitions/win32_dhcpsapi.py +3 -18
  440. angr/procedures/definitions/win32_diagnosticdataquery.py +3 -18
  441. angr/procedures/definitions/win32_dinput8.py +3 -18
  442. angr/procedures/definitions/win32_directml.py +3 -18
  443. angr/procedures/definitions/win32_dmprocessxmlfiltered.py +3 -18
  444. angr/procedures/definitions/win32_dnsapi.py +3 -18
  445. angr/procedures/definitions/win32_drt.py +3 -18
  446. angr/procedures/definitions/win32_drtprov.py +3 -18
  447. angr/procedures/definitions/win32_drttransport.py +3 -18
  448. angr/procedures/definitions/win32_dsound.py +3 -18
  449. angr/procedures/definitions/win32_dsparse.py +3 -18
  450. angr/procedures/definitions/win32_dsprop.py +3 -18
  451. angr/procedures/definitions/win32_dssec.py +3 -18
  452. angr/procedures/definitions/win32_dsuiext.py +3 -18
  453. angr/procedures/definitions/win32_dwmapi.py +3 -18
  454. angr/procedures/definitions/win32_dwrite.py +3 -18
  455. angr/procedures/definitions/win32_dxcompiler.py +3 -18
  456. angr/procedures/definitions/win32_dxcore.py +3 -18
  457. angr/procedures/definitions/win32_dxgi.py +3 -18
  458. angr/procedures/definitions/win32_dxva2.py +3 -18
  459. angr/procedures/definitions/win32_eappcfg.py +3 -18
  460. angr/procedures/definitions/win32_eappprxy.py +3 -18
  461. angr/procedures/definitions/win32_efswrt.py +3 -18
  462. angr/procedures/definitions/win32_elscore.py +3 -18
  463. angr/procedures/definitions/win32_esent.py +3 -18
  464. angr/procedures/definitions/win32_evr.py +3 -18
  465. angr/procedures/definitions/win32_faultrep.py +3 -18
  466. angr/procedures/definitions/win32_fhsvcctl.py +3 -18
  467. angr/procedures/definitions/win32_firewallapi.py +3 -18
  468. angr/procedures/definitions/win32_fltlib.py +3 -18
  469. angr/procedures/definitions/win32_fontsub.py +3 -18
  470. angr/procedures/definitions/win32_forceinline.py +3 -18
  471. angr/procedures/definitions/win32_fwpuclnt.py +3 -18
  472. angr/procedures/definitions/win32_fxsutility.py +3 -18
  473. angr/procedures/definitions/win32_gdi32.py +3 -18
  474. angr/procedures/definitions/win32_gdiplus.py +3 -18
  475. angr/procedures/definitions/win32_glu32.py +3 -18
  476. angr/procedures/definitions/win32_gpedit.py +3 -18
  477. angr/procedures/definitions/win32_hhctrl_ocx.py +3 -18
  478. angr/procedures/definitions/win32_hid.py +3 -18
  479. angr/procedures/definitions/win32_hlink.py +3 -18
  480. angr/procedures/definitions/win32_hrtfapo.py +3 -18
  481. angr/procedures/definitions/win32_httpapi.py +3 -18
  482. angr/procedures/definitions/win32_icm32.py +3 -18
  483. angr/procedures/definitions/win32_icmui.py +3 -18
  484. angr/procedures/definitions/win32_icu.py +3 -18
  485. angr/procedures/definitions/win32_ieframe.py +3 -18
  486. angr/procedures/definitions/win32_imagehlp.py +3 -18
  487. angr/procedures/definitions/win32_imgutil.py +3 -18
  488. angr/procedures/definitions/win32_imm32.py +3 -18
  489. angr/procedures/definitions/win32_infocardapi.py +3 -18
  490. angr/procedures/definitions/win32_inkobjcore.py +3 -18
  491. angr/procedures/definitions/win32_iphlpapi.py +3 -18
  492. angr/procedures/definitions/win32_iscsidsc.py +3 -18
  493. angr/procedures/definitions/win32_isolatedwindowsenvironmentutils.py +3 -18
  494. angr/procedures/definitions/win32_kernel32.py +3 -18
  495. angr/procedures/definitions/win32_kernelbase.py +3 -18
  496. angr/procedures/definitions/win32_keycredmgr.py +3 -18
  497. angr/procedures/definitions/win32_ksproxy_ax.py +3 -18
  498. angr/procedures/definitions/win32_ksuser.py +3 -18
  499. angr/procedures/definitions/win32_ktmw32.py +3 -18
  500. angr/procedures/definitions/win32_licenseprotection.py +3 -18
  501. angr/procedures/definitions/win32_loadperf.py +3 -18
  502. angr/procedures/definitions/win32_magnification.py +3 -18
  503. angr/procedures/definitions/win32_mapi32.py +3 -18
  504. angr/procedures/definitions/win32_mdmlocalmanagement.py +3 -18
  505. angr/procedures/definitions/win32_mdmregistration.py +3 -18
  506. angr/procedures/definitions/win32_mf.py +3 -18
  507. angr/procedures/definitions/win32_mfcore.py +3 -18
  508. angr/procedures/definitions/win32_mfplat.py +3 -18
  509. angr/procedures/definitions/win32_mfplay.py +3 -18
  510. angr/procedures/definitions/win32_mfreadwrite.py +3 -18
  511. angr/procedures/definitions/win32_mfsensorgroup.py +3 -18
  512. angr/procedures/definitions/win32_mfsrcsnk.py +3 -18
  513. angr/procedures/definitions/win32_mgmtapi.py +3 -18
  514. angr/procedures/definitions/win32_mi.py +3 -18
  515. angr/procedures/definitions/win32_mmdevapi.py +3 -18
  516. angr/procedures/definitions/win32_mpr.py +3 -18
  517. angr/procedures/definitions/win32_mprapi.py +3 -18
  518. angr/procedures/definitions/win32_mqrt.py +3 -18
  519. angr/procedures/definitions/win32_mrmsupport.py +3 -18
  520. angr/procedures/definitions/win32_msacm32.py +3 -18
  521. angr/procedures/definitions/win32_msajapi.py +3 -18
  522. angr/procedures/definitions/win32_mscms.py +3 -18
  523. angr/procedures/definitions/win32_mscoree.py +3 -18
  524. angr/procedures/definitions/win32_msctfmonitor.py +3 -18
  525. angr/procedures/definitions/win32_msdelta.py +3 -18
  526. angr/procedures/definitions/win32_msdmo.py +3 -18
  527. angr/procedures/definitions/win32_msdrm.py +3 -18
  528. angr/procedures/definitions/win32_msi.py +3 -18
  529. angr/procedures/definitions/win32_msimg32.py +3 -18
  530. angr/procedures/definitions/win32_mspatcha.py +3 -18
  531. angr/procedures/definitions/win32_mspatchc.py +3 -18
  532. angr/procedures/definitions/win32_msports.py +3 -18
  533. angr/procedures/definitions/win32_msrating.py +3 -18
  534. angr/procedures/definitions/win32_mssign32.py +3 -18
  535. angr/procedures/definitions/win32_mstask.py +3 -18
  536. angr/procedures/definitions/win32_msvfw32.py +3 -18
  537. angr/procedures/definitions/win32_mswsock.py +3 -18
  538. angr/procedures/definitions/win32_mtxdm.py +3 -18
  539. angr/procedures/definitions/win32_ncrypt.py +3 -18
  540. angr/procedures/definitions/win32_ndfapi.py +3 -18
  541. angr/procedures/definitions/win32_netapi32.py +3 -18
  542. angr/procedures/definitions/win32_netsh.py +3 -18
  543. angr/procedures/definitions/win32_netshell.py +3 -18
  544. angr/procedures/definitions/win32_newdev.py +3 -18
  545. angr/procedures/definitions/win32_ninput.py +3 -18
  546. angr/procedures/definitions/win32_normaliz.py +3 -18
  547. angr/procedures/definitions/win32_ntdll.py +3 -18
  548. angr/procedures/definitions/win32_ntdllk.py +3 -18
  549. angr/procedures/definitions/win32_ntdsapi.py +3 -18
  550. angr/procedures/definitions/win32_ntlanman.py +3 -18
  551. angr/procedures/definitions/win32_odbc32.py +3 -18
  552. angr/procedures/definitions/win32_odbcbcp.py +3 -18
  553. angr/procedures/definitions/win32_ole32.py +3 -18
  554. angr/procedures/definitions/win32_oleacc.py +3 -18
  555. angr/procedures/definitions/win32_oleaut32.py +3 -18
  556. angr/procedures/definitions/win32_oledlg.py +3 -18
  557. angr/procedures/definitions/win32_ondemandconnroutehelper.py +3 -18
  558. angr/procedures/definitions/win32_opengl32.py +3 -18
  559. angr/procedures/definitions/win32_opmxbox.py +3 -18
  560. angr/procedures/definitions/win32_p2p.py +3 -18
  561. angr/procedures/definitions/win32_p2pgraph.py +3 -18
  562. angr/procedures/definitions/win32_pdh.py +3 -18
  563. angr/procedures/definitions/win32_peerdist.py +3 -18
  564. angr/procedures/definitions/win32_powrprof.py +3 -18
  565. angr/procedures/definitions/win32_prntvpt.py +3 -18
  566. angr/procedures/definitions/win32_projectedfslib.py +3 -18
  567. angr/procedures/definitions/win32_propsys.py +3 -18
  568. angr/procedures/definitions/win32_psapi.py +3 -18
  569. angr/procedures/definitions/win32_quartz.py +3 -18
  570. angr/procedures/definitions/win32_query.py +3 -18
  571. angr/procedures/definitions/win32_qwave.py +3 -18
  572. angr/procedures/definitions/win32_rasapi32.py +3 -18
  573. angr/procedures/definitions/win32_rasdlg.py +3 -18
  574. angr/procedures/definitions/win32_resutils.py +3 -18
  575. angr/procedures/definitions/win32_rometadata.py +3 -3
  576. angr/procedures/definitions/win32_rpcns4.py +3 -18
  577. angr/procedures/definitions/win32_rpcproxy.py +3 -18
  578. angr/procedures/definitions/win32_rpcrt4.py +3 -18
  579. angr/procedures/definitions/win32_rstrtmgr.py +3 -18
  580. angr/procedures/definitions/win32_rtm.py +3 -18
  581. angr/procedures/definitions/win32_rtutils.py +3 -18
  582. angr/procedures/definitions/win32_rtworkq.py +3 -18
  583. angr/procedures/definitions/win32_sas.py +3 -18
  584. angr/procedures/definitions/win32_scarddlg.py +3 -18
  585. angr/procedures/definitions/win32_schannel.py +3 -18
  586. angr/procedures/definitions/win32_sechost.py +3 -18
  587. angr/procedures/definitions/win32_secur32.py +3 -18
  588. angr/procedures/definitions/win32_sensapi.py +3 -18
  589. angr/procedures/definitions/win32_sensorsutilsv2.py +3 -18
  590. angr/procedures/definitions/win32_setupapi.py +3 -18
  591. angr/procedures/definitions/win32_sfc.py +3 -18
  592. angr/procedures/definitions/win32_shdocvw.py +3 -18
  593. angr/procedures/definitions/win32_shell32.py +3 -18
  594. angr/procedures/definitions/win32_shlwapi.py +3 -18
  595. angr/procedures/definitions/win32_slc.py +3 -18
  596. angr/procedures/definitions/win32_slcext.py +3 -18
  597. angr/procedures/definitions/win32_slwga.py +3 -18
  598. angr/procedures/definitions/win32_snmpapi.py +3 -18
  599. angr/procedures/definitions/win32_spoolss.py +3 -18
  600. angr/procedures/definitions/win32_srclient.py +3 -18
  601. angr/procedures/definitions/win32_srpapi.py +3 -18
  602. angr/procedures/definitions/win32_sspicli.py +3 -18
  603. angr/procedures/definitions/win32_sti.py +3 -18
  604. angr/procedures/definitions/win32_t2embed.py +3 -18
  605. angr/procedures/definitions/win32_tapi32.py +3 -18
  606. angr/procedures/definitions/win32_tbs.py +3 -18
  607. angr/procedures/definitions/win32_tdh.py +3 -18
  608. angr/procedures/definitions/win32_tokenbinding.py +3 -18
  609. angr/procedures/definitions/win32_traffic.py +3 -18
  610. angr/procedures/definitions/win32_txfw32.py +3 -18
  611. angr/procedures/definitions/win32_ualapi.py +3 -18
  612. angr/procedures/definitions/win32_uiautomationcore.py +3 -18
  613. angr/procedures/definitions/win32_urlmon.py +3 -18
  614. angr/procedures/definitions/win32_user32.py +4 -19
  615. angr/procedures/definitions/win32_userenv.py +3 -18
  616. angr/procedures/definitions/win32_usp10.py +3 -18
  617. angr/procedures/definitions/win32_uxtheme.py +3 -18
  618. angr/procedures/definitions/win32_verifier.py +3 -18
  619. angr/procedures/definitions/win32_version.py +3 -18
  620. angr/procedures/definitions/win32_vertdll.py +3 -18
  621. angr/procedures/definitions/win32_virtdisk.py +3 -18
  622. angr/procedures/definitions/win32_vmdevicehost.py +3 -18
  623. angr/procedures/definitions/win32_vmsavedstatedumpprovider.py +3 -18
  624. angr/procedures/definitions/win32_vssapi.py +3 -18
  625. angr/procedures/definitions/win32_wcmapi.py +3 -18
  626. angr/procedures/definitions/win32_wdsbp.py +3 -18
  627. angr/procedures/definitions/win32_wdsclientapi.py +3 -18
  628. angr/procedures/definitions/win32_wdsmc.py +3 -18
  629. angr/procedures/definitions/win32_wdspxe.py +3 -18
  630. angr/procedures/definitions/win32_wdstptc.py +3 -18
  631. angr/procedures/definitions/win32_webauthn.py +3 -18
  632. angr/procedures/definitions/win32_webservices.py +3 -18
  633. angr/procedures/definitions/win32_websocket.py +3 -18
  634. angr/procedures/definitions/win32_wecapi.py +3 -18
  635. angr/procedures/definitions/win32_wer.py +3 -18
  636. angr/procedures/definitions/win32_wevtapi.py +3 -18
  637. angr/procedures/definitions/win32_winbio.py +3 -18
  638. angr/procedures/definitions/win32_windows_ai_machinelearning.py +3 -18
  639. angr/procedures/definitions/win32_windows_data_pdf.py +3 -3
  640. angr/procedures/definitions/win32_windows_media_mediacontrol.py +3 -18
  641. angr/procedures/definitions/win32_windows_networking.py +3 -18
  642. angr/procedures/definitions/win32_windows_ui_xaml.py +3 -18
  643. angr/procedures/definitions/win32_windowscodecs.py +3 -18
  644. angr/procedures/definitions/win32_winfax.py +3 -18
  645. angr/procedures/definitions/win32_winhttp.py +3 -18
  646. angr/procedures/definitions/win32_winhvemulation.py +3 -18
  647. angr/procedures/definitions/win32_winhvplatform.py +3 -18
  648. angr/procedures/definitions/win32_wininet.py +3 -18
  649. angr/procedures/definitions/win32_winml.py +3 -18
  650. angr/procedures/definitions/win32_winmm.py +3 -18
  651. angr/procedures/definitions/win32_winscard.py +3 -18
  652. angr/procedures/definitions/win32_winspool.py +3 -3
  653. angr/procedures/definitions/win32_winspool_drv.py +3 -18
  654. angr/procedures/definitions/win32_wintrust.py +3 -18
  655. angr/procedures/definitions/win32_winusb.py +3 -18
  656. angr/procedures/definitions/win32_wlanapi.py +3 -18
  657. angr/procedures/definitions/win32_wlanui.py +3 -18
  658. angr/procedures/definitions/win32_wldap32.py +3 -18
  659. angr/procedures/definitions/win32_wldp.py +3 -18
  660. angr/procedures/definitions/win32_wmvcore.py +3 -18
  661. angr/procedures/definitions/win32_wnvapi.py +3 -18
  662. angr/procedures/definitions/win32_wofutil.py +3 -18
  663. angr/procedures/definitions/win32_ws2_32.py +3 -18
  664. angr/procedures/definitions/win32_wscapi.py +3 -18
  665. angr/procedures/definitions/win32_wsclient.py +3 -18
  666. angr/procedures/definitions/win32_wsdapi.py +3 -18
  667. angr/procedures/definitions/win32_wsmsvc.py +3 -18
  668. angr/procedures/definitions/win32_wsnmp32.py +3 -18
  669. angr/procedures/definitions/win32_wtsapi32.py +3 -18
  670. angr/procedures/definitions/win32_xaudio2_8.py +3 -18
  671. angr/procedures/definitions/win32_xinput1_4.py +3 -18
  672. angr/procedures/definitions/win32_xinputuap.py +3 -3
  673. angr/procedures/definitions/win32_xmllite.py +3 -18
  674. angr/procedures/definitions/win32_xolehlp.py +3 -18
  675. angr/procedures/definitions/win32_xpsprint.py +3 -18
  676. angr/procedures/glibc/scanf.py +2 -2
  677. angr/procedures/glibc/sscanf.py +1 -1
  678. angr/procedures/java/__init__.py +6 -3
  679. angr/procedures/java/unconstrained.py +3 -3
  680. angr/procedures/java_io/read.py +1 -1
  681. angr/procedures/java_io/write.py +1 -1
  682. angr/procedures/java_jni/__init__.py +4 -4
  683. angr/procedures/java_jni/array_operations.py +2 -2
  684. angr/procedures/java_jni/field_access.py +3 -3
  685. angr/procedures/java_jni/method_calls.py +2 -2
  686. angr/procedures/java_jni/object_operations.py +1 -1
  687. angr/procedures/java_jni/string_operations.py +1 -1
  688. angr/procedures/java_lang/character.py +1 -1
  689. angr/procedures/java_lang/double.py +1 -1
  690. angr/procedures/java_lang/exit.py +1 -1
  691. angr/procedures/java_lang/getsimplename.py +1 -1
  692. angr/procedures/java_lang/integer.py +2 -2
  693. angr/procedures/java_lang/load_library.py +1 -1
  694. angr/procedures/java_lang/math.py +1 -1
  695. angr/procedures/java_lang/string.py +3 -3
  696. angr/procedures/java_lang/stringbuilder.py +2 -2
  697. angr/procedures/java_lang/system.py +1 -1
  698. angr/procedures/java_util/collection.py +2 -2
  699. angr/procedures/java_util/iterator.py +2 -2
  700. angr/procedures/java_util/list.py +3 -3
  701. angr/procedures/java_util/map.py +3 -3
  702. angr/procedures/java_util/random.py +1 -1
  703. angr/procedures/java_util/scanner_nextline.py +2 -2
  704. angr/procedures/libc/fseek.py +1 -1
  705. angr/procedures/libc/memcpy.py +1 -1
  706. angr/procedures/libc/strlen.py +12 -4
  707. angr/procedures/libc/strncmp.py +9 -4
  708. angr/procedures/linux_kernel/iovec.py +3 -3
  709. angr/procedures/linux_kernel/mmap.py +1 -1
  710. angr/procedures/linux_kernel/stat.py +1 -1
  711. angr/procedures/linux_kernel/sysinfo.py +1 -1
  712. angr/procedures/posix/bzero.py +1 -1
  713. angr/procedures/posix/mmap.py +1 -1
  714. angr/procedures/posix/send.py +1 -1
  715. angr/procedures/posix/syslog.py +2 -3
  716. angr/procedures/procedure_dict.py +2 -2
  717. angr/procedures/stubs/format_parser.py +5 -5
  718. angr/procedures/tracer/random.py +1 -1
  719. angr/procedures/tracer/receive.py +1 -1
  720. angr/procedures/tracer/transmit.py +1 -1
  721. angr/procedures/uclibc/__uClibc_main.py +1 -1
  722. angr/protos/__init__.py +8 -0
  723. angr/sim_options.py +0 -4
  724. angr/sim_type.py +9 -18
  725. angr/simos/__init__.py +12 -0
  726. angr/simos/cgc.py +5 -5
  727. angr/simos/javavm.py +12 -12
  728. angr/simos/linux.py +5 -5
  729. angr/simos/simos.py +11 -15
  730. angr/simos/userland.py +3 -3
  731. angr/simos/windows.py +5 -10
  732. angr/state_plugins/__init__.py +84 -28
  733. angr/state_plugins/callstack.py +1 -1
  734. angr/state_plugins/concrete.py +3 -4
  735. angr/state_plugins/filesystem.py +3 -3
  736. angr/state_plugins/gdb.py +1 -1
  737. angr/state_plugins/heap/__init__.py +14 -5
  738. angr/state_plugins/heap/heap_base.py +5 -4
  739. angr/state_plugins/heap/heap_brk.py +1 -1
  740. angr/state_plugins/heap/heap_freelist.py +1 -1
  741. angr/state_plugins/heap/heap_ptmalloc.py +2 -20
  742. angr/state_plugins/heap/utils.py +1 -1
  743. angr/state_plugins/history.py +2 -2
  744. angr/state_plugins/javavm_classloader.py +3 -3
  745. angr/state_plugins/jni_references.py +1 -1
  746. angr/state_plugins/light_registers.py +3 -3
  747. angr/state_plugins/log.py +1 -1
  748. angr/state_plugins/plugin.py +3 -2
  749. angr/state_plugins/posix.py +3 -3
  750. angr/state_plugins/preconstrainer.py +4 -4
  751. angr/state_plugins/scratch.py +3 -3
  752. angr/state_plugins/sim_action_object.py +1 -1
  753. angr/state_plugins/solver.py +14 -18
  754. angr/state_plugins/symbolizer.py +2 -3
  755. angr/state_plugins/uc_manager.py +1 -1
  756. angr/state_plugins/unicorn_engine.py +4 -4
  757. angr/state_plugins/view.py +1 -1
  758. angr/storage/__init__.py +9 -3
  759. angr/storage/file.py +4 -4
  760. angr/storage/memory_mixins/__init__.py +88 -6
  761. angr/storage/memory_mixins/actions_mixin.py +2 -2
  762. angr/storage/memory_mixins/address_concretization_mixin.py +6 -6
  763. angr/storage/memory_mixins/bvv_conversion_mixin.py +1 -1
  764. angr/storage/memory_mixins/clouseau_mixin.py +1 -1
  765. angr/storage/memory_mixins/convenient_mappings_mixin.py +2 -2
  766. angr/storage/memory_mixins/default_filler_mixin.py +3 -3
  767. angr/storage/memory_mixins/hex_dumper_mixin.py +1 -1
  768. angr/storage/memory_mixins/{javavm_memory/javavm_memory_mixin.py → javavm_memory_mixin.py} +15 -12
  769. angr/storage/memory_mixins/{keyvalue_memory/keyvalue_memory_mixin.py → keyvalue_memory_mixin.py} +11 -6
  770. angr/storage/memory_mixins/name_resolution_mixin.py +2 -2
  771. angr/storage/memory_mixins/paged_memory/paged_memory_mixin.py +1 -1
  772. angr/storage/memory_mixins/paged_memory/paged_memory_multivalue_mixin.py +1 -1
  773. angr/storage/memory_mixins/paged_memory/pages/__init__.py +15 -0
  774. angr/storage/memory_mixins/paged_memory/pages/mv_list_page.py +1 -1
  775. angr/storage/memory_mixins/paged_memory/pages/ultra_page.py +1 -1
  776. angr/storage/memory_mixins/paged_memory/stack_allocation_mixin.py +2 -2
  777. angr/storage/memory_mixins/regioned_memory/__init__.py +10 -0
  778. angr/storage/memory_mixins/regioned_memory/abstract_merger_mixin.py +1 -1
  779. angr/storage/memory_mixins/regioned_memory/region_category_mixin.py +1 -1
  780. angr/storage/memory_mixins/regioned_memory/region_data.py +2 -2
  781. angr/storage/memory_mixins/regioned_memory/region_meta_mixin.py +1 -1
  782. angr/storage/memory_mixins/regioned_memory/regioned_address_concretization_mixin.py +4 -4
  783. angr/storage/memory_mixins/regioned_memory/regioned_memory_mixin.py +7 -19
  784. angr/storage/memory_mixins/regioned_memory/static_find_mixin.py +1 -1
  785. angr/storage/memory_mixins/simple_interface_mixin.py +1 -1
  786. angr/storage/memory_mixins/simplification_mixin.py +1 -1
  787. angr/storage/memory_mixins/size_resolution_mixin.py +1 -1
  788. angr/storage/memory_mixins/slotted_memory.py +1 -1
  789. angr/storage/memory_mixins/smart_find_mixin.py +1 -1
  790. angr/storage/memory_mixins/underconstrained_mixin.py +1 -1
  791. angr/storage/memory_mixins/unwrapper_mixin.py +1 -1
  792. angr/storage/memory_object.py +1 -1
  793. angr/utils/__init__.py +12 -0
  794. angr/utils/enums_conv.py +1 -1
  795. angr/utils/library.py +2 -2
  796. angr/utils/mp.py +1 -1
  797. {angr-9.2.119.dist-info → angr-9.2.120.dist-info}/METADATA +6 -7
  798. angr-9.2.120.dist-info/RECORD +1340 -0
  799. angr/analyses/s_liveness/__init__.py +0 -2
  800. angr/analyses/s_propagator/__init__.py +0 -2
  801. angr/analyses/s_reaching_definitions/s_rda.py +0 -479
  802. angr/knowledge_base/__init__.py +0 -2
  803. angr/knowledge_plugins/structured_code/__init__.py +0 -2
  804. angr/knowledge_plugins/sync/__init__.py +0 -2
  805. angr/knowledge_plugins/sync/sync_controller.py +0 -324
  806. angr/misc/range.py +0 -24
  807. angr/misc/weakpatch.py +0 -59
  808. angr/storage/memory_mixins/javavm_memory/__init__.py +0 -2
  809. angr/storage/memory_mixins/keyvalue_memory/__init__.py +0 -2
  810. angr/storage/pcap.py +0 -65
  811. angr/utils/typing.py +0 -18
  812. angr-9.2.119.dist-info/RECORD +0 -1345
  813. /angr/analyses/{s_liveness/s_liveness.py → s_liveness.py} +0 -0
  814. {angr-9.2.119.dist-info → angr-9.2.120.dist-info}/LICENSE +0 -0
  815. {angr-9.2.119.dist-info → angr-9.2.120.dist-info}/WHEEL +0 -0
  816. {angr-9.2.119.dist-info → angr-9.2.120.dist-info}/entry_points.txt +0 -0
  817. {angr-9.2.119.dist-info → angr-9.2.120.dist-info}/top_level.txt +0 -0
@@ -1,5 +1,4 @@
1
1
  from __future__ import annotations
2
- from typing import List, Type
3
2
 
4
3
  from .a_div_const_add_a_mul_n_div_const import ADivConstAddAMulNDivConst
5
4
  from .a_mul_const_div_shr_const import AMulConstDivShrConst
@@ -49,23 +48,66 @@ from .coalesce_adjacent_shrs import CoalesceAdjacentShiftRights
49
48
 
50
49
  from .base import PeepholeOptimizationExprBase, PeepholeOptimizationStmtBase, PeepholeOptimizationMultiStmtBase
51
50
 
52
- MULTI_STMT_OPTS: list[type[PeepholeOptimizationMultiStmtBase]] = []
53
- STMT_OPTS: list[type[PeepholeOptimizationStmtBase]] = []
54
- EXPR_OPTS: list[type[PeepholeOptimizationExprBase]] = []
51
+ ALL_PEEPHOLE_OPTS: list[type[PeepholeOptimizationExprBase]] = [
52
+ ADivConstAddAMulNDivConst,
53
+ AMulConstDivShrConst,
54
+ AShlConstSubA,
55
+ ASubADiv,
56
+ ASubADivConstMulConst,
57
+ ARMCmpF,
58
+ Bswap,
59
+ CoalesceSameCascadingIfs,
60
+ ConstantDereferences,
61
+ ConstMullAShift,
62
+ ExtendedByteAndMask,
63
+ RemoveEmptyIfBody,
64
+ RemoveRedundantITEBranches,
65
+ SingleBitXor,
66
+ ASubASubN,
67
+ ConvASub0ShrAnd,
68
+ EagerEvaluation,
69
+ OneSubBool,
70
+ BoolExprXor1,
71
+ BitwiseOrToLogicalOr,
72
+ RemoveRedundantBitmasks,
73
+ RemoveRedundantNots,
74
+ RemoveRedundantReinterprets,
75
+ RemoveRedundantShifts,
76
+ RemoveRedundantShiftsAroundComparators,
77
+ SimplifyPcRelativeLoads,
78
+ BasePointerOffsetAddN,
79
+ BasePointerOffsetAndMask,
80
+ RemoveRedundantConversions,
81
+ RemoveCascadingConversions,
82
+ ConvShlShr,
83
+ RewriteMipsGpLoads,
84
+ RemoveNoopConversions,
85
+ RewriteBitExtractions,
86
+ RemoveRedundantITEComparisons,
87
+ SingleBitCondToBoolExpr,
88
+ SarToSignedDiv,
89
+ TidyStackAddr,
90
+ InvertNegatedLogicalConjunctionsAndDisjunctions,
91
+ RolRorRewriter,
92
+ InlinedStrcpy,
93
+ InlinedStrcpyConsolidation,
94
+ InlinedWstrcpy,
95
+ CmpORDRewriter,
96
+ CoalesceAdjacentShiftRights,
97
+ ]
55
98
 
56
- _g = globals().copy()
57
- for v in _g.values():
58
- if isinstance(v, type) and issubclass(v, PeepholeOptimizationExprBase) and v is not PeepholeOptimizationExprBase:
59
- EXPR_OPTS.append(v)
99
+ MULTI_STMT_OPTS: list[type[PeepholeOptimizationMultiStmtBase]] = [
100
+ v for v in ALL_PEEPHOLE_OPTS if issubclass(v, PeepholeOptimizationMultiStmtBase)
101
+ ]
102
+ STMT_OPTS: list[type[PeepholeOptimizationStmtBase]] = [
103
+ v for v in ALL_PEEPHOLE_OPTS if issubclass(v, PeepholeOptimizationStmtBase)
104
+ ]
105
+ EXPR_OPTS: list[type[PeepholeOptimizationExprBase]] = [
106
+ v for v in ALL_PEEPHOLE_OPTS if issubclass(v, PeepholeOptimizationExprBase)
107
+ ]
60
108
 
61
- if isinstance(v, type) and issubclass(v, PeepholeOptimizationStmtBase) and v is not PeepholeOptimizationStmtBase:
62
- STMT_OPTS.append(v)
63
-
64
- if (
65
- isinstance(v, type)
66
- and issubclass(v, PeepholeOptimizationMultiStmtBase)
67
- and v is not PeepholeOptimizationMultiStmtBase
68
- ):
69
- MULTI_STMT_OPTS.append(v)
70
-
71
- _g = None
109
+ __all__ = (
110
+ "MULTI_STMT_OPTS",
111
+ "STMT_OPTS",
112
+ "EXPR_OPTS",
113
+ )
@@ -1,7 +1,7 @@
1
1
  from __future__ import annotations
2
2
  from ailment.expression import BinaryOp, Const, Load
3
3
 
4
- from ....utils.loader import is_pc, is_in_readonly_section, is_in_readonly_segment
4
+ from angr.utils.loader import is_pc, is_in_readonly_section, is_in_readonly_segment
5
5
  from .base import PeepholeOptimizationExprBase
6
6
 
7
7
 
@@ -0,0 +1,20 @@
1
+ from __future__ import annotations
2
+
3
+ from .preset import DecompilationPreset
4
+ from .fast import preset_fast
5
+ from .full import preset_full
6
+ from .basic import preset_basic
7
+
8
+
9
+ DECOMPILATION_PRESETS = {
10
+ "fast": preset_fast,
11
+ "full": preset_full,
12
+ "basic": preset_basic,
13
+ "default": preset_fast,
14
+ }
15
+
16
+
17
+ __all__ = (
18
+ "DecompilationPreset",
19
+ "DECOMPILATION_PRESETS",
20
+ )
@@ -0,0 +1,30 @@
1
+ from __future__ import annotations
2
+ from .preset import DecompilationPreset
3
+ from angr.analyses.decompiler.optimization_passes import (
4
+ RegisterSaveAreaSimplifier,
5
+ StackCanarySimplifier,
6
+ WinStackCanarySimplifier,
7
+ BasePointerSaveSimplifier,
8
+ ConstantDereferencesSimplifier,
9
+ RetAddrSaveSimplifier,
10
+ X86GccGetPcSimplifier,
11
+ CallStatementRewriter,
12
+ )
13
+
14
+
15
+ preset_basic = DecompilationPreset(
16
+ "basic",
17
+ [
18
+ RegisterSaveAreaSimplifier,
19
+ StackCanarySimplifier,
20
+ WinStackCanarySimplifier,
21
+ BasePointerSaveSimplifier,
22
+ ConstantDereferencesSimplifier,
23
+ RetAddrSaveSimplifier,
24
+ X86GccGetPcSimplifier,
25
+ CallStatementRewriter,
26
+ ],
27
+ )
28
+
29
+
30
+ __all__ = ["preset_basic"]
@@ -0,0 +1,54 @@
1
+ from __future__ import annotations
2
+ from .preset import DecompilationPreset
3
+ from angr.analyses.decompiler.optimization_passes import (
4
+ RegisterSaveAreaSimplifier,
5
+ StackCanarySimplifier,
6
+ WinStackCanarySimplifier,
7
+ BasePointerSaveSimplifier,
8
+ ConstantDereferencesSimplifier,
9
+ RetAddrSaveSimplifier,
10
+ X86GccGetPcSimplifier,
11
+ ITERegionConverter,
12
+ ITEExprConverter,
13
+ ExprOpSwapper,
14
+ ReturnDuplicatorHigh,
15
+ SwitchDefaultCaseDuplicator,
16
+ LoweredSwitchSimplifier,
17
+ ReturnDuplicatorLow,
18
+ ReturnDeduplicator,
19
+ FlipBooleanCmp,
20
+ InlinedStringTransformationSimplifier,
21
+ CallStatementRewriter,
22
+ MultiSimplifier,
23
+ DeadblockRemover,
24
+ )
25
+
26
+
27
+ preset_fast = DecompilationPreset(
28
+ "fast",
29
+ [
30
+ RegisterSaveAreaSimplifier,
31
+ StackCanarySimplifier,
32
+ WinStackCanarySimplifier,
33
+ BasePointerSaveSimplifier,
34
+ MultiSimplifier, # TODO: MultiSimplifier should be replaced by a peephole optimization
35
+ ConstantDereferencesSimplifier,
36
+ RetAddrSaveSimplifier,
37
+ X86GccGetPcSimplifier,
38
+ ITERegionConverter,
39
+ ITEExprConverter,
40
+ ExprOpSwapper,
41
+ ReturnDuplicatorHigh,
42
+ DeadblockRemover,
43
+ SwitchDefaultCaseDuplicator,
44
+ LoweredSwitchSimplifier,
45
+ ReturnDuplicatorLow,
46
+ ReturnDeduplicator,
47
+ FlipBooleanCmp,
48
+ InlinedStringTransformationSimplifier,
49
+ CallStatementRewriter,
50
+ ],
51
+ )
52
+
53
+
54
+ __all__ = ["preset_fast"]
@@ -0,0 +1,64 @@
1
+ from __future__ import annotations
2
+ from .preset import DecompilationPreset
3
+ from angr.analyses.decompiler.optimization_passes import (
4
+ RegisterSaveAreaSimplifier,
5
+ StackCanarySimplifier,
6
+ WinStackCanarySimplifier,
7
+ BasePointerSaveSimplifier,
8
+ DivSimplifier,
9
+ MultiSimplifier,
10
+ ModSimplifier,
11
+ ConstantDereferencesSimplifier,
12
+ RetAddrSaveSimplifier,
13
+ X86GccGetPcSimplifier,
14
+ ITERegionConverter,
15
+ ITEExprConverter,
16
+ ExprOpSwapper,
17
+ ReturnDuplicatorHigh,
18
+ DeadblockRemover,
19
+ SwitchDefaultCaseDuplicator,
20
+ ConstPropOptReverter,
21
+ DuplicationReverter,
22
+ LoweredSwitchSimplifier,
23
+ ReturnDuplicatorLow,
24
+ ReturnDeduplicator,
25
+ CrossJumpReverter,
26
+ FlipBooleanCmp,
27
+ InlinedStringTransformationSimplifier,
28
+ CallStatementRewriter,
29
+ )
30
+
31
+
32
+ preset_full = DecompilationPreset(
33
+ "full",
34
+ [
35
+ RegisterSaveAreaSimplifier,
36
+ StackCanarySimplifier,
37
+ WinStackCanarySimplifier,
38
+ BasePointerSaveSimplifier,
39
+ DivSimplifier,
40
+ MultiSimplifier,
41
+ ModSimplifier,
42
+ ConstantDereferencesSimplifier,
43
+ RetAddrSaveSimplifier,
44
+ X86GccGetPcSimplifier,
45
+ ITERegionConverter,
46
+ ITEExprConverter,
47
+ ExprOpSwapper,
48
+ ReturnDuplicatorHigh,
49
+ DeadblockRemover,
50
+ SwitchDefaultCaseDuplicator,
51
+ ConstPropOptReverter,
52
+ DuplicationReverter,
53
+ LoweredSwitchSimplifier,
54
+ ReturnDuplicatorLow,
55
+ ReturnDeduplicator,
56
+ CrossJumpReverter,
57
+ FlipBooleanCmp,
58
+ InlinedStringTransformationSimplifier,
59
+ CallStatementRewriter,
60
+ ],
61
+ )
62
+
63
+
64
+ __all__ = ["preset_full"]
@@ -0,0 +1,37 @@
1
+ from __future__ import annotations
2
+
3
+ from archinfo import Arch
4
+
5
+ from angr.analyses.decompiler.optimization_passes.optimization_pass import OptimizationPass
6
+
7
+
8
+ class DecompilationPreset:
9
+ """
10
+ A DecompilationPreset provides a preconfigured set of optimizations and configurations for the Decompiler analysis.
11
+ """
12
+
13
+ def __init__(self, name: str, opt_passes: list[type[OptimizationPass]]):
14
+ self.name = name
15
+ self.opt_passes = opt_passes
16
+
17
+ def get_optimization_passes(self, arch: Arch | str, platform: str | None, additional_opts=None, disable_opts=None):
18
+ if isinstance(arch, Arch):
19
+ arch = arch.name
20
+
21
+ if platform is not None:
22
+ platform = platform.lower()
23
+ if platform == "win32":
24
+ platform = "windows" # sigh
25
+
26
+ passes = []
27
+ additional_opts = additional_opts or []
28
+ disable_opts = disable_opts or []
29
+ for pass_ in self.opt_passes + additional_opts:
30
+ if pass_ in disable_opts:
31
+ continue
32
+ if (pass_.ARCHES is None or arch in pass_.ARCHES) and (
33
+ pass_.PLATFORMS is None or platform is None or platform in pass_.PLATFORMS
34
+ ):
35
+ passes.append(pass_)
36
+
37
+ return passes
@@ -11,9 +11,9 @@ from ailment.statement import ConditionalJump, Jump
11
11
  from ailment.expression import Const
12
12
 
13
13
  from angr.utils.graph import GraphUtils
14
- from ...utils.graph import dfs_back_edges, subgraph_between_nodes, dominates, shallow_reverse
15
- from ...errors import AngrRuntimeError
16
- from .. import Analysis, register_analysis
14
+ from angr.utils.graph import dfs_back_edges, subgraph_between_nodes, dominates, shallow_reverse
15
+ from angr.errors import AngrRuntimeError
16
+ from angr.analyses import Analysis, register_analysis
17
17
  from .structuring.structurer_nodes import MultiNode, ConditionNode, IncompleteSwitchCaseHeadStatement
18
18
  from .graph_region import GraphRegion
19
19
  from .condition_processor import ConditionProcessor
@@ -42,8 +42,12 @@ class RegionIdentifier(Analysis):
42
42
  largest_successor_tree_outside_loop=True,
43
43
  force_loop_single_exit=True,
44
44
  complete_successors=False,
45
+ entry_node_addr: tuple[int, int | None] | None = None,
45
46
  ):
46
47
  self.function = func
48
+ self.entry_node_addr: tuple[int, int | None] | None = (
49
+ entry_node_addr if entry_node_addr is not None else (func.addr, None) if func is not None else None
50
+ )
47
51
  self.cond_proc = (
48
52
  cond_proc
49
53
  if cond_proc is not None
@@ -144,10 +148,20 @@ class RegionIdentifier(Analysis):
144
148
  except StopIteration:
145
149
  pass
146
150
 
147
- try:
148
- return next(n for n in graph.nodes() if n.addr == self.function.addr)
149
- except StopIteration as ex:
150
- raise AngrRuntimeError("Cannot find the start node from the graph!") from ex
151
+ if self.entry_node_addr is not None:
152
+ try:
153
+ return next(
154
+ n
155
+ for n in graph.nodes()
156
+ if (
157
+ (n.addr, n.idx) == self.entry_node_addr
158
+ if isinstance(n, Block)
159
+ else n.addr == self.entry_node_addr[0]
160
+ )
161
+ )
162
+ except StopIteration as ex:
163
+ raise AngrRuntimeError("Cannot find the start node from the graph!") from ex
164
+ raise AngrRuntimeError("Cannot find the start node from the graph!")
151
165
 
152
166
  def _test_reducibility(self):
153
167
  # make a copy of the graph
@@ -1,2 +1,5 @@
1
1
  from __future__ import annotations
2
+
2
3
  from .region_simplifier import RegionSimplifier
4
+
5
+ __all__ = ("RegionSimplifier",)
@@ -4,9 +4,9 @@ from __future__ import annotations
4
4
  import ailment
5
5
  import claripy
6
6
 
7
- from ..structuring.structurer_nodes import ConditionNode, CascadingConditionNode
8
- from ..sequence_walker import SequenceWalker
9
- from ....errors import AngrRuntimeError
7
+ from angr.analyses.decompiler.structuring.structurer_nodes import ConditionNode, CascadingConditionNode
8
+ from angr.analyses.decompiler.sequence_walker import SequenceWalker
9
+ from angr.errors import AngrRuntimeError
10
10
 
11
11
 
12
12
  class CascadingConditionTransformer(SequenceWalker):
@@ -2,8 +2,8 @@
2
2
  from __future__ import annotations
3
3
  import ailment
4
4
 
5
- from ..sequence_walker import SequenceWalker
6
- from ..structuring.structurer_nodes import (
5
+ from angr.analyses.decompiler.sequence_walker import SequenceWalker
6
+ from angr.analyses.decompiler.structuring.structurer_nodes import (
7
7
  SequenceNode,
8
8
  CodeNode,
9
9
  MultiNode,
@@ -11,7 +11,7 @@ from ..structuring.structurer_nodes import (
11
11
  ConditionNode,
12
12
  CascadingConditionNode,
13
13
  )
14
- from ..utils import is_empty_node
14
+ from angr.analyses.decompiler.utils import is_empty_node
15
15
 
16
16
 
17
17
  class CascadingIfsRemover(SequenceWalker):
@@ -10,8 +10,8 @@ from ailment.expression import ITE
10
10
  from ailment.statement import Statement, Assignment, Call
11
11
 
12
12
  from angr.utils.ail import is_phi_assignment
13
- from ..sequence_walker import SequenceWalker
14
- from ..structuring.structurer_nodes import (
13
+ from angr.analyses.decompiler.sequence_walker import SequenceWalker
14
+ from angr.analyses.decompiler.structuring.structurer_nodes import (
15
15
  ConditionNode,
16
16
  ConditionalBreakNode,
17
17
  LoopNode,
@@ -4,8 +4,8 @@ import logging
4
4
 
5
5
  import ailment
6
6
 
7
- from ..sequence_walker import SequenceWalker
8
- from ..structuring.structurer_nodes import (
7
+ from angr.analyses.decompiler.sequence_walker import SequenceWalker
8
+ from angr.analyses.decompiler.structuring.structurer_nodes import (
9
9
  SequenceNode,
10
10
  CodeNode,
11
11
  MultiNode,
@@ -14,7 +14,7 @@ from ..structuring.structurer_nodes import (
14
14
  CascadingConditionNode,
15
15
  )
16
16
  from .node_address_finder import NodeAddressFinder
17
- from ..goto_manager import Goto
17
+ from angr.analyses.decompiler.goto_manager import Goto
18
18
 
19
19
 
20
20
  l = logging.getLogger(name=__name__)
@@ -4,8 +4,8 @@ import logging
4
4
 
5
5
  import ailment
6
6
 
7
- from ..sequence_walker import SequenceWalker
8
- from ..structuring.structurer_nodes import (
7
+ from angr.analyses.decompiler.sequence_walker import SequenceWalker
8
+ from angr.analyses.decompiler.structuring.structurer_nodes import (
9
9
  SequenceNode,
10
10
  CodeNode,
11
11
  MultiNode,
@@ -1,8 +1,8 @@
1
1
  # pylint:disable=unused-argument,arguments-differ
2
2
  from __future__ import annotations
3
3
 
4
- from ..sequence_walker import SequenceWalker
5
- from ..structuring.structurer_nodes import (
4
+ from angr.analyses.decompiler.sequence_walker import SequenceWalker
5
+ from angr.analyses.decompiler.structuring.structurer_nodes import (
6
6
  SequenceNode,
7
7
  CodeNode,
8
8
  MultiNode,
@@ -11,8 +11,8 @@ from ..structuring.structurer_nodes import (
11
11
  EmptyBlockNotice,
12
12
  CascadingConditionNode,
13
13
  )
14
- from ..condition_processor import ConditionProcessor
15
- from ..utils import insert_node, is_statement_terminating
14
+ from angr.analyses.decompiler.condition_processor import ConditionProcessor
15
+ from angr.analyses.decompiler.utils import insert_node, is_statement_terminating
16
16
 
17
17
 
18
18
  class IfElseFlattener(SequenceWalker):
@@ -4,9 +4,9 @@ from collections import defaultdict
4
4
 
5
5
  import ailment
6
6
 
7
- from ..condition_processor import ConditionProcessor, EmptyBlockNotice
8
- from ..sequence_walker import SequenceWalker
9
- from ..structuring.structurer_nodes import (
7
+ from angr.analyses.decompiler.condition_processor import ConditionProcessor, EmptyBlockNotice
8
+ from angr.analyses.decompiler.sequence_walker import SequenceWalker
9
+ from angr.analyses.decompiler.structuring.structurer_nodes import (
10
10
  SequenceNode,
11
11
  CodeNode,
12
12
  MultiNode,
@@ -15,7 +15,7 @@ from ..structuring.structurer_nodes import (
15
15
  ContinueNode,
16
16
  CascadingConditionNode,
17
17
  )
18
- from ..utils import is_statement_terminating, has_nonlabel_nonphi_statements
18
+ from angr.analyses.decompiler.utils import is_statement_terminating, has_nonlabel_nonphi_statements
19
19
 
20
20
 
21
21
  class LoopSimplifier(SequenceWalker):
@@ -3,7 +3,7 @@ from __future__ import annotations
3
3
 
4
4
  import ailment
5
5
 
6
- from ..sequence_walker import SequenceWalker
6
+ from angr.analyses.decompiler.sequence_walker import SequenceWalker
7
7
 
8
8
 
9
9
  class NodeAddressFinder(SequenceWalker):
@@ -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