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
angr/__init__.py CHANGED
@@ -2,7 +2,7 @@
2
2
  # pylint: disable=wrong-import-position
3
3
  from __future__ import annotations
4
4
 
5
- __version__ = "9.2.119"
5
+ __version__ = "9.2.120"
6
6
 
7
7
  if bytes is str:
8
8
  raise Exception(
@@ -53,7 +53,115 @@ from .state_plugins.inspect import BP
53
53
  from .state_plugins import SimStatePlugin
54
54
 
55
55
  from .project import Project, load_shellcode
56
- from .errors import *
56
+ from .errors import (
57
+ AngrError,
58
+ AngrRuntimeError,
59
+ AngrValueError,
60
+ AngrLifterError,
61
+ AngrExitError,
62
+ AngrPathError,
63
+ AngrVaultError,
64
+ PathUnreachableError,
65
+ SimulationManagerError,
66
+ AngrInvalidArgumentError,
67
+ AngrSurveyorError,
68
+ AngrAnalysisError,
69
+ AngrBladeError,
70
+ AngrBladeSimProcError,
71
+ AngrAnnotatedCFGError,
72
+ AngrBackwardSlicingError,
73
+ AngrCallableError,
74
+ AngrCallableMultistateError,
75
+ AngrSyscallError,
76
+ AngrSimOSError,
77
+ AngrAssemblyError,
78
+ AngrTypeError,
79
+ AngrMissingTypeError,
80
+ AngrIncongruencyError,
81
+ AngrForwardAnalysisError,
82
+ AngrSkipJobNotice,
83
+ AngrDelayJobNotice,
84
+ AngrJobMergingFailureNotice,
85
+ AngrJobWideningFailureNotice,
86
+ AngrCFGError,
87
+ AngrVFGError,
88
+ AngrVFGRestartAnalysisNotice,
89
+ AngrDataGraphError,
90
+ AngrDDGError,
91
+ AngrLoopAnalysisError,
92
+ AngrExplorationTechniqueError,
93
+ AngrExplorerError,
94
+ AngrDirectorError,
95
+ AngrTracerError,
96
+ AngrDBError,
97
+ AngrCorruptDBError,
98
+ AngrIncompatibleDBError,
99
+ TracerEnvironmentError,
100
+ SimError,
101
+ SimStateError,
102
+ SimMergeError,
103
+ SimMemoryError,
104
+ SimMemoryMissingError,
105
+ SimAbstractMemoryError,
106
+ SimRegionMapError,
107
+ SimMemoryLimitError,
108
+ SimMemoryAddressError,
109
+ SimFastMemoryError,
110
+ SimEventError,
111
+ SimPosixError,
112
+ SimFilesystemError,
113
+ SimSymbolicFilesystemError,
114
+ SimFileError,
115
+ SimHeapError,
116
+ SimUnsupportedError,
117
+ SimSolverError,
118
+ SimSolverModeError,
119
+ SimSolverOptionError,
120
+ SimValueError,
121
+ SimUnsatError,
122
+ SimOperationError,
123
+ UnsupportedIROpError,
124
+ SimExpressionError,
125
+ UnsupportedIRExprError,
126
+ SimCCallError,
127
+ UnsupportedCCallError,
128
+ SimUninitializedAccessError,
129
+ SimStatementError,
130
+ UnsupportedIRStmtError,
131
+ UnsupportedDirtyError,
132
+ SimMissingTempError,
133
+ SimEngineError,
134
+ SimIRSBError,
135
+ SimTranslationError,
136
+ SimProcedureError,
137
+ SimProcedureArgumentError,
138
+ SimShadowStackError,
139
+ SimFastPathError,
140
+ SimIRSBNoDecodeError,
141
+ AngrUnsupportedSyscallError,
142
+ UnsupportedSyscallError,
143
+ SimReliftException,
144
+ SimSlicerError,
145
+ SimActionError,
146
+ SimCCError,
147
+ SimUCManagerError,
148
+ SimUCManagerAllocationError,
149
+ SimUnicornUnsupport,
150
+ SimUnicornError,
151
+ SimUnicornSymbolic,
152
+ SimEmptyCallStackError,
153
+ SimStateOptionsError,
154
+ SimException,
155
+ SimSegfaultException,
156
+ SimSegfaultError,
157
+ SimZeroDivisionException,
158
+ AngrNoPluginError,
159
+ SimConcreteMemoryError,
160
+ SimConcreteRegisterError,
161
+ SimConcreteBreakpointError,
162
+ AngrDecompilationError,
163
+ UnsupportedNodeTypeError,
164
+ )
57
165
  from .blade import Blade
58
166
  from .simos import SimOS
59
167
  from .block import Block
@@ -109,6 +217,113 @@ __all__ = (
109
217
  "SimStatePlugin",
110
218
  "Project",
111
219
  "load_shellcode",
220
+ "AngrError",
221
+ "AngrRuntimeError",
222
+ "AngrValueError",
223
+ "AngrLifterError",
224
+ "AngrExitError",
225
+ "AngrPathError",
226
+ "AngrVaultError",
227
+ "PathUnreachableError",
228
+ "SimulationManagerError",
229
+ "AngrInvalidArgumentError",
230
+ "AngrSurveyorError",
231
+ "AngrAnalysisError",
232
+ "AngrBladeError",
233
+ "AngrBladeSimProcError",
234
+ "AngrAnnotatedCFGError",
235
+ "AngrBackwardSlicingError",
236
+ "AngrCallableError",
237
+ "AngrCallableMultistateError",
238
+ "AngrSyscallError",
239
+ "AngrSimOSError",
240
+ "AngrAssemblyError",
241
+ "AngrTypeError",
242
+ "AngrMissingTypeError",
243
+ "AngrIncongruencyError",
244
+ "AngrForwardAnalysisError",
245
+ "AngrSkipJobNotice",
246
+ "AngrDelayJobNotice",
247
+ "AngrJobMergingFailureNotice",
248
+ "AngrJobWideningFailureNotice",
249
+ "AngrCFGError",
250
+ "AngrVFGError",
251
+ "AngrVFGRestartAnalysisNotice",
252
+ "AngrDataGraphError",
253
+ "AngrDDGError",
254
+ "AngrLoopAnalysisError",
255
+ "AngrExplorationTechniqueError",
256
+ "AngrExplorerError",
257
+ "AngrDirectorError",
258
+ "AngrTracerError",
259
+ "AngrDBError",
260
+ "AngrCorruptDBError",
261
+ "AngrIncompatibleDBError",
262
+ "TracerEnvironmentError",
263
+ "SimError",
264
+ "SimStateError",
265
+ "SimMergeError",
266
+ "SimMemoryError",
267
+ "SimMemoryMissingError",
268
+ "SimAbstractMemoryError",
269
+ "SimRegionMapError",
270
+ "SimMemoryLimitError",
271
+ "SimMemoryAddressError",
272
+ "SimFastMemoryError",
273
+ "SimEventError",
274
+ "SimPosixError",
275
+ "SimFilesystemError",
276
+ "SimSymbolicFilesystemError",
277
+ "SimFileError",
278
+ "SimHeapError",
279
+ "SimUnsupportedError",
280
+ "SimSolverError",
281
+ "SimSolverModeError",
282
+ "SimSolverOptionError",
283
+ "SimValueError",
284
+ "SimUnsatError",
285
+ "SimOperationError",
286
+ "UnsupportedIROpError",
287
+ "SimExpressionError",
288
+ "UnsupportedIRExprError",
289
+ "SimCCallError",
290
+ "UnsupportedCCallError",
291
+ "SimUninitializedAccessError",
292
+ "SimStatementError",
293
+ "UnsupportedIRStmtError",
294
+ "UnsupportedDirtyError",
295
+ "SimMissingTempError",
296
+ "SimEngineError",
297
+ "SimIRSBError",
298
+ "SimTranslationError",
299
+ "SimProcedureError",
300
+ "SimProcedureArgumentError",
301
+ "SimShadowStackError",
302
+ "SimFastPathError",
303
+ "SimIRSBNoDecodeError",
304
+ "AngrUnsupportedSyscallError",
305
+ "UnsupportedSyscallError",
306
+ "SimReliftException",
307
+ "SimSlicerError",
308
+ "SimActionError",
309
+ "SimCCError",
310
+ "SimUCManagerError",
311
+ "SimUCManagerAllocationError",
312
+ "SimUnicornUnsupport",
313
+ "SimUnicornError",
314
+ "SimUnicornSymbolic",
315
+ "SimEmptyCallStackError",
316
+ "SimStateOptionsError",
317
+ "SimException",
318
+ "SimSegfaultException",
319
+ "SimSegfaultError",
320
+ "SimZeroDivisionException",
321
+ "AngrNoPluginError",
322
+ "SimConcreteMemoryError",
323
+ "SimConcreteRegisterError",
324
+ "SimConcreteBreakpointError",
325
+ "AngrDecompilationError",
326
+ "UnsupportedNodeTypeError",
112
327
  "Blade",
113
328
  "SimOS",
114
329
  "Block",
angr/__main__.py CHANGED
@@ -1,6 +1,9 @@
1
1
  from __future__ import annotations
2
+
2
3
  import argparse
4
+ import sys
3
5
 
6
+ from angr.analyses.decompiler import DECOMPILATION_PRESETS
4
7
  from angr.analyses.decompiler.structuring import STRUCTURER_CLASSES, DEFAULT_STRUCTURER
5
8
  from angr.analyses.decompiler.utils import decompile_functions
6
9
 
@@ -14,7 +17,7 @@ class COMMANDS:
14
17
  ALL_COMMANDS = [DECOMPILE]
15
18
 
16
19
 
17
- def main():
20
+ def main(args=sys.argv[1:], out=sys.stdout):
18
21
  parser = argparse.ArgumentParser(description="The angr CLI allows you to decompile and analyze binaries.")
19
22
  parser.add_argument(
20
23
  "command",
@@ -59,8 +62,14 @@ def main():
59
62
  action="store_true",
60
63
  default=False,
61
64
  )
65
+ parser.add_argument(
66
+ "--preset",
67
+ help="The configuration preset to use for decompilation.",
68
+ choices=DECOMPILATION_PRESETS,
69
+ default="default",
70
+ )
62
71
 
63
- args = parser.parse_args()
72
+ args = parser.parse_args(args)
64
73
  if args.command == COMMANDS.DECOMPILE:
65
74
  decompilation = decompile_functions(
66
75
  args.binary,
@@ -69,10 +78,11 @@ def main():
69
78
  catch_errors=args.catch_exceptions,
70
79
  show_casts=not args.no_casts,
71
80
  base_address=args.base_addr,
81
+ preset=args.preset,
72
82
  )
73
- print(decompilation)
83
+ print(decompilation, file=out)
74
84
  else:
75
- parser.print_help()
85
+ parser.print_help(file=out)
76
86
 
77
87
 
78
88
  if __name__ == "__main__":
angr/analyses/__init__.py CHANGED
@@ -1,5 +1,6 @@
1
1
  # pylint:disable=wrong-import-position
2
2
  from __future__ import annotations
3
+
3
4
  from .analysis import Analysis, AnalysesHub
4
5
 
5
6
 
@@ -48,3 +49,56 @@ from .flirt import FlirtAnalysis
48
49
  from .s_propagator import SPropagatorAnalysis
49
50
  from .s_reaching_definitions import SReachingDefinitionsAnalysis
50
51
  from .s_liveness import SLivenessAnalysis
52
+
53
+
54
+ __all__ = (
55
+ "Analysis",
56
+ "AnalysesHub",
57
+ "register_analysis",
58
+ "ForwardAnalysis",
59
+ "visitors",
60
+ "PropagatorAnalysis",
61
+ "CFGFast",
62
+ "CFGEmulated",
63
+ "CFG",
64
+ "CFGArchOptions",
65
+ "CFGFastSoot",
66
+ "CDG",
67
+ "DDG",
68
+ "VFG",
69
+ "BoyScout",
70
+ "BackwardSlice",
71
+ "Veritesting",
72
+ "VSA_DDG",
73
+ "BinDiff",
74
+ "LoopFinder",
75
+ "CongruencyCheck",
76
+ "StaticHooker",
77
+ "Reassembler",
78
+ "BinaryOptimizer",
79
+ "Disassembly",
80
+ "VariableRecovery",
81
+ "VariableRecoveryFast",
82
+ "Identifier",
83
+ "CalleeCleanupFinder",
84
+ "ReachingDefinitionsAnalysis",
85
+ "CallingConventionAnalysis",
86
+ "CodeTagging",
87
+ "StackPointerTracker",
88
+ "DominanceFrontier",
89
+ "DataDependencyGraphAnalysis",
90
+ "Decompiler",
91
+ "SootClassHierarchy",
92
+ "XRefsAnalysis",
93
+ "InitializationFinder",
94
+ "CompleteCallingConventionsAnalysis",
95
+ "Typehoon",
96
+ "ProximityGraphAnalysis",
97
+ "VtableFinder",
98
+ "StaticObjectFinder",
99
+ "ClassIdentifier",
100
+ "FlirtAnalysis",
101
+ "SPropagatorAnalysis",
102
+ "SReachingDefinitionsAnalysis",
103
+ "SLivenessAnalysis",
104
+ )
angr/analyses/analysis.py CHANGED
@@ -16,13 +16,13 @@ import typing
16
16
 
17
17
  from rich import progress
18
18
 
19
- from ..misc.plugins import PluginVendor, VendorPreset
20
- from ..misc.ux import deprecated
21
- from ..misc import telemetry
19
+ from angr.misc.plugins import PluginVendor, VendorPreset
20
+ from angr.misc.ux import deprecated
21
+ from angr.misc import telemetry
22
22
 
23
23
  if TYPE_CHECKING:
24
- from ..knowledge_base import KnowledgeBase
25
- from ..project import Project
24
+ from angr.knowledge_base import KnowledgeBase
25
+ from angr.project import Project
26
26
  from typing_extensions import ParamSpec
27
27
  from .identifier import Identifier
28
28
  from .callee_cleanup_finder import CalleeCleanupFinder
@@ -207,7 +207,7 @@ class AnalysisFactory(Generic[A]):
207
207
  listval = list(val)
208
208
  if not listval or (
209
209
  isinstance(listval[0], (str, bytes, bool, int, float))
210
- and all(type(sval) == type(listval[0]) for sval in listval)
210
+ and all(type(sval) is type(listval[0]) for sval in listval)
211
211
  ):
212
212
  span.set_attribute(f"arg.{name}", listval)
213
213
  elif isinstance(val, dict):
@@ -215,12 +215,12 @@ class AnalysisFactory(Generic[A]):
215
215
  listval_values = list(val.values())
216
216
  if not listval_keys or (
217
217
  isinstance(listval_keys[0], (str, bytes, bool, int, float))
218
- and all(type(sval) == type(listval_keys[0]) for sval in listval_keys)
218
+ and all(type(sval) is type(listval_keys[0]) for sval in listval_keys)
219
219
  ):
220
220
  span.set_attribute(f"arg.{name}.keys", listval_keys)
221
221
  if not listval_values or (
222
222
  isinstance(listval_values[0], (str, bytes, bool, int, float))
223
- and all(type(sval) == type(listval_values[0]) for sval in listval_values)
223
+ and all(type(sval) is type(listval_values[0]) for sval in listval_values)
224
224
  ):
225
225
  span.set_attribute(f"arg.{name}.values", listval_values)
226
226
  else:
@@ -6,10 +6,10 @@ import networkx
6
6
  import pyvex
7
7
  from . import Analysis
8
8
 
9
- from ..code_location import CodeLocation
10
- from ..annocfg import AnnotatedCFG
11
- from ..errors import AngrBackwardSlicingError
12
- from ..utils.constants import DEFAULT_STATEMENT
9
+ from angr.code_location import CodeLocation
10
+ from angr.annocfg import AnnotatedCFG
11
+ from angr.errors import AngrBackwardSlicingError
12
+ from angr.utils.constants import DEFAULT_STATEMENT
13
13
 
14
14
 
15
15
  l = logging.getLogger(name=__name__)
angr/analyses/bindiff.py CHANGED
@@ -13,7 +13,7 @@ if TYPE_CHECKING:
13
13
 
14
14
  from . import Analysis, CFGEmulated
15
15
 
16
- from ..errors import SimEngineError, SimMemoryError
16
+ from angr.errors import SimEngineError, SimMemoryError
17
17
 
18
18
  # todo include an explanation of the algorithm
19
19
  # todo include a method that detects any change other than constants
@@ -198,7 +198,7 @@ def compare_statement_dict(statement_1, statement_2):
198
198
  # should return whether or not the statement's type/effects changed
199
199
  # need to return the specific number that changed too
200
200
 
201
- if type(statement_1) != type(statement_2):
201
+ if type(statement_1) is not type(statement_2):
202
202
  return [Difference(DIFF_TYPE, None, None)]
203
203
 
204
204
  # None
@@ -1,6 +1,6 @@
1
1
  from __future__ import annotations
2
2
  from . import Analysis
3
- from .. import SIM_PROCEDURES
3
+ from angr import SIM_PROCEDURES
4
4
 
5
5
  import logging
6
6
 
@@ -14,8 +14,8 @@ import ailment
14
14
 
15
15
  from angr.code_location import ExternalCodeLocation
16
16
 
17
- from ..calling_conventions import SimFunctionArgument, SimRegArg, SimStackArg, SimCC, default_cc
18
- from ..sim_type import (
17
+ from angr.calling_conventions import SimFunctionArgument, SimRegArg, SimStackArg, SimCC, default_cc
18
+ from angr.sim_type import (
19
19
  SimTypeInt,
20
20
  SimTypeFunction,
21
21
  SimType,
@@ -26,22 +26,22 @@ from ..sim_type import (
26
26
  SimTypeFloat,
27
27
  SimTypeDouble,
28
28
  )
29
- from ..sim_variable import SimStackVariable, SimRegisterVariable
30
- from ..knowledge_plugins.key_definitions.atoms import Register, MemoryLocation, SpOffset
31
- from ..knowledge_plugins.key_definitions.tag import ReturnValueTag
32
- from ..knowledge_plugins.key_definitions.constants import OP_BEFORE, OP_AFTER
33
- from ..knowledge_plugins.key_definitions.rd_model import ReachingDefinitionsModel
34
- from ..knowledge_plugins.variables.variable_access import VariableAccessSort
35
- from ..knowledge_plugins.functions import Function
36
- from ..utils.constants import DEFAULT_STATEMENT
37
- from .. import SIM_PROCEDURES
29
+ from angr.sim_variable import SimStackVariable, SimRegisterVariable
30
+ from angr.knowledge_plugins.key_definitions.atoms import Register, MemoryLocation, SpOffset
31
+ from angr.knowledge_plugins.key_definitions.tag import ReturnValueTag
32
+ from angr.knowledge_plugins.key_definitions.constants import OP_BEFORE, OP_AFTER
33
+ from angr.knowledge_plugins.key_definitions.rd_model import ReachingDefinitionsModel
34
+ from angr.knowledge_plugins.variables.variable_access import VariableAccessSort
35
+ from angr.knowledge_plugins.functions import Function
36
+ from angr.utils.constants import DEFAULT_STATEMENT
37
+ from angr import SIM_PROCEDURES
38
38
  from .reaching_definitions import get_all_definitions
39
39
  from . import Analysis, register_analysis, ReachingDefinitionsAnalysis
40
40
 
41
41
  if TYPE_CHECKING:
42
- from ..knowledge_plugins.cfg import CFGModel
43
- from ..knowledge_plugins.key_definitions.uses import Uses
44
- from ..knowledge_plugins.key_definitions.definition import Definition
42
+ from angr.knowledge_plugins.cfg import CFGModel
43
+ from angr.knowledge_plugins.key_definitions.uses import Uses
44
+ from angr.knowledge_plugins.key_definitions.definition import Definition
45
45
 
46
46
  l = logging.getLogger(name=__name__)
47
47
 
@@ -557,7 +557,13 @@ class CallingConventionAnalysis(Analysis):
557
557
  fact: CallSiteFact,
558
558
  ) -> None:
559
559
  # determine if potential register and stack arguments are set
560
- state = rda.observed_results[("insn", call_insn_addr, OP_BEFORE)]
560
+ observation_key = "insn", call_insn_addr, OP_BEFORE
561
+ state = rda.observed_results.get(observation_key)
562
+ if state is None:
563
+ # the observation state is not found. it can happen if call_insn_addr is incorrect, which may happen (but
564
+ # rarely) on incorrect CFGs.
565
+ return
566
+
561
567
  defs_by_reg_offset: dict[int, list[Definition]] = defaultdict(list)
562
568
  all_reg_defs: set[Definition] = get_all_definitions(state.registers)
563
569
  all_stack_defs: set[Definition] = get_all_definitions(state.stack)
angr/analyses/cdg.py CHANGED
@@ -3,7 +3,7 @@ import logging
3
3
 
4
4
  import networkx
5
5
 
6
- from ..utils.graph import compute_dominance_frontier, PostDominators, TemporaryNode
6
+ from angr.utils.graph import compute_dominance_frontier, PostDominators, TemporaryNode
7
7
  from . import Analysis
8
8
 
9
9
  _l = logging.getLogger(name=__name__)
@@ -1,5 +1,6 @@
1
1
  # analyses
2
2
  from __future__ import annotations
3
+
3
4
  from .cfg_fast import CFGFast
4
5
  from .cfg_emulated import CFGEmulated
5
6
  from .cfg import CFG
@@ -9,4 +10,14 @@ from .cfg_fast_soot import CFGFastSoot
9
10
  # things to make your life easier
10
11
  from .cfg_arch_options import CFGArchOptions
11
12
  from .cfg_base import CFGBase
12
- from ...knowledge_plugins.cfg import CFGNode
13
+
14
+
15
+ __all__ = (
16
+ "CFGFast",
17
+ "CFGEmulated",
18
+ "CFG",
19
+ "CFBlanket",
20
+ "CFGFastSoot",
21
+ "CFGArchOptions",
22
+ "CFGBase",
23
+ )
angr/analyses/cfg/cfb.py CHANGED
@@ -9,8 +9,8 @@ from cle.backends.tls.elf_tls import ELFTLSObject
9
9
 
10
10
  from sortedcontainers import SortedDict
11
11
 
12
- from ...knowledge_plugins.cfg.memory_data import MemoryDataSort, MemoryData
13
- from ..analysis import Analysis
12
+ from angr.knowledge_plugins.cfg.memory_data import MemoryDataSort, MemoryData
13
+ from angr.analyses.analysis import Analysis
14
14
 
15
15
  _l = logging.getLogger(name=__name__)
16
16
 
angr/analyses/cfg/cfg.py CHANGED
@@ -61,7 +61,7 @@ class CFG(CFGFast): # pylint: disable=abstract-method
61
61
  # Sanity check to make sure the user only wants to use CFGFast
62
62
 
63
63
  for p in cfgemulated_params:
64
- if kwargs.get(p, None) is not None:
64
+ if kwargs.get(p) is not None:
65
65
  sys.stderr.write(outdated_message + "\n")
66
66
  raise OutdatedError(outdated_exception)
67
67
 
@@ -748,7 +748,8 @@ class CFGBase(Analysis):
748
748
  # Get all executable sections
749
749
  for section in b.sections:
750
750
  if section.is_executable:
751
- tpl = (section.min_addr, section.max_addr + 1)
751
+ max_mapped_addr = section.min_addr + min(section.memsize, section.filesize)
752
+ tpl = (section.min_addr, max_mapped_addr)
752
753
  sections.append(tpl)
753
754
  memory_regions += sections
754
755
 
@@ -756,7 +757,8 @@ class CFGBase(Analysis):
756
757
  # Get all executable segments
757
758
  for segment in b.segments:
758
759
  if segment.is_executable:
759
- tpl = (segment.min_addr, segment.max_addr + 1)
760
+ max_mapped_addr = segment.min_addr + min(segment.memsize, segment.filesize)
761
+ tpl = (segment.min_addr, max_mapped_addr)
760
762
  segments.append(tpl)
761
763
  if sections and segments:
762
764
  # are there executable segments with no sections inside?
@@ -770,7 +772,8 @@ class CFGBase(Analysis):
770
772
  elif isinstance(b, (Coff, PE)):
771
773
  for section in b.sections:
772
774
  if section.is_executable:
773
- tpl = (section.min_addr, section.max_addr + 1)
775
+ max_mapped_addr = section.min_addr + min(section.memsize, section.filesize)
776
+ tpl = (section.min_addr, max_mapped_addr)
774
777
  memory_regions.append(tpl)
775
778
 
776
779
  elif isinstance(b, XBE):
@@ -781,7 +784,7 @@ class CFGBase(Analysis):
781
784
  and not section.is_writable
782
785
  and section.name not in {".data", ".rdata", ".rodata"}
783
786
  ):
784
- tpl = (section.min_addr, section.max_addr + 1)
787
+ tpl = (section.min_addr, section.max_addr)
785
788
  memory_regions.append(tpl)
786
789
 
787
790
  elif isinstance(b, MachO):
@@ -791,7 +794,8 @@ class CFGBase(Analysis):
791
794
  if seg.is_executable:
792
795
  # Take all sections from this segment (MachO style)
793
796
  for section in seg.sections:
794
- tpl = (section.min_addr, section.max_addr + 1)
797
+ max_mapped_addr = section.min_addr + min(section.memsize, section.filesize)
798
+ tpl = (section.min_addr, max_mapped_addr)
795
799
  memory_regions.append(tpl)
796
800
 
797
801
  elif isinstance(b, (Hex, SRec)):
@@ -1313,6 +1317,23 @@ class CFGBase(Analysis):
1313
1317
 
1314
1318
  if new_node is None:
1315
1319
  # Create a new one
1320
+
1321
+ instruction_addrs = []
1322
+ for ins_addr in n.instruction_addrs:
1323
+ if n.addr <= ins_addr < n.addr + new_size:
1324
+ instruction_addrs.append(ins_addr)
1325
+ elif ins_addr == n.addr + new_size:
1326
+ break
1327
+ elif ins_addr > n.addr + new_size:
1328
+ # the immediate next instruction does not start right after the new node. this means we break
1329
+ # an existing instruction in the middle! we need to drop the last instruction address from
1330
+ # instruction_addrs.
1331
+ instruction_addrs.pop()
1332
+ break
1333
+ else:
1334
+ # should not happen if the instruction_addrs list is normal...
1335
+ break
1336
+
1316
1337
  if self.tag == "CFGFast":
1317
1338
  new_node = CFGNode(
1318
1339
  n.addr,
@@ -1320,7 +1341,7 @@ class CFGBase(Analysis):
1320
1341
  self.model,
1321
1342
  function_address=n.function_address,
1322
1343
  block_id=n.block_id,
1323
- instruction_addrs=[i for i in n.instruction_addrs if n.addr <= i <= n.addr + new_size],
1344
+ instruction_addrs=instruction_addrs,
1324
1345
  thumb=n.thumb,
1325
1346
  )
1326
1347
  elif self.tag == "CFGEmulated":
@@ -1331,16 +1352,12 @@ class CFGBase(Analysis):
1331
1352
  callstack_key=callstack_key,
1332
1353
  function_address=n.function_address,
1333
1354
  block_id=n.block_id,
1334
- instruction_addrs=[i for i in n.instruction_addrs if n.addr <= i <= n.addr + new_size],
1355
+ instruction_addrs=instruction_addrs,
1335
1356
  thumb=n.thumb,
1336
1357
  )
1337
1358
  else:
1338
1359
  raise ValueError(f"Unknown tag {self.tag}.")
1339
1360
 
1340
- # Copy instruction addresses
1341
- new_node.instruction_addrs = [
1342
- ins_addr for ins_addr in n.instruction_addrs if ins_addr < n.addr + new_size
1343
- ]
1344
1361
  # Put the new node into end_addresses list
1345
1362
  if key in smallest_nodes:
1346
1363
  end_addresses_to_nodes[key].add(smallest_nodes[key])