angr 9.2.119__py3-none-manylinux2014_x86_64.whl → 9.2.121__py3-none-manylinux2014_x86_64.whl

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

Potentially problematic release.


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

Files changed (843) 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 +3 -2
  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 +15 -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/default_resolvers.py +2 -0
  23. angr/analyses/cfg/indirect_jump_resolvers/jumptable.py +27 -20
  24. angr/analyses/cfg/indirect_jump_resolvers/mips_elf_fast.py +140 -369
  25. angr/analyses/cfg/indirect_jump_resolvers/mips_elf_got.py +148 -0
  26. angr/analyses/cfg/indirect_jump_resolvers/resolver.py +2 -2
  27. angr/analyses/cfg/indirect_jump_resolvers/x86_pe_iat.py +1 -1
  28. angr/analyses/cfg_slice_to_sink/__init__.py +8 -0
  29. angr/analyses/class_identifier.py +2 -2
  30. angr/analyses/code_tagging.py +2 -2
  31. angr/analyses/complete_calling_conventions.py +3 -3
  32. angr/analyses/congruency_check.py +1 -2
  33. angr/analyses/data_dep/__init__.py +13 -0
  34. angr/analyses/data_dep/data_dependency_analysis.py +5 -5
  35. angr/analyses/datagraph_meta.py +1 -1
  36. angr/analyses/ddg.py +3 -3
  37. angr/analyses/decompiler/__init__.py +25 -0
  38. angr/analyses/decompiler/ail_simplifier.py +8 -8
  39. angr/analyses/decompiler/block_simplifier.py +3 -3
  40. angr/analyses/decompiler/callsite_maker.py +5 -3
  41. angr/analyses/decompiler/ccall_rewriters/amd64_ccalls.py +20 -0
  42. angr/analyses/decompiler/clinic.py +25 -26
  43. angr/analyses/decompiler/condition_processor.py +7 -5
  44. angr/analyses/decompiler/counters/__init__.py +11 -0
  45. angr/analyses/decompiler/decompiler.py +24 -10
  46. angr/analyses/decompiler/dephication/seqnode_dephication.py +19 -1
  47. angr/analyses/decompiler/optimization_passes/__init__.py +66 -54
  48. angr/analyses/decompiler/optimization_passes/const_derefs.py +1 -1
  49. angr/analyses/decompiler/optimization_passes/const_prop_reverter.py +3 -3
  50. angr/analyses/decompiler/optimization_passes/cross_jump_reverter.py +1 -1
  51. angr/analyses/decompiler/optimization_passes/duplication_reverter/__init__.py +3 -0
  52. angr/analyses/decompiler/optimization_passes/duplication_reverter/duplication_reverter.py +7 -7
  53. angr/analyses/decompiler/optimization_passes/duplication_reverter/similarity.py +1 -1
  54. angr/analyses/decompiler/optimization_passes/duplication_reverter/utils.py +1 -1
  55. angr/analyses/decompiler/optimization_passes/engine_base.py +2 -2
  56. angr/analyses/decompiler/optimization_passes/expr_op_swapper.py +2 -2
  57. angr/analyses/decompiler/optimization_passes/flip_boolean_cmp.py +4 -4
  58. angr/analyses/decompiler/optimization_passes/ite_expr_converter.py +6 -6
  59. angr/analyses/decompiler/optimization_passes/ite_region_converter.py +2 -2
  60. angr/analyses/decompiler/optimization_passes/lowered_switch_simplifier.py +7 -3
  61. angr/analyses/decompiler/optimization_passes/optimization_pass.py +34 -28
  62. angr/analyses/decompiler/optimization_passes/register_save_area_simplifier.py +2 -2
  63. angr/analyses/decompiler/optimization_passes/ret_addr_save_simplifier.py +1 -1
  64. angr/analyses/decompiler/optimization_passes/ret_deduplicator.py +3 -3
  65. angr/analyses/decompiler/optimization_passes/return_duplicator_base.py +5 -5
  66. angr/analyses/decompiler/optimization_passes/return_duplicator_high.py +1 -1
  67. angr/analyses/decompiler/peephole_optimizations/__init__.py +61 -19
  68. angr/analyses/decompiler/peephole_optimizations/simplify_pc_relative_loads.py +1 -1
  69. angr/analyses/decompiler/presets/__init__.py +20 -0
  70. angr/analyses/decompiler/presets/basic.py +30 -0
  71. angr/analyses/decompiler/presets/fast.py +54 -0
  72. angr/analyses/decompiler/presets/full.py +64 -0
  73. angr/analyses/decompiler/presets/preset.py +37 -0
  74. angr/analyses/decompiler/region_identifier.py +21 -7
  75. angr/analyses/decompiler/region_simplifiers/__init__.py +3 -0
  76. angr/analyses/decompiler/region_simplifiers/cascading_cond_transformer.py +3 -3
  77. angr/analyses/decompiler/region_simplifiers/cascading_ifs.py +3 -3
  78. angr/analyses/decompiler/region_simplifiers/expr_folding.py +2 -2
  79. angr/analyses/decompiler/region_simplifiers/goto.py +3 -3
  80. angr/analyses/decompiler/region_simplifiers/if_.py +2 -2
  81. angr/analyses/decompiler/region_simplifiers/ifelse.py +4 -4
  82. angr/analyses/decompiler/region_simplifiers/loop.py +4 -4
  83. angr/analyses/decompiler/region_simplifiers/node_address_finder.py +1 -1
  84. angr/analyses/decompiler/region_simplifiers/region_simplifier.py +6 -6
  85. angr/analyses/decompiler/region_simplifiers/switch_cluster_simplifier.py +12 -5
  86. angr/analyses/decompiler/region_simplifiers/switch_expr_simplifier.py +3 -3
  87. angr/analyses/decompiler/sequence_walker.py +11 -12
  88. angr/analyses/decompiler/structured_codegen/__init__.py +14 -0
  89. angr/analyses/decompiler/structured_codegen/base.py +1 -1
  90. angr/analyses/decompiler/structured_codegen/c.py +13 -13
  91. angr/analyses/decompiler/structured_codegen/dwarf_import.py +2 -2
  92. angr/analyses/decompiler/structuring/__init__.py +11 -1
  93. angr/analyses/decompiler/structuring/dream.py +8 -8
  94. angr/analyses/decompiler/structuring/phoenix.py +6 -6
  95. angr/analyses/decompiler/structuring/recursive_structurer.py +7 -7
  96. angr/analyses/decompiler/structuring/sailr.py +2 -2
  97. angr/analyses/decompiler/structuring/structurer_base.py +9 -4
  98. angr/analyses/decompiler/structuring/structurer_nodes.py +18 -9
  99. angr/analyses/decompiler/utils.py +4 -2
  100. angr/analyses/disassembly.py +6 -6
  101. angr/analyses/disassembly_utils.py +1 -1
  102. angr/analyses/dominance_frontier.py +1 -1
  103. angr/analyses/find_objects_static.py +5 -5
  104. angr/analyses/flirt.py +3 -3
  105. angr/analyses/forward_analysis/__init__.py +9 -0
  106. angr/analyses/forward_analysis/forward_analysis.py +4 -4
  107. angr/analyses/forward_analysis/job_info.py +1 -1
  108. angr/analyses/forward_analysis/visitors/__init__.py +9 -0
  109. angr/analyses/forward_analysis/visitors/graph.py +2 -2
  110. angr/analyses/identifier/__init__.py +3 -0
  111. angr/analyses/identifier/custom_callable.py +2 -3
  112. angr/analyses/identifier/errors.py +1 -1
  113. angr/analyses/identifier/functions/__init__.py +4 -4
  114. angr/analyses/identifier/functions/atoi.py +1 -1
  115. angr/analyses/identifier/functions/based_atoi.py +1 -1
  116. angr/analyses/identifier/functions/fdprintf.py +1 -1
  117. angr/analyses/identifier/functions/free.py +2 -2
  118. angr/analyses/identifier/functions/int2str.py +1 -1
  119. angr/analyses/identifier/functions/malloc.py +2 -2
  120. angr/analyses/identifier/functions/memcmp.py +1 -1
  121. angr/analyses/identifier/functions/memcpy.py +3 -3
  122. angr/analyses/identifier/functions/memset.py +1 -1
  123. angr/analyses/identifier/functions/printf.py +1 -1
  124. angr/analyses/identifier/functions/recv_until.py +2 -2
  125. angr/analyses/identifier/functions/skip_calloc.py +2 -2
  126. angr/analyses/identifier/functions/skip_realloc.py +2 -2
  127. angr/analyses/identifier/functions/skip_recv_n.py +1 -1
  128. angr/analyses/identifier/functions/snprintf.py +1 -1
  129. angr/analyses/identifier/functions/sprintf.py +1 -1
  130. angr/analyses/identifier/functions/strcmp.py +1 -1
  131. angr/analyses/identifier/functions/strcpy.py +1 -1
  132. angr/analyses/identifier/functions/strlen.py +1 -1
  133. angr/analyses/identifier/functions/strncmp.py +1 -1
  134. angr/analyses/identifier/functions/strncpy.py +1 -1
  135. angr/analyses/identifier/functions/strtol.py +1 -1
  136. angr/analyses/identifier/identify.py +3 -3
  137. angr/analyses/identifier/runner.py +6 -6
  138. angr/analyses/init_finder.py +1 -1
  139. angr/analyses/loop_analysis.py +2 -2
  140. angr/analyses/propagator/__init__.py +3 -0
  141. angr/analyses/propagator/engine_ail.py +4 -4
  142. angr/analyses/propagator/engine_base.py +2 -2
  143. angr/analyses/propagator/engine_vex.py +2 -2
  144. angr/analyses/propagator/outdated_definition_walker.py +3 -3
  145. angr/analyses/propagator/propagator.py +3 -3
  146. angr/analyses/propagator/top_checker_mixin.py +1 -1
  147. angr/analyses/proximity_graph.py +3 -3
  148. angr/analyses/reaching_definitions/__init__.py +6 -6
  149. angr/analyses/reaching_definitions/dep_graph.py +5 -5
  150. angr/analyses/reaching_definitions/engine_ail.py +8 -8
  151. angr/analyses/reaching_definitions/engine_vex.py +18 -13
  152. angr/analyses/reaching_definitions/heap_allocator.py +3 -3
  153. angr/analyses/reaching_definitions/rd_state.py +4 -10
  154. angr/analyses/reaching_definitions/reaching_definitions.py +11 -11
  155. angr/analyses/reaching_definitions/subject.py +3 -3
  156. angr/analyses/reassembler.py +5 -5
  157. angr/analyses/{s_propagator/s_propagator.py → s_propagator.py} +1 -1
  158. angr/analyses/s_reaching_definitions/__init__.py +11 -1
  159. angr/analyses/s_reaching_definitions/s_rda_model.py +117 -0
  160. angr/analyses/s_reaching_definitions/s_rda_view.py +213 -0
  161. angr/analyses/s_reaching_definitions/s_reaching_definitions.py +159 -0
  162. angr/analyses/stack_pointer_tracker.py +5 -5
  163. angr/analyses/static_hooker.py +2 -2
  164. angr/analyses/typehoon/__init__.py +3 -0
  165. angr/analyses/typehoon/lifter.py +1 -1
  166. angr/analyses/typehoon/translator.py +2 -2
  167. angr/analyses/typehoon/typehoon.py +3 -3
  168. angr/analyses/typehoon/typevars.py +37 -16
  169. angr/analyses/variable_recovery/__init__.py +6 -0
  170. angr/analyses/variable_recovery/engine_ail.py +5 -5
  171. angr/analyses/variable_recovery/engine_base.py +7 -7
  172. angr/analyses/variable_recovery/engine_vex.py +7 -7
  173. angr/analyses/variable_recovery/variable_recovery.py +5 -5
  174. angr/analyses/variable_recovery/variable_recovery_base.py +7 -7
  175. angr/analyses/variable_recovery/variable_recovery_fast.py +7 -7
  176. angr/analyses/veritesting.py +8 -8
  177. angr/analyses/vfg.py +13 -13
  178. angr/analyses/vsa_ddg.py +3 -3
  179. angr/analyses/vtable.py +1 -1
  180. angr/analyses/xrefs.py +3 -3
  181. angr/angrdb/__init__.py +3 -0
  182. angr/angrdb/db.py +3 -3
  183. angr/angrdb/serializers/__init__.py +7 -0
  184. angr/angrdb/serializers/cfg_model.py +2 -2
  185. angr/angrdb/serializers/comments.py +2 -2
  186. angr/angrdb/serializers/funcs.py +2 -2
  187. angr/angrdb/serializers/kb.py +2 -2
  188. angr/angrdb/serializers/labels.py +2 -2
  189. angr/angrdb/serializers/loader.py +2 -2
  190. angr/angrdb/serializers/structured_code.py +4 -4
  191. angr/angrdb/serializers/variables.py +3 -3
  192. angr/angrdb/serializers/xrefs.py +2 -2
  193. angr/block.py +9 -1
  194. angr/calling_conventions.py +1 -1
  195. angr/concretization_strategies/__init__.py +17 -0
  196. angr/concretization_strategies/max.py +1 -1
  197. angr/concretization_strategies/norepeats_range.py +1 -1
  198. angr/distributed/__init__.py +6 -1
  199. angr/distributed/server.py +0 -1
  200. angr/distributed/worker.py +6 -4
  201. angr/engines/__init__.py +25 -0
  202. angr/engines/concrete.py +1 -2
  203. angr/engines/engine.py +8 -15
  204. angr/engines/failure.py +2 -2
  205. angr/engines/light/__init__.py +12 -0
  206. angr/engines/light/data.py +1 -1
  207. angr/engines/light/engine.py +6 -6
  208. angr/engines/pcode/__init__.py +7 -1
  209. angr/engines/pcode/behavior.py +1 -1
  210. angr/engines/pcode/cc.py +1 -1
  211. angr/engines/pcode/emulate.py +4 -4
  212. angr/engines/pcode/engine.py +3 -3
  213. angr/engines/pcode/lifter.py +15 -7
  214. angr/engines/procedure.py +3 -3
  215. angr/engines/soot/__init__.py +3 -0
  216. angr/engines/soot/engine.py +8 -8
  217. angr/engines/soot/expressions/__init__.py +33 -0
  218. angr/engines/soot/expressions/arrayref.py +1 -1
  219. angr/engines/soot/expressions/base.py +1 -1
  220. angr/engines/soot/expressions/cast.py +1 -1
  221. angr/engines/soot/expressions/condition.py +1 -1
  222. angr/engines/soot/expressions/constants.py +1 -1
  223. angr/engines/soot/expressions/invoke.py +2 -2
  224. angr/engines/soot/expressions/new.py +1 -1
  225. angr/engines/soot/expressions/newArray.py +1 -1
  226. angr/engines/soot/expressions/newMultiArray.py +1 -1
  227. angr/engines/soot/statements/__init__.py +16 -0
  228. angr/engines/soot/statements/assign.py +1 -1
  229. angr/engines/soot/statements/base.py +3 -3
  230. angr/engines/soot/values/__init__.py +14 -0
  231. angr/engines/soot/values/arrayref.py +1 -1
  232. angr/engines/soot/values/instancefieldref.py +1 -1
  233. angr/engines/soot/values/staticfieldref.py +1 -1
  234. angr/engines/soot/values/thisref.py +2 -2
  235. angr/engines/successors.py +8 -8
  236. angr/engines/syscall.py +1 -1
  237. angr/engines/unicorn.py +11 -11
  238. angr/engines/vex/__init__.py +18 -3
  239. angr/engines/vex/claripy/__init__.py +3 -0
  240. angr/engines/vex/claripy/ccall.py +2 -3
  241. angr/engines/vex/claripy/datalayer.py +9 -12
  242. angr/engines/vex/heavy/__init__.py +11 -1
  243. angr/engines/vex/heavy/actions.py +19 -24
  244. angr/engines/vex/heavy/heavy.py +13 -7
  245. angr/engines/vex/heavy/inspect.py +2 -2
  246. angr/engines/vex/heavy/resilience.py +2 -2
  247. angr/engines/vex/heavy/super_fastpath.py +3 -3
  248. angr/engines/vex/lifter.py +8 -6
  249. angr/engines/vex/light/__init__.py +7 -0
  250. angr/engines/vex/light/light.py +4 -4
  251. angr/engines/vex/light/slicing.py +1 -1
  252. angr/errors.py +0 -4
  253. angr/exploration_techniques/__init__.py +0 -1
  254. angr/exploration_techniques/bucketizer.py +9 -10
  255. angr/exploration_techniques/common.py +2 -2
  256. angr/exploration_techniques/director.py +4 -4
  257. angr/exploration_techniques/explorer.py +3 -3
  258. angr/exploration_techniques/loop_seer.py +3 -3
  259. angr/exploration_techniques/oppologist.py +3 -3
  260. angr/exploration_techniques/slicecutor.py +1 -1
  261. angr/exploration_techniques/spiller.py +1 -1
  262. angr/exploration_techniques/suggestions.py +4 -4
  263. angr/exploration_techniques/symbion.py +0 -1
  264. angr/exploration_techniques/threading.py +2 -2
  265. angr/exploration_techniques/tracer.py +3 -3
  266. angr/exploration_techniques/veritesting.py +1 -1
  267. angr/factory.py +5 -0
  268. angr/flirt/__init__.py +0 -1
  269. angr/{knowledge_base/knowledge_base.py → knowledge_base.py} +13 -15
  270. angr/knowledge_plugins/__init__.py +23 -1
  271. angr/knowledge_plugins/callsite_prototypes.py +2 -2
  272. angr/knowledge_plugins/cfg/cfg_manager.py +1 -1
  273. angr/knowledge_plugins/cfg/cfg_model.py +6 -6
  274. angr/knowledge_plugins/cfg/indirect_jump.py +1 -1
  275. angr/knowledge_plugins/cfg/memory_data.py +3 -2
  276. angr/knowledge_plugins/debug_variables.py +2 -2
  277. angr/knowledge_plugins/functions/__init__.py +6 -0
  278. angr/knowledge_plugins/functions/function.py +21 -16
  279. angr/knowledge_plugins/functions/function_manager.py +2 -2
  280. angr/knowledge_plugins/functions/function_parser.py +3 -3
  281. angr/knowledge_plugins/functions/soot_function.py +2 -2
  282. angr/knowledge_plugins/key_definitions/atoms.py +2 -2
  283. angr/knowledge_plugins/key_definitions/definition.py +3 -3
  284. angr/knowledge_plugins/key_definitions/key_definition_manager.py +2 -2
  285. angr/knowledge_plugins/key_definitions/uses.py +2 -2
  286. angr/knowledge_plugins/propagations/__init__.py +7 -0
  287. angr/knowledge_plugins/propagations/prop_value.py +1 -1
  288. angr/knowledge_plugins/{structured_code/manager.py → structured_code.py} +6 -3
  289. angr/knowledge_plugins/types.py +1 -1
  290. angr/knowledge_plugins/variables/__init__.py +6 -0
  291. angr/knowledge_plugins/variables/variable_access.py +3 -3
  292. angr/knowledge_plugins/variables/variable_manager.py +7 -7
  293. angr/knowledge_plugins/xrefs/__init__.py +9 -1
  294. angr/knowledge_plugins/xrefs/xref.py +5 -5
  295. angr/knowledge_plugins/xrefs/xref_manager.py +3 -3
  296. angr/lib/angr_native.so +0 -0
  297. angr/misc/__init__.py +12 -2
  298. angr/misc/loggers.py +2 -2
  299. angr/procedures/__init__.py +9 -0
  300. angr/procedures/cgc/receive.py +2 -2
  301. angr/procedures/cgc/transmit.py +1 -1
  302. angr/procedures/definitions/__init__.py +8 -8
  303. angr/procedures/definitions/cgc.py +1 -1
  304. angr/procedures/definitions/glibc.py +2 -15
  305. angr/procedures/definitions/gnulib.py +2 -6
  306. angr/procedures/definitions/libstdcpp.py +2 -2
  307. angr/procedures/definitions/linux_kernel.py +2 -3
  308. angr/procedures/definitions/linux_loader.py +1 -1
  309. angr/procedures/definitions/msvcr.py +2 -2
  310. angr/procedures/definitions/wdk_api-ms-win-dx-d3dkmt-l1-1-4.py +3 -18
  311. angr/procedures/definitions/wdk_api-ms-win-dx-d3dkmt-l1-1-6.py +3 -18
  312. angr/procedures/definitions/wdk_clfs.py +3 -18
  313. angr/procedures/definitions/wdk_fltmgr.py +3 -18
  314. angr/procedures/definitions/wdk_fwpkclnt.py +3 -18
  315. angr/procedures/definitions/wdk_fwpuclnt.py +3 -18
  316. angr/procedures/definitions/wdk_gdi32.py +3 -18
  317. angr/procedures/definitions/wdk_hal.py +3 -18
  318. angr/procedures/definitions/wdk_ksecdd.py +3 -18
  319. angr/procedures/definitions/wdk_ndis.py +3 -18
  320. angr/procedures/definitions/wdk_ntoskrnl.py +3 -18
  321. angr/procedures/definitions/wdk_offreg.py +3 -18
  322. angr/procedures/definitions/wdk_pshed.py +3 -18
  323. angr/procedures/definitions/wdk_secur32.py +3 -18
  324. angr/procedures/definitions/wdk_vhfum.py +3 -18
  325. angr/procedures/definitions/win32_aclui.py +3 -18
  326. angr/procedures/definitions/win32_activeds.py +3 -18
  327. angr/procedures/definitions/win32_advapi32.py +3 -18
  328. angr/procedures/definitions/win32_advpack.py +3 -18
  329. angr/procedures/definitions/win32_amsi.py +3 -18
  330. angr/procedures/definitions/win32_api-ms-win-appmodel-runtime-l1-1-1.py +3 -18
  331. angr/procedures/definitions/win32_api-ms-win-appmodel-runtime-l1-1-3.py +3 -18
  332. angr/procedures/definitions/win32_api-ms-win-appmodel-runtime-l1-1-6.py +3 -18
  333. angr/procedures/definitions/win32_api-ms-win-core-apiquery-l2-1-0.py +3 -18
  334. angr/procedures/definitions/win32_api-ms-win-core-backgroundtask-l1-1-0.py +3 -18
  335. angr/procedures/definitions/win32_api-ms-win-core-comm-l1-1-1.py +3 -18
  336. angr/procedures/definitions/win32_api-ms-win-core-comm-l1-1-2.py +3 -18
  337. angr/procedures/definitions/win32_api-ms-win-core-enclave-l1-1-1.py +3 -18
  338. angr/procedures/definitions/win32_api-ms-win-core-errorhandling-l1-1-3.py +3 -18
  339. angr/procedures/definitions/win32_api-ms-win-core-featurestaging-l1-1-0.py +3 -18
  340. angr/procedures/definitions/win32_api-ms-win-core-featurestaging-l1-1-1.py +3 -18
  341. angr/procedures/definitions/win32_api-ms-win-core-file-fromapp-l1-1-0.py +3 -18
  342. angr/procedures/definitions/win32_api-ms-win-core-handle-l1-1-0.py +3 -18
  343. angr/procedures/definitions/win32_api-ms-win-core-ioring-l1-1-0.py +3 -18
  344. angr/procedures/definitions/win32_api-ms-win-core-marshal-l1-1-0.py +3 -18
  345. angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-3.py +3 -18
  346. angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-4.py +3 -18
  347. angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-5.py +3 -18
  348. angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-6.py +3 -18
  349. angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-7.py +3 -18
  350. angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-8.py +3 -18
  351. angr/procedures/definitions/win32_api-ms-win-core-path-l1-1-0.py +3 -18
  352. angr/procedures/definitions/win32_api-ms-win-core-psm-appnotify-l1-1-0.py +3 -18
  353. angr/procedures/definitions/win32_api-ms-win-core-psm-appnotify-l1-1-1.py +3 -18
  354. angr/procedures/definitions/win32_api-ms-win-core-realtime-l1-1-1.py +3 -18
  355. angr/procedures/definitions/win32_api-ms-win-core-realtime-l1-1-2.py +3 -18
  356. angr/procedures/definitions/win32_api-ms-win-core-slapi-l1-1-0.py +3 -18
  357. angr/procedures/definitions/win32_api-ms-win-core-state-helpers-l1-1-0.py +3 -18
  358. angr/procedures/definitions/win32_api-ms-win-core-synch-l1-2-0.py +3 -18
  359. angr/procedures/definitions/win32_api-ms-win-core-sysinfo-l1-2-0.py +3 -18
  360. angr/procedures/definitions/win32_api-ms-win-core-sysinfo-l1-2-3.py +3 -18
  361. angr/procedures/definitions/win32_api-ms-win-core-sysinfo-l1-2-4.py +3 -18
  362. angr/procedures/definitions/win32_api-ms-win-core-sysinfo-l1-2-6.py +3 -18
  363. angr/procedures/definitions/win32_api-ms-win-core-util-l1-1-1.py +3 -18
  364. angr/procedures/definitions/win32_api-ms-win-core-winrt-error-l1-1-0.py +3 -3
  365. angr/procedures/definitions/win32_api-ms-win-core-winrt-error-l1-1-1.py +3 -3
  366. angr/procedures/definitions/win32_api-ms-win-core-winrt-l1-1-0.py +3 -3
  367. angr/procedures/definitions/win32_api-ms-win-core-winrt-registration-l1-1-0.py +3 -3
  368. angr/procedures/definitions/win32_api-ms-win-core-winrt-robuffer-l1-1-0.py +3 -3
  369. angr/procedures/definitions/win32_api-ms-win-core-winrt-roparameterizediid-l1-1-0.py +3 -3
  370. angr/procedures/definitions/win32_api-ms-win-core-winrt-string-l1-1-0.py +3 -3
  371. angr/procedures/definitions/win32_api-ms-win-core-winrt-string-l1-1-1.py +3 -3
  372. angr/procedures/definitions/win32_api-ms-win-core-wow64-l1-1-1.py +3 -18
  373. angr/procedures/definitions/win32_api-ms-win-devices-query-l1-1-0.py +3 -18
  374. angr/procedures/definitions/win32_api-ms-win-devices-query-l1-1-1.py +3 -18
  375. angr/procedures/definitions/win32_api-ms-win-dx-d3dkmt-l1-1-0.py +3 -18
  376. angr/procedures/definitions/win32_api-ms-win-gaming-deviceinformation-l1-1-0.py +3 -18
  377. angr/procedures/definitions/win32_api-ms-win-gaming-expandedresources-l1-1-0.py +3 -18
  378. angr/procedures/definitions/win32_api-ms-win-gaming-tcui-l1-1-0.py +3 -18
  379. angr/procedures/definitions/win32_api-ms-win-gaming-tcui-l1-1-1.py +3 -18
  380. angr/procedures/definitions/win32_api-ms-win-gaming-tcui-l1-1-2.py +3 -18
  381. angr/procedures/definitions/win32_api-ms-win-gaming-tcui-l1-1-3.py +3 -18
  382. angr/procedures/definitions/win32_api-ms-win-gaming-tcui-l1-1-4.py +3 -18
  383. angr/procedures/definitions/win32_api-ms-win-mm-misc-l1-1-1.py +3 -18
  384. angr/procedures/definitions/win32_api-ms-win-net-isolation-l1-1-0.py +3 -18
  385. angr/procedures/definitions/win32_api-ms-win-security-base-l1-2-2.py +3 -18
  386. angr/procedures/definitions/win32_api-ms-win-security-isolatedcontainer-l1-1-0.py +3 -18
  387. angr/procedures/definitions/win32_api-ms-win-security-isolatedcontainer-l1-1-1.py +3 -18
  388. angr/procedures/definitions/win32_api-ms-win-service-core-l1-1-3.py +3 -18
  389. angr/procedures/definitions/win32_api-ms-win-service-core-l1-1-4.py +3 -18
  390. angr/procedures/definitions/win32_api-ms-win-service-core-l1-1-5.py +3 -18
  391. angr/procedures/definitions/win32_api-ms-win-shcore-scaling-l1-1-0.py +3 -18
  392. angr/procedures/definitions/win32_api-ms-win-shcore-scaling-l1-1-1.py +3 -18
  393. angr/procedures/definitions/win32_api-ms-win-shcore-scaling-l1-1-2.py +3 -18
  394. angr/procedures/definitions/win32_api-ms-win-shcore-stream-winrt-l1-1-0.py +3 -3
  395. angr/procedures/definitions/win32_api-ms-win-wsl-api-l1-1-0.py +3 -18
  396. angr/procedures/definitions/win32_apphelp.py +3 -18
  397. angr/procedures/definitions/win32_authz.py +3 -18
  398. angr/procedures/definitions/win32_avicap32.py +3 -18
  399. angr/procedures/definitions/win32_avifil32.py +3 -18
  400. angr/procedures/definitions/win32_avrt.py +3 -18
  401. angr/procedures/definitions/win32_bcp47mrm.py +3 -18
  402. angr/procedures/definitions/win32_bcrypt.py +3 -18
  403. angr/procedures/definitions/win32_bcryptprimitives.py +3 -18
  404. angr/procedures/definitions/win32_bluetoothapis.py +3 -18
  405. angr/procedures/definitions/win32_bthprops.py +3 -3
  406. angr/procedures/definitions/win32_bthprops_cpl.py +3 -18
  407. angr/procedures/definitions/win32_cabinet.py +3 -18
  408. angr/procedures/definitions/win32_certadm.py +3 -18
  409. angr/procedures/definitions/win32_certpoleng.py +3 -18
  410. angr/procedures/definitions/win32_cfgmgr32.py +3 -18
  411. angr/procedures/definitions/win32_chakra.py +3 -18
  412. angr/procedures/definitions/win32_cldapi.py +3 -18
  413. angr/procedures/definitions/win32_clfsw32.py +3 -18
  414. angr/procedures/definitions/win32_clusapi.py +3 -18
  415. angr/procedures/definitions/win32_comctl32.py +3 -18
  416. angr/procedures/definitions/win32_comdlg32.py +3 -18
  417. angr/procedures/definitions/win32_compstui.py +3 -18
  418. angr/procedures/definitions/win32_computecore.py +3 -18
  419. angr/procedures/definitions/win32_computenetwork.py +3 -18
  420. angr/procedures/definitions/win32_computestorage.py +3 -18
  421. angr/procedures/definitions/win32_comsvcs.py +3 -18
  422. angr/procedures/definitions/win32_coremessaging.py +3 -3
  423. angr/procedures/definitions/win32_credui.py +3 -18
  424. angr/procedures/definitions/win32_crypt32.py +3 -18
  425. angr/procedures/definitions/win32_cryptnet.py +3 -18
  426. angr/procedures/definitions/win32_cryptui.py +3 -18
  427. angr/procedures/definitions/win32_cryptxml.py +3 -18
  428. angr/procedures/definitions/win32_cscapi.py +3 -18
  429. angr/procedures/definitions/win32_d2d1.py +3 -18
  430. angr/procedures/definitions/win32_d3d10.py +3 -18
  431. angr/procedures/definitions/win32_d3d10_1.py +3 -18
  432. angr/procedures/definitions/win32_d3d11.py +3 -18
  433. angr/procedures/definitions/win32_d3d12.py +3 -18
  434. angr/procedures/definitions/win32_d3d9.py +3 -18
  435. angr/procedures/definitions/win32_d3dcompiler_47.py +3 -18
  436. angr/procedures/definitions/win32_d3dcsx.py +3 -18
  437. angr/procedures/definitions/win32_davclnt.py +3 -18
  438. angr/procedures/definitions/win32_dbgeng.py +3 -18
  439. angr/procedures/definitions/win32_dbghelp.py +3 -18
  440. angr/procedures/definitions/win32_dbgmodel.py +3 -18
  441. angr/procedures/definitions/win32_dciman32.py +3 -18
  442. angr/procedures/definitions/win32_dcomp.py +3 -18
  443. angr/procedures/definitions/win32_ddraw.py +3 -18
  444. angr/procedures/definitions/win32_deviceaccess.py +3 -18
  445. angr/procedures/definitions/win32_dflayout.py +3 -18
  446. angr/procedures/definitions/win32_dhcpcsvc.py +3 -18
  447. angr/procedures/definitions/win32_dhcpcsvc6.py +3 -18
  448. angr/procedures/definitions/win32_dhcpsapi.py +3 -18
  449. angr/procedures/definitions/win32_diagnosticdataquery.py +3 -18
  450. angr/procedures/definitions/win32_dinput8.py +3 -18
  451. angr/procedures/definitions/win32_directml.py +3 -18
  452. angr/procedures/definitions/win32_dmprocessxmlfiltered.py +3 -18
  453. angr/procedures/definitions/win32_dnsapi.py +3 -18
  454. angr/procedures/definitions/win32_drt.py +3 -18
  455. angr/procedures/definitions/win32_drtprov.py +3 -18
  456. angr/procedures/definitions/win32_drttransport.py +3 -18
  457. angr/procedures/definitions/win32_dsound.py +3 -18
  458. angr/procedures/definitions/win32_dsparse.py +3 -18
  459. angr/procedures/definitions/win32_dsprop.py +3 -18
  460. angr/procedures/definitions/win32_dssec.py +3 -18
  461. angr/procedures/definitions/win32_dsuiext.py +3 -18
  462. angr/procedures/definitions/win32_dwmapi.py +3 -18
  463. angr/procedures/definitions/win32_dwrite.py +3 -18
  464. angr/procedures/definitions/win32_dxcompiler.py +3 -18
  465. angr/procedures/definitions/win32_dxcore.py +3 -18
  466. angr/procedures/definitions/win32_dxgi.py +3 -18
  467. angr/procedures/definitions/win32_dxva2.py +3 -18
  468. angr/procedures/definitions/win32_eappcfg.py +3 -18
  469. angr/procedures/definitions/win32_eappprxy.py +3 -18
  470. angr/procedures/definitions/win32_efswrt.py +3 -18
  471. angr/procedures/definitions/win32_elscore.py +3 -18
  472. angr/procedures/definitions/win32_esent.py +3 -18
  473. angr/procedures/definitions/win32_evr.py +3 -18
  474. angr/procedures/definitions/win32_faultrep.py +3 -18
  475. angr/procedures/definitions/win32_fhsvcctl.py +3 -18
  476. angr/procedures/definitions/win32_firewallapi.py +3 -18
  477. angr/procedures/definitions/win32_fltlib.py +3 -18
  478. angr/procedures/definitions/win32_fontsub.py +3 -18
  479. angr/procedures/definitions/win32_forceinline.py +3 -18
  480. angr/procedures/definitions/win32_fwpuclnt.py +3 -18
  481. angr/procedures/definitions/win32_fxsutility.py +3 -18
  482. angr/procedures/definitions/win32_gdi32.py +3 -18
  483. angr/procedures/definitions/win32_gdiplus.py +3 -18
  484. angr/procedures/definitions/win32_glu32.py +3 -18
  485. angr/procedures/definitions/win32_gpedit.py +3 -18
  486. angr/procedures/definitions/win32_hhctrl_ocx.py +3 -18
  487. angr/procedures/definitions/win32_hid.py +3 -18
  488. angr/procedures/definitions/win32_hlink.py +3 -18
  489. angr/procedures/definitions/win32_hrtfapo.py +3 -18
  490. angr/procedures/definitions/win32_httpapi.py +3 -18
  491. angr/procedures/definitions/win32_icm32.py +3 -18
  492. angr/procedures/definitions/win32_icmui.py +3 -18
  493. angr/procedures/definitions/win32_icu.py +3 -18
  494. angr/procedures/definitions/win32_ieframe.py +3 -18
  495. angr/procedures/definitions/win32_imagehlp.py +3 -18
  496. angr/procedures/definitions/win32_imgutil.py +3 -18
  497. angr/procedures/definitions/win32_imm32.py +3 -18
  498. angr/procedures/definitions/win32_infocardapi.py +3 -18
  499. angr/procedures/definitions/win32_inkobjcore.py +3 -18
  500. angr/procedures/definitions/win32_iphlpapi.py +3 -18
  501. angr/procedures/definitions/win32_iscsidsc.py +3 -18
  502. angr/procedures/definitions/win32_isolatedwindowsenvironmentutils.py +3 -18
  503. angr/procedures/definitions/win32_kernel32.py +3 -18
  504. angr/procedures/definitions/win32_kernelbase.py +3 -18
  505. angr/procedures/definitions/win32_keycredmgr.py +3 -18
  506. angr/procedures/definitions/win32_ksproxy_ax.py +3 -18
  507. angr/procedures/definitions/win32_ksuser.py +3 -18
  508. angr/procedures/definitions/win32_ktmw32.py +3 -18
  509. angr/procedures/definitions/win32_licenseprotection.py +3 -18
  510. angr/procedures/definitions/win32_loadperf.py +3 -18
  511. angr/procedures/definitions/win32_magnification.py +3 -18
  512. angr/procedures/definitions/win32_mapi32.py +3 -18
  513. angr/procedures/definitions/win32_mdmlocalmanagement.py +3 -18
  514. angr/procedures/definitions/win32_mdmregistration.py +3 -18
  515. angr/procedures/definitions/win32_mf.py +3 -18
  516. angr/procedures/definitions/win32_mfcore.py +3 -18
  517. angr/procedures/definitions/win32_mfplat.py +3 -18
  518. angr/procedures/definitions/win32_mfplay.py +3 -18
  519. angr/procedures/definitions/win32_mfreadwrite.py +3 -18
  520. angr/procedures/definitions/win32_mfsensorgroup.py +3 -18
  521. angr/procedures/definitions/win32_mfsrcsnk.py +3 -18
  522. angr/procedures/definitions/win32_mgmtapi.py +3 -18
  523. angr/procedures/definitions/win32_mi.py +3 -18
  524. angr/procedures/definitions/win32_mmdevapi.py +3 -18
  525. angr/procedures/definitions/win32_mpr.py +3 -18
  526. angr/procedures/definitions/win32_mprapi.py +3 -18
  527. angr/procedures/definitions/win32_mqrt.py +3 -18
  528. angr/procedures/definitions/win32_mrmsupport.py +3 -18
  529. angr/procedures/definitions/win32_msacm32.py +3 -18
  530. angr/procedures/definitions/win32_msajapi.py +3 -18
  531. angr/procedures/definitions/win32_mscms.py +3 -18
  532. angr/procedures/definitions/win32_mscoree.py +3 -18
  533. angr/procedures/definitions/win32_msctfmonitor.py +3 -18
  534. angr/procedures/definitions/win32_msdelta.py +3 -18
  535. angr/procedures/definitions/win32_msdmo.py +3 -18
  536. angr/procedures/definitions/win32_msdrm.py +3 -18
  537. angr/procedures/definitions/win32_msi.py +3 -18
  538. angr/procedures/definitions/win32_msimg32.py +3 -18
  539. angr/procedures/definitions/win32_mspatcha.py +3 -18
  540. angr/procedures/definitions/win32_mspatchc.py +3 -18
  541. angr/procedures/definitions/win32_msports.py +3 -18
  542. angr/procedures/definitions/win32_msrating.py +3 -18
  543. angr/procedures/definitions/win32_mssign32.py +3 -18
  544. angr/procedures/definitions/win32_mstask.py +3 -18
  545. angr/procedures/definitions/win32_msvfw32.py +3 -18
  546. angr/procedures/definitions/win32_mswsock.py +3 -18
  547. angr/procedures/definitions/win32_mtxdm.py +3 -18
  548. angr/procedures/definitions/win32_ncrypt.py +3 -18
  549. angr/procedures/definitions/win32_ndfapi.py +3 -18
  550. angr/procedures/definitions/win32_netapi32.py +3 -18
  551. angr/procedures/definitions/win32_netsh.py +3 -18
  552. angr/procedures/definitions/win32_netshell.py +3 -18
  553. angr/procedures/definitions/win32_newdev.py +3 -18
  554. angr/procedures/definitions/win32_ninput.py +3 -18
  555. angr/procedures/definitions/win32_normaliz.py +3 -18
  556. angr/procedures/definitions/win32_ntdll.py +3 -18
  557. angr/procedures/definitions/win32_ntdllk.py +3 -18
  558. angr/procedures/definitions/win32_ntdsapi.py +3 -18
  559. angr/procedures/definitions/win32_ntlanman.py +3 -18
  560. angr/procedures/definitions/win32_odbc32.py +3 -18
  561. angr/procedures/definitions/win32_odbcbcp.py +3 -18
  562. angr/procedures/definitions/win32_ole32.py +3 -18
  563. angr/procedures/definitions/win32_oleacc.py +3 -18
  564. angr/procedures/definitions/win32_oleaut32.py +3 -18
  565. angr/procedures/definitions/win32_oledlg.py +3 -18
  566. angr/procedures/definitions/win32_ondemandconnroutehelper.py +3 -18
  567. angr/procedures/definitions/win32_opengl32.py +3 -18
  568. angr/procedures/definitions/win32_opmxbox.py +3 -18
  569. angr/procedures/definitions/win32_p2p.py +3 -18
  570. angr/procedures/definitions/win32_p2pgraph.py +3 -18
  571. angr/procedures/definitions/win32_pdh.py +3 -18
  572. angr/procedures/definitions/win32_peerdist.py +3 -18
  573. angr/procedures/definitions/win32_powrprof.py +3 -18
  574. angr/procedures/definitions/win32_prntvpt.py +3 -18
  575. angr/procedures/definitions/win32_projectedfslib.py +3 -18
  576. angr/procedures/definitions/win32_propsys.py +3 -18
  577. angr/procedures/definitions/win32_psapi.py +3 -18
  578. angr/procedures/definitions/win32_quartz.py +3 -18
  579. angr/procedures/definitions/win32_query.py +3 -18
  580. angr/procedures/definitions/win32_qwave.py +3 -18
  581. angr/procedures/definitions/win32_rasapi32.py +3 -18
  582. angr/procedures/definitions/win32_rasdlg.py +3 -18
  583. angr/procedures/definitions/win32_resutils.py +3 -18
  584. angr/procedures/definitions/win32_rometadata.py +3 -3
  585. angr/procedures/definitions/win32_rpcns4.py +3 -18
  586. angr/procedures/definitions/win32_rpcproxy.py +3 -18
  587. angr/procedures/definitions/win32_rpcrt4.py +3 -18
  588. angr/procedures/definitions/win32_rstrtmgr.py +3 -18
  589. angr/procedures/definitions/win32_rtm.py +3 -18
  590. angr/procedures/definitions/win32_rtutils.py +3 -18
  591. angr/procedures/definitions/win32_rtworkq.py +3 -18
  592. angr/procedures/definitions/win32_sas.py +3 -18
  593. angr/procedures/definitions/win32_scarddlg.py +3 -18
  594. angr/procedures/definitions/win32_schannel.py +3 -18
  595. angr/procedures/definitions/win32_sechost.py +3 -18
  596. angr/procedures/definitions/win32_secur32.py +3 -18
  597. angr/procedures/definitions/win32_sensapi.py +3 -18
  598. angr/procedures/definitions/win32_sensorsutilsv2.py +3 -18
  599. angr/procedures/definitions/win32_setupapi.py +3 -18
  600. angr/procedures/definitions/win32_sfc.py +3 -18
  601. angr/procedures/definitions/win32_shdocvw.py +3 -18
  602. angr/procedures/definitions/win32_shell32.py +3 -18
  603. angr/procedures/definitions/win32_shlwapi.py +3 -18
  604. angr/procedures/definitions/win32_slc.py +3 -18
  605. angr/procedures/definitions/win32_slcext.py +3 -18
  606. angr/procedures/definitions/win32_slwga.py +3 -18
  607. angr/procedures/definitions/win32_snmpapi.py +3 -18
  608. angr/procedures/definitions/win32_spoolss.py +3 -18
  609. angr/procedures/definitions/win32_srclient.py +3 -18
  610. angr/procedures/definitions/win32_srpapi.py +3 -18
  611. angr/procedures/definitions/win32_sspicli.py +3 -18
  612. angr/procedures/definitions/win32_sti.py +3 -18
  613. angr/procedures/definitions/win32_t2embed.py +3 -18
  614. angr/procedures/definitions/win32_tapi32.py +3 -18
  615. angr/procedures/definitions/win32_tbs.py +3 -18
  616. angr/procedures/definitions/win32_tdh.py +3 -18
  617. angr/procedures/definitions/win32_tokenbinding.py +3 -18
  618. angr/procedures/definitions/win32_traffic.py +3 -18
  619. angr/procedures/definitions/win32_txfw32.py +3 -18
  620. angr/procedures/definitions/win32_ualapi.py +3 -18
  621. angr/procedures/definitions/win32_uiautomationcore.py +3 -18
  622. angr/procedures/definitions/win32_urlmon.py +3 -18
  623. angr/procedures/definitions/win32_user32.py +4 -19
  624. angr/procedures/definitions/win32_userenv.py +3 -18
  625. angr/procedures/definitions/win32_usp10.py +3 -18
  626. angr/procedures/definitions/win32_uxtheme.py +3 -18
  627. angr/procedures/definitions/win32_verifier.py +3 -18
  628. angr/procedures/definitions/win32_version.py +3 -18
  629. angr/procedures/definitions/win32_vertdll.py +3 -18
  630. angr/procedures/definitions/win32_virtdisk.py +3 -18
  631. angr/procedures/definitions/win32_vmdevicehost.py +3 -18
  632. angr/procedures/definitions/win32_vmsavedstatedumpprovider.py +3 -18
  633. angr/procedures/definitions/win32_vssapi.py +3 -18
  634. angr/procedures/definitions/win32_wcmapi.py +3 -18
  635. angr/procedures/definitions/win32_wdsbp.py +3 -18
  636. angr/procedures/definitions/win32_wdsclientapi.py +3 -18
  637. angr/procedures/definitions/win32_wdsmc.py +3 -18
  638. angr/procedures/definitions/win32_wdspxe.py +3 -18
  639. angr/procedures/definitions/win32_wdstptc.py +3 -18
  640. angr/procedures/definitions/win32_webauthn.py +3 -18
  641. angr/procedures/definitions/win32_webservices.py +3 -18
  642. angr/procedures/definitions/win32_websocket.py +3 -18
  643. angr/procedures/definitions/win32_wecapi.py +3 -18
  644. angr/procedures/definitions/win32_wer.py +3 -18
  645. angr/procedures/definitions/win32_wevtapi.py +3 -18
  646. angr/procedures/definitions/win32_winbio.py +3 -18
  647. angr/procedures/definitions/win32_windows_ai_machinelearning.py +3 -18
  648. angr/procedures/definitions/win32_windows_data_pdf.py +3 -3
  649. angr/procedures/definitions/win32_windows_media_mediacontrol.py +3 -18
  650. angr/procedures/definitions/win32_windows_networking.py +3 -18
  651. angr/procedures/definitions/win32_windows_ui_xaml.py +3 -18
  652. angr/procedures/definitions/win32_windowscodecs.py +3 -18
  653. angr/procedures/definitions/win32_winfax.py +3 -18
  654. angr/procedures/definitions/win32_winhttp.py +3 -18
  655. angr/procedures/definitions/win32_winhvemulation.py +3 -18
  656. angr/procedures/definitions/win32_winhvplatform.py +3 -18
  657. angr/procedures/definitions/win32_wininet.py +3 -18
  658. angr/procedures/definitions/win32_winml.py +3 -18
  659. angr/procedures/definitions/win32_winmm.py +3 -18
  660. angr/procedures/definitions/win32_winscard.py +3 -18
  661. angr/procedures/definitions/win32_winspool.py +3 -3
  662. angr/procedures/definitions/win32_winspool_drv.py +3 -18
  663. angr/procedures/definitions/win32_wintrust.py +3 -18
  664. angr/procedures/definitions/win32_winusb.py +3 -18
  665. angr/procedures/definitions/win32_wlanapi.py +3 -18
  666. angr/procedures/definitions/win32_wlanui.py +3 -18
  667. angr/procedures/definitions/win32_wldap32.py +3 -18
  668. angr/procedures/definitions/win32_wldp.py +3 -18
  669. angr/procedures/definitions/win32_wmvcore.py +3 -18
  670. angr/procedures/definitions/win32_wnvapi.py +3 -18
  671. angr/procedures/definitions/win32_wofutil.py +3 -18
  672. angr/procedures/definitions/win32_ws2_32.py +3 -18
  673. angr/procedures/definitions/win32_wscapi.py +3 -18
  674. angr/procedures/definitions/win32_wsclient.py +3 -18
  675. angr/procedures/definitions/win32_wsdapi.py +3 -18
  676. angr/procedures/definitions/win32_wsmsvc.py +3 -18
  677. angr/procedures/definitions/win32_wsnmp32.py +3 -18
  678. angr/procedures/definitions/win32_wtsapi32.py +3 -18
  679. angr/procedures/definitions/win32_xaudio2_8.py +3 -18
  680. angr/procedures/definitions/win32_xinput1_4.py +3 -18
  681. angr/procedures/definitions/win32_xinputuap.py +3 -3
  682. angr/procedures/definitions/win32_xmllite.py +3 -18
  683. angr/procedures/definitions/win32_xolehlp.py +3 -18
  684. angr/procedures/definitions/win32_xpsprint.py +3 -18
  685. angr/procedures/glibc/scanf.py +2 -2
  686. angr/procedures/glibc/sscanf.py +1 -1
  687. angr/procedures/java/__init__.py +6 -3
  688. angr/procedures/java/unconstrained.py +3 -3
  689. angr/procedures/java_io/read.py +1 -1
  690. angr/procedures/java_io/write.py +1 -1
  691. angr/procedures/java_jni/__init__.py +4 -4
  692. angr/procedures/java_jni/array_operations.py +2 -2
  693. angr/procedures/java_jni/field_access.py +3 -3
  694. angr/procedures/java_jni/method_calls.py +2 -2
  695. angr/procedures/java_jni/object_operations.py +1 -1
  696. angr/procedures/java_jni/string_operations.py +1 -1
  697. angr/procedures/java_lang/character.py +1 -1
  698. angr/procedures/java_lang/double.py +1 -1
  699. angr/procedures/java_lang/exit.py +1 -1
  700. angr/procedures/java_lang/getsimplename.py +1 -1
  701. angr/procedures/java_lang/integer.py +2 -2
  702. angr/procedures/java_lang/load_library.py +1 -1
  703. angr/procedures/java_lang/math.py +1 -1
  704. angr/procedures/java_lang/string.py +3 -3
  705. angr/procedures/java_lang/stringbuilder.py +2 -2
  706. angr/procedures/java_lang/system.py +1 -1
  707. angr/procedures/java_util/collection.py +2 -2
  708. angr/procedures/java_util/iterator.py +2 -2
  709. angr/procedures/java_util/list.py +3 -3
  710. angr/procedures/java_util/map.py +3 -3
  711. angr/procedures/java_util/random.py +1 -1
  712. angr/procedures/java_util/scanner_nextline.py +2 -2
  713. angr/procedures/libc/fseek.py +1 -1
  714. angr/procedures/libc/memcpy.py +1 -1
  715. angr/procedures/libc/strlen.py +12 -4
  716. angr/procedures/libc/strncmp.py +9 -4
  717. angr/procedures/linux_kernel/iovec.py +3 -3
  718. angr/procedures/linux_kernel/mmap.py +1 -1
  719. angr/procedures/linux_kernel/stat.py +1 -1
  720. angr/procedures/linux_kernel/sysinfo.py +1 -1
  721. angr/procedures/posix/bzero.py +1 -1
  722. angr/procedures/posix/mmap.py +1 -1
  723. angr/procedures/posix/send.py +1 -1
  724. angr/procedures/posix/syslog.py +2 -3
  725. angr/procedures/procedure_dict.py +2 -2
  726. angr/procedures/stubs/format_parser.py +5 -5
  727. angr/procedures/tracer/random.py +1 -1
  728. angr/procedures/tracer/receive.py +1 -1
  729. angr/procedures/tracer/transmit.py +1 -1
  730. angr/procedures/uclibc/__uClibc_main.py +1 -1
  731. angr/protos/__init__.py +8 -0
  732. angr/protos/cfg_pb2.py +23 -15
  733. angr/protos/function_pb2.py +19 -21
  734. angr/protos/primitives_pb2.py +46 -112
  735. angr/protos/variables_pb2.py +38 -114
  736. angr/protos/xrefs_pb2.py +17 -18
  737. angr/sim_options.py +0 -4
  738. angr/sim_state.py +2 -78
  739. angr/sim_type.py +9 -18
  740. angr/simos/__init__.py +12 -0
  741. angr/simos/cgc.py +5 -5
  742. angr/simos/javavm.py +12 -12
  743. angr/simos/linux.py +5 -5
  744. angr/simos/simos.py +11 -15
  745. angr/simos/userland.py +3 -3
  746. angr/simos/windows.py +5 -10
  747. angr/state_plugins/__init__.py +84 -28
  748. angr/state_plugins/callstack.py +1 -1
  749. angr/state_plugins/concrete.py +3 -4
  750. angr/state_plugins/filesystem.py +3 -3
  751. angr/state_plugins/gdb.py +1 -1
  752. angr/state_plugins/heap/__init__.py +14 -5
  753. angr/state_plugins/heap/heap_base.py +5 -4
  754. angr/state_plugins/heap/heap_brk.py +1 -1
  755. angr/state_plugins/heap/heap_freelist.py +1 -1
  756. angr/state_plugins/heap/heap_ptmalloc.py +2 -20
  757. angr/state_plugins/heap/utils.py +1 -1
  758. angr/state_plugins/history.py +2 -2
  759. angr/state_plugins/javavm_classloader.py +3 -3
  760. angr/state_plugins/jni_references.py +1 -1
  761. angr/state_plugins/light_registers.py +3 -3
  762. angr/state_plugins/log.py +1 -1
  763. angr/state_plugins/plugin.py +3 -2
  764. angr/state_plugins/posix.py +3 -3
  765. angr/state_plugins/preconstrainer.py +4 -4
  766. angr/state_plugins/scratch.py +3 -3
  767. angr/state_plugins/sim_action_object.py +1 -1
  768. angr/state_plugins/solver.py +85 -32
  769. angr/state_plugins/symbolizer.py +2 -3
  770. angr/state_plugins/uc_manager.py +1 -1
  771. angr/state_plugins/unicorn_engine.py +4 -4
  772. angr/state_plugins/view.py +1 -1
  773. angr/storage/__init__.py +9 -4
  774. angr/storage/file.py +4 -4
  775. angr/storage/memory_mixins/__init__.py +89 -162
  776. angr/storage/memory_mixins/actions_mixin.py +3 -3
  777. angr/storage/memory_mixins/address_concretization_mixin.py +7 -7
  778. angr/storage/memory_mixins/bvv_conversion_mixin.py +2 -2
  779. angr/storage/memory_mixins/clouseau_mixin.py +3 -2
  780. angr/storage/memory_mixins/conditional_store_mixin.py +1 -1
  781. angr/storage/memory_mixins/convenient_mappings_mixin.py +3 -3
  782. angr/storage/memory_mixins/default_filler_mixin.py +4 -4
  783. angr/storage/memory_mixins/dirty_addrs_mixin.py +2 -1
  784. angr/storage/memory_mixins/hex_dumper_mixin.py +2 -2
  785. angr/storage/memory_mixins/{javavm_memory/javavm_memory_mixin.py → javavm_memory_mixin.py} +15 -12
  786. angr/storage/memory_mixins/{keyvalue_memory/keyvalue_memory_mixin.py → keyvalue_memory_mixin.py} +11 -6
  787. angr/storage/memory_mixins/label_merger_mixin.py +1 -1
  788. angr/storage/memory_mixins/memory_mixin.py +163 -0
  789. angr/storage/memory_mixins/multi_value_merger_mixin.py +1 -1
  790. angr/storage/memory_mixins/name_resolution_mixin.py +5 -3
  791. angr/storage/memory_mixins/paged_memory/paged_memory_mixin.py +2 -2
  792. angr/storage/memory_mixins/paged_memory/paged_memory_multivalue_mixin.py +2 -1
  793. angr/storage/memory_mixins/paged_memory/pages/__init__.py +16 -1
  794. angr/storage/memory_mixins/paged_memory/pages/history_tracking_mixin.py +1 -1
  795. angr/storage/memory_mixins/paged_memory/pages/ispo_mixin.py +2 -1
  796. angr/storage/memory_mixins/paged_memory/pages/mv_list_page.py +1 -1
  797. angr/storage/memory_mixins/paged_memory/pages/permissions_mixin.py +1 -1
  798. angr/storage/memory_mixins/paged_memory/pages/refcount_mixin.py +2 -1
  799. angr/storage/memory_mixins/paged_memory/pages/ultra_page.py +2 -2
  800. angr/storage/memory_mixins/paged_memory/stack_allocation_mixin.py +2 -2
  801. angr/storage/memory_mixins/regioned_memory/__init__.py +10 -0
  802. angr/storage/memory_mixins/regioned_memory/abstract_merger_mixin.py +1 -2
  803. angr/storage/memory_mixins/regioned_memory/region_category_mixin.py +2 -1
  804. angr/storage/memory_mixins/regioned_memory/region_data.py +2 -2
  805. angr/storage/memory_mixins/regioned_memory/region_meta_mixin.py +1 -1
  806. angr/storage/memory_mixins/regioned_memory/regioned_address_concretization_mixin.py +4 -4
  807. angr/storage/memory_mixins/regioned_memory/regioned_memory_mixin.py +8 -20
  808. angr/storage/memory_mixins/regioned_memory/static_find_mixin.py +1 -1
  809. angr/storage/memory_mixins/simple_interface_mixin.py +3 -2
  810. angr/storage/memory_mixins/simplification_mixin.py +3 -2
  811. angr/storage/memory_mixins/size_resolution_mixin.py +2 -2
  812. angr/storage/memory_mixins/slotted_memory.py +3 -3
  813. angr/storage/memory_mixins/smart_find_mixin.py +2 -2
  814. angr/storage/memory_mixins/symbolic_merger_mixin.py +2 -1
  815. angr/storage/memory_mixins/top_merger_mixin.py +3 -2
  816. angr/storage/memory_mixins/underconstrained_mixin.py +5 -3
  817. angr/storage/memory_mixins/unwrapper_mixin.py +3 -2
  818. angr/storage/memory_object.py +1 -1
  819. angr/utils/__init__.py +12 -0
  820. angr/utils/enums_conv.py +1 -1
  821. angr/utils/library.py +2 -2
  822. angr/utils/mp.py +1 -1
  823. {angr-9.2.119.dist-info → angr-9.2.121.dist-info}/METADATA +7 -8
  824. angr-9.2.121.dist-info/RECORD +1342 -0
  825. angr/analyses/s_liveness/__init__.py +0 -2
  826. angr/analyses/s_propagator/__init__.py +0 -2
  827. angr/analyses/s_reaching_definitions/s_rda.py +0 -479
  828. angr/knowledge_base/__init__.py +0 -2
  829. angr/knowledge_plugins/structured_code/__init__.py +0 -2
  830. angr/knowledge_plugins/sync/__init__.py +0 -2
  831. angr/knowledge_plugins/sync/sync_controller.py +0 -324
  832. angr/misc/range.py +0 -24
  833. angr/misc/weakpatch.py +0 -59
  834. angr/storage/memory_mixins/javavm_memory/__init__.py +0 -2
  835. angr/storage/memory_mixins/keyvalue_memory/__init__.py +0 -2
  836. angr/storage/pcap.py +0 -65
  837. angr/utils/typing.py +0 -18
  838. angr-9.2.119.dist-info/RECORD +0 -1345
  839. /angr/analyses/{s_liveness/s_liveness.py → s_liveness.py} +0 -0
  840. {angr-9.2.119.dist-info → angr-9.2.121.dist-info}/LICENSE +0 -0
  841. {angr-9.2.119.dist-info → angr-9.2.121.dist-info}/WHEEL +0 -0
  842. {angr-9.2.119.dist-info → angr-9.2.121.dist-info}/entry_points.txt +0 -0
  843. {angr-9.2.119.dist-info → angr-9.2.121.dist-info}/top_level.txt +0 -0
@@ -4,8 +4,8 @@ import logging
4
4
  import claripy
5
5
 
6
6
  from .plugin import SimStatePlugin
7
- from .. import sim_options as o
8
- from ..errors import AngrError
7
+ from angr import sim_options as o
8
+ from angr.errors import AngrError
9
9
 
10
10
 
11
11
  l = logging.getLogger(name=__name__)
@@ -55,8 +55,8 @@ class SimStatePreconstrainer(SimStatePlugin):
55
55
  """
56
56
  if not isinstance(value, claripy.ast.Base):
57
57
  value = claripy.BVV(value, len(variable))
58
- elif value.op != "BVV":
59
- raise ValueError("Passed a value to preconstrain that was not a BVV or a string")
58
+ elif value.op not in ["BVV", "FPV"]:
59
+ raise ValueError("Passed a value to preconstrain that was not a BVV or FPV or a string")
60
60
 
61
61
  if not variable.is_leaf():
62
62
  l.warning(
@@ -167,10 +167,10 @@ class SimStateScratch(SimStatePlugin):
167
167
 
168
168
  # pylint:disable=wrong-import-position
169
169
  from .sim_action import SimActionObject, SimActionData
170
- from ..errors import SimValueError, SimMissingTempError
171
- from .. import sim_options as o
170
+ from angr.errors import SimValueError, SimMissingTempError
171
+ from angr import sim_options as o
172
172
  from .inspect import BP_AFTER, BP_BEFORE
173
173
 
174
- from ..sim_state import SimState
174
+ from angr.sim_state import SimState
175
175
 
176
176
  SimState.register_default("scratch", SimStateScratch)
@@ -9,7 +9,7 @@ import claripy
9
9
  from angr import sim_options as o
10
10
  from angr.errors import SimActionError
11
11
  from .sim_action import SimActionData, SimActionOperation
12
- from ..sim_state import SimState
12
+ from angr.sim_state import SimState
13
13
 
14
14
  if typing.TYPE_CHECKING:
15
15
  from claripy.annotation import Annotation
@@ -1,4 +1,5 @@
1
1
  from __future__ import annotations
2
+
2
3
  import functools
3
4
  import time
4
5
  import logging
@@ -10,8 +11,10 @@ import claripy
10
11
  from angr import sim_options as o
11
12
  from angr.errors import SimValueError, SimUnsatError, SimSolverModeError, SimSolverOptionError
12
13
  from angr.sim_state import SimState
14
+ from .inspect import BP_AFTER, BP_BEFORE
13
15
  from .plugin import SimStatePlugin
14
16
  from .sim_action_object import ast_stripping_decorator, SimActionObject
17
+ from .sim_action import SimActionConstraint
15
18
 
16
19
  l = logging.getLogger(name=__name__)
17
20
 
@@ -346,23 +349,19 @@ class SimSolver(SimStatePlugin):
346
349
  """
347
350
  if o.SYMBOLIC_INITIAL_VALUES in self.state.options:
348
351
  # Return a symbolic value
349
- if o.ABSTRACT_MEMORY in self.state.options:
350
- l.debug("Creating new top StridedInterval")
351
- r = claripy.TSI(bits=bits, name=name, uninitialized=uninitialized, **kwargs)
352
- else:
353
- l.debug("Creating new unconstrained BV named %s", name)
354
- r = self.BVS(
355
- name,
356
- bits,
357
- uninitialized=uninitialized,
358
- key=key,
359
- eternal=eternal,
360
- inspect=inspect,
361
- events=events,
362
- **kwargs,
363
- )
364
- if uc_alloc_depth is not None:
365
- self.state.uc_manager.set_alloc_depth(r, uc_alloc_depth)
352
+ l.debug("Creating new unconstrained BV named %s", name)
353
+ r = self.BVS(
354
+ name,
355
+ bits,
356
+ uninitialized=uninitialized,
357
+ key=key,
358
+ eternal=eternal,
359
+ inspect=inspect,
360
+ events=events,
361
+ **kwargs,
362
+ )
363
+ if uc_alloc_depth is not None:
364
+ self.state.uc_manager.set_alloc_depth(r, uc_alloc_depth)
366
365
 
367
366
  return r
368
367
  # Return a default value, aka. 0
@@ -411,26 +410,18 @@ class SimSolver(SimStatePlugin):
411
410
  if key is not None and eternal and key in self.eternal_tracked_variables:
412
411
  r = self.eternal_tracked_variables[key]
413
412
  # pylint: disable=too-many-boolean-expressions
414
- if (
415
- size != r.length
416
- or min != r.args[1]
417
- or max != r.args[2]
418
- or stride != r.args[3]
419
- or uninitialized != r.args[4]
420
- or bool(explicit_name) ^ (r.args[0] == name)
421
- ):
413
+ if size != r.length or uninitialized != r.uninitialized or bool(explicit_name) ^ (r.args[0] == name):
422
414
  l.warning("Variable %s being retrieved with different settings than it was tracked with", name)
423
415
  else:
424
416
  r = claripy.BVS(
425
417
  name,
426
418
  size,
427
- min=min,
428
- max=max,
429
- stride=stride,
430
419
  uninitialized=uninitialized,
431
420
  explicit_name=explicit_name,
432
421
  **kwargs,
433
422
  )
423
+ if any(x is not None for x in (min, max, stride)):
424
+ r = r.annotate(claripy.annotation.StridedIntervalAnnotation(stride, min, max))
434
425
  if key is not None:
435
426
  self.register_variable(r, key, eternal)
436
427
 
@@ -696,6 +687,9 @@ class SimSolver(SimStatePlugin):
696
687
 
697
688
  :return: True if sat, otherwise false
698
689
  """
690
+ if o.ABSTRACT_SOLVER in self.state.options or o.SYMBOLIC not in self.state.options:
691
+ return all(not self.is_false(e) for e in extra_constraints)
692
+
699
693
  if exact is False and o.VALIDATE_APPROXIMATIONS in self.state.options:
700
694
  er = self._solver.satisfiable(extra_constraints=self._adjust_constraint_list(extra_constraints))
701
695
  ar = self._solver.satisfiable(
@@ -715,8 +709,69 @@ class SimSolver(SimStatePlugin):
715
709
 
716
710
  :param constraints: Pass any constraints that you want to add (ASTs) as varargs.
717
711
  """
718
- cc = self._adjust_constraint_list(constraints)
719
- return self._solver.add(cc)
712
+ if len(constraints) > 0 and isinstance(constraints[0], (list, tuple)):
713
+ raise Exception("Tuple or list passed to add!")
714
+
715
+ if o.TRACK_CONSTRAINTS in self.state.options and len(constraints) > 0:
716
+ constraints = (
717
+ [self.simplify(a) for a in constraints] if o.SIMPLIFY_CONSTRAINTS in self.state.options else constraints
718
+ )
719
+
720
+ self.state._inspect("constraints", BP_BEFORE, added_constraints=constraints)
721
+ constraints = self.state._inspect_getattr("added_constraints", constraints)
722
+ cc = self._adjust_constraint_list(constraints)
723
+ added = self._solver.add(cc)
724
+ self.state._inspect("constraints", BP_AFTER)
725
+
726
+ # add actions for the added constraints
727
+ if o.TRACK_CONSTRAINT_ACTIONS in self.state.options:
728
+ for c in added:
729
+ sac = SimActionConstraint(self.state, c)
730
+ self.state.history.add_action(sac)
731
+
732
+ if o.ABSTRACT_SOLVER in self.state.options and len(constraints) > 0:
733
+ for arg in constraints:
734
+ if self.is_false(arg):
735
+ return
736
+
737
+ if self.is_true(arg):
738
+ continue
739
+
740
+ # It's neither True or False. Let's try to apply the condition
741
+
742
+ # We take the argument, extract a list of constrained SIs out of
743
+ # it (if we could, of course), and then replace each original SI
744
+ # the intersection of original SI and the constrained one.
745
+
746
+ _, converted = claripy.constraint_to_si(arg)
747
+
748
+ for original_expr, constrained_si in converted:
749
+ if not original_expr.variables:
750
+ l.error(
751
+ "Incorrect original_expression to replace in add(). "
752
+ "This is due to defects in VSA logics inside claripy. "
753
+ "Please report to Fish and he will fix it if he's free."
754
+ )
755
+ continue
756
+
757
+ new_expr = constrained_si
758
+ self.state.registers.replace_all(original_expr, new_expr)
759
+ self.state.memory.replace_all(original_expr, new_expr)
760
+ # tmps
761
+ temps = self.state.scratch.temps
762
+ for idx in range(len(temps)): # pylint:disable=consider-using-enumerate
763
+ t = temps[idx]
764
+ if t is None:
765
+ continue
766
+ if t.variables.intersection(original_expr.variables):
767
+ # replace
768
+ temps[idx] = claripy.replace(t, original_expr, new_expr)
769
+
770
+ l.debug("SimSolver.add: Applied to final state.")
771
+ elif o.SYMBOLIC not in self.state.options and len(constraints) > 0:
772
+ for arg in constraints:
773
+ if self.is_false(arg):
774
+ return
720
775
 
721
776
  #
722
777
  # And some convenience stuff
@@ -1067,5 +1122,3 @@ class SimSolver(SimStatePlugin):
1067
1122
 
1068
1123
 
1069
1124
  SimState.register_default("solver", SimSolver)
1070
-
1071
- from .inspect import BP_AFTER
@@ -4,11 +4,10 @@ import claripy
4
4
  import struct
5
5
 
6
6
  from .plugin import SimStatePlugin
7
- from ..storage.memory_mixins import PagedMemoryMixin
7
+ from angr.storage.memory_mixins import PagedMemoryMixin
8
8
 
9
9
 
10
10
  l = logging.getLogger(name=__name__)
11
- l.setLevel("DEBUG")
12
11
 
13
12
 
14
13
  def _mem_write_cb(s):
@@ -286,6 +285,6 @@ class SimSymbolizer(SimStatePlugin): # pylint:disable=abstract-method
286
285
  return sc
287
286
 
288
287
 
289
- from ..sim_state import SimState
288
+ from angr.sim_state import SimState
290
289
 
291
290
  SimState.register_default("symbolizer", SimSymbolizer)
@@ -4,7 +4,7 @@ import logging
4
4
  import claripy
5
5
 
6
6
  from .plugin import SimStatePlugin
7
- from ..errors import SimUCManagerAllocationError
7
+ from angr.errors import SimUCManagerAllocationError
8
8
 
9
9
  l = logging.getLogger(name=__name__)
10
10
 
@@ -17,10 +17,10 @@ import pyvex
17
17
  from angr.engines.vex.claripy import ccall
18
18
  from angr.sim_state import SimState
19
19
 
20
- from .. import sim_options as options
21
- from ..engines.vex.claripy.irop import operations as irop_ops
22
- from ..errors import SimMemoryError, SimSegfaultError, SimUnicornError, SimUnicornUnsupport, SimValueError
23
- from ..misc.testing import is_testing
20
+ from angr import sim_options as options
21
+ from angr.engines.vex.claripy.irop import operations as irop_ops
22
+ from angr.errors import SimMemoryError, SimSegfaultError, SimUnicornError, SimUnicornUnsupport, SimValueError
23
+ from angr.misc.testing import is_testing
24
24
  from .plugin import SimStatePlugin
25
25
 
26
26
  l = logging.getLogger(name=__name__)
@@ -331,7 +331,7 @@ class StructMode:
331
331
  self.__getattr__(k).store(v)
332
332
 
333
333
 
334
- from ..sim_type import ALL_TYPES, SimTypeFixedSizeArray, SimTypePointer
334
+ from angr.sim_type import ALL_TYPES, SimTypeFixedSizeArray, SimTypePointer
335
335
 
336
336
  SimMemView.types = ALL_TYPES # identity purposefully here
337
337
 
angr/storage/__init__.py CHANGED
@@ -1,10 +1,15 @@
1
- # misc
2
1
  from __future__ import annotations
3
2
 
4
3
  DUMMY_SYMBOLIC_READ_VALUE = 0xC0DEB4BE
5
4
 
6
- # imports
7
-
8
5
  from .file import SimFile
9
6
  from .memory_object import SimMemoryObject
10
- from .memory_mixins import MemoryMixin, DefaultMemory
7
+ from .memory_mixins import DefaultMemory
8
+
9
+
10
+ __all__ = (
11
+ "DUMMY_SYMBOLIC_READ_VALUE",
12
+ "SimFile",
13
+ "SimMemoryObject",
14
+ "DefaultMemory",
15
+ )
angr/storage/file.py CHANGED
@@ -5,9 +5,9 @@ import itertools
5
5
  import claripy
6
6
 
7
7
  from .memory_mixins import DefaultMemory
8
- from ..state_plugins.plugin import SimStatePlugin
9
- from ..state_plugins.sim_action_object import SimActionObject
10
- from .. import sim_options
8
+ from angr.state_plugins.plugin import SimStatePlugin
9
+ from angr.state_plugins.sim_action_object import SimActionObject
10
+ from angr import sim_options
11
11
 
12
12
  l = logging.getLogger(name=__name__)
13
13
 
@@ -1209,4 +1209,4 @@ class SimPacketsSlots(SimFileBase):
1209
1209
  raise SimMergeError("Widening the filesystem is unsupported")
1210
1210
 
1211
1211
 
1212
- from ..errors import SimMergeError, SimFileError, SimSolverError
1212
+ from angr.errors import SimMergeError, SimFileError, SimSolverError
@@ -1,160 +1,6 @@
1
- # pylint:disable=abstract-method,wrong-import-position,unused-argument,missing-class-docstring,arguments-differ
2
1
  from __future__ import annotations
3
- from typing import Tuple, Dict, Any, Optional
4
- from collections.abc import Iterable
5
-
6
- import claripy
7
-
8
- from ...state_plugins.plugin import SimStatePlugin
9
- from ...errors import SimMemoryError
10
-
11
-
12
- class MemoryMixin(SimStatePlugin):
13
- SUPPORTS_CONCRETE_LOAD = False
14
-
15
- def __init__(self, memory_id=None, endness="Iend_BE"):
16
- super().__init__()
17
- self.id = memory_id
18
- self.endness = endness
19
-
20
- def copy(self, memo):
21
- o = type(self).__new__(type(self))
22
- o.id = self.id
23
- o.endness = self.endness
24
- return o
25
-
26
- @property
27
- def category(self):
28
- """
29
- Return the category of this SimMemory instance. It can be one of the three following categories: reg, mem,
30
- or file.
31
- """
32
-
33
- if self.id in ("reg", "mem"):
34
- return self.id
35
-
36
- if self.id.startswith("file"):
37
- return "file"
38
-
39
- if "_" in self.id:
40
- return self.id.split("_")[0]
41
-
42
- raise SimMemoryError(f'Unknown SimMemory category for memory_id "{self.id}"')
43
-
44
- @property
45
- def variable_key_prefix(self):
46
- s = self.category
47
- if s == "file":
48
- return (s, self.id)
49
- return (s,)
50
-
51
- def find(self, addr, data, max_search, **kwargs):
52
- pass
53
-
54
- def _add_constraints(self, c, add_constraints=True, condition=None, **kwargs):
55
- if add_constraints:
56
- to_add = c & condition | ~condition if condition is not None else c
57
- self.state.add_constraints(to_add)
58
-
59
- def load(self, addr, size=None, **kwargs):
60
- pass
61
-
62
- def store(self, addr, data, **kwargs):
63
- pass
64
-
65
- def merge(self, others, merge_conditions, common_ancestor=None) -> bool:
66
- pass
67
-
68
- def compare(self, other) -> bool:
69
- pass
70
-
71
- def widen(self, others):
72
- pass
73
-
74
- def permissions(self, addr, permissions=None, **kwargs):
75
- pass
76
-
77
- def map_region(self, addr, length, permissions, init_zero=False, **kwargs):
78
- pass
79
-
80
- def unmap_region(self, addr, length, **kwargs):
81
- pass
82
-
83
- # Optional interface:
84
- def concrete_load(self, addr, size, writing=False, **kwargs) -> memoryview:
85
- """
86
- Set SUPPORTS_CONCRETE_LOAD to True and implement concrete_load if reading concrete bytes is faster in this
87
- memory model.
88
-
89
- :param addr: The address to load from.
90
- :param size: Size of the memory read.
91
- :param writing:
92
- :return: A memoryview into the loaded bytes.
93
- """
94
- raise NotImplementedError
95
-
96
- def erase(self, addr, size=None, **kwargs) -> None:
97
- """
98
- Set [addr:addr+size) to uninitialized. In many cases this will be faster than overwriting those locations with
99
- new values. This is commonly used during static data flow analysis.
100
-
101
- :param addr: The address to start erasing.
102
- :param size: The number of bytes for erasing.
103
- :return: None
104
- """
105
- raise NotImplementedError
106
-
107
- def _default_value(self, addr, size, name=None, inspect=True, events=True, key=None, **kwargs):
108
- """
109
- Override this method to provide default values for a variety of edge cases and base cases.
110
-
111
- :param addr: If this value is being filled to provide a default memory value, this will be its address.
112
- Otherwise, None.
113
- :param size: The size in bytes of the value to return
114
- :param name: A descriptive identifier for the value, for if a symbol is created.
115
-
116
- The ``inspect``, ``events``, and ``key`` parameters are for ``state.solver.Unconstrained``, if it is used.
117
- """
118
-
119
- def _merge_values(self, values: Iterable[tuple[Any, Any]], merged_size: int, **kwargs) -> Any | None:
120
- """
121
- Override this method to provide value merging support.
122
-
123
- :param values: A collection of values with their merge conditions.
124
- :param merged_size: The size (in bytes) of the merged value.
125
- :return: The merged value, or None to skip merging of the current value.
126
- """
127
- raise NotImplementedError
128
-
129
- def _merge_labels(self, labels: Iterable[dict], **kwargs) -> dict | None:
130
- """
131
- Override this method to provide label merging support.
132
-
133
- :param labels: A collection of labels.
134
- :return: The merged label, or None to skip merging of the current label.
135
- """
136
- raise NotImplementedError
137
-
138
- def replace_all(self, old: claripy.ast.BV, new: claripy.ast.BV):
139
- raise NotImplementedError
140
-
141
- def _replace_all(self, addrs: Iterable[int], old: claripy.ast.BV, new: claripy.ast.BV):
142
- raise NotImplementedError
143
-
144
- def copy_contents(self, dst, src, size, condition=None, **kwargs):
145
- """
146
- Override this method to provide faster copying of large chunks of data.
147
-
148
- :param dst: The destination of copying.
149
- :param src: The source of copying.
150
- :param size: The size of copying.
151
- :param condition: The storing condition.
152
- :param kwargs: Other parameters.
153
- :return: None
154
- """
155
- raise NotImplementedError
156
-
157
2
 
3
+ from angr.sim_state import SimState
158
4
  from .actions_mixin import ActionsMixinHigh, ActionsMixinLow
159
5
  from .address_concretization_mixin import AddressConcretizationMixin
160
6
  from .bvv_conversion_mixin import DataNormalizationMixin
@@ -188,7 +34,19 @@ from .paged_memory.paged_memory_mixin import (
188
34
  from .paged_memory.privileged_mixin import PrivilegedPagingMixin
189
35
  from .paged_memory.stack_allocation_mixin import StackAllocationMixin
190
36
  from .paged_memory.paged_memory_multivalue_mixin import PagedMemoryMultiValueMixin
191
- from .paged_memory.pages import *
37
+ from .paged_memory.pages import (
38
+ CooperationBase,
39
+ MemoryObjectMixin,
40
+ ISPOMixin,
41
+ RefcountMixin,
42
+ PermissionsMixin,
43
+ HistoryTrackingMixin,
44
+ PageBase,
45
+ PageType,
46
+ ListPage,
47
+ MVListPage,
48
+ UltraPage,
49
+ )
192
50
 
193
51
  from .slotted_memory import SlottedMemoryMixin
194
52
  from .regioned_memory import (
@@ -199,8 +57,10 @@ from .regioned_memory import (
199
57
  MemoryRegionMetaMixin,
200
58
  RegionedAddressConcretizationMixin,
201
59
  )
202
- from .keyvalue_memory import KeyValueMemoryMixin
203
- from .javavm_memory import JavaVmMemoryMixin
60
+ from .keyvalue_memory_mixin import KeyValueMemoryMixin
61
+ from .javavm_memory_mixin import JavaVmMemoryMixin
62
+
63
+ # pylint:disable=missing-class-docstring
204
64
 
205
65
 
206
66
  class DefaultMemory(
@@ -335,7 +195,7 @@ class LabeledMemory(
335
195
  LabeledMemory is used in static analysis. It allows storing values with labels, such as `Definition`.
336
196
  """
337
197
 
338
- def _default_value(self, addr, size, **kwargs):
198
+ def _default_value(self, addr, size, **kwargs): # pylint:disable=arguments-differ
339
199
  # TODO: Make _default_value() a separate Mixin
340
200
 
341
201
  if kwargs.get("name", "").startswith("merge_uc_"):
@@ -356,7 +216,7 @@ class MultiValuedMemory(
356
216
  PagedMemoryMixin,
357
217
  PagedMemoryMultiValueMixin,
358
218
  ):
359
- def _default_value(self, addr, size, **kwargs):
219
+ def _default_value(self, addr, size, **kwargs): # pylint:disable=arguments-differ
360
220
  # TODO: Make _default_value() a separate Mixin
361
221
 
362
222
  if kwargs.get("name", "").startswith("merge_uc_"):
@@ -381,10 +241,77 @@ class JavaVmMemory(
381
241
  pass
382
242
 
383
243
 
384
- from angr.sim_state import SimState
385
-
386
244
  SimState.register_default("sym_memory", DefaultMemory)
387
245
  SimState.register_default("fast_memory", FastMemory)
388
246
  SimState.register_default("abs_memory", AbstractMemory)
389
247
  SimState.register_default("keyvalue_memory", KeyValueMemory)
390
248
  SimState.register_default("javavm_memory", JavaVmMemory)
249
+
250
+
251
+ __all__ = (
252
+ "ActionsMixinHigh",
253
+ "ActionsMixinLow",
254
+ "AddressConcretizationMixin",
255
+ "DataNormalizationMixin",
256
+ "InspectMixinHigh",
257
+ "ConditionalMixin",
258
+ "ConvenientMappingsMixin",
259
+ "DefaultFillerMixin",
260
+ "SpecialFillerMixin",
261
+ "ExplicitFillerMixin",
262
+ "DirtyAddrsMixin",
263
+ "HexDumperMixin",
264
+ "LabelMergerMixin",
265
+ "MultiValueMergerMixin",
266
+ "NameResolutionMixin",
267
+ "SimplificationMixin",
268
+ "SimpleInterfaceMixin",
269
+ "SizeNormalizationMixin",
270
+ "SizeConcretizationMixin",
271
+ "SmartFindMixin",
272
+ "SymbolicMergerMixin",
273
+ "TopMergerMixin",
274
+ "UnderconstrainedMixin",
275
+ "UnwrapperMixin",
276
+ "ClemoryBackerMixin",
277
+ "ConcreteBackerMixin",
278
+ "DictBackerMixin",
279
+ "PagedMemoryMixin",
280
+ "ListPagesMixin",
281
+ "UltraPagesMixin",
282
+ "ListPagesWithLabelsMixin",
283
+ "MVListPagesMixin",
284
+ "MVListPagesWithLabelsMixin",
285
+ "PrivilegedPagingMixin",
286
+ "StackAllocationMixin",
287
+ "PagedMemoryMultiValueMixin",
288
+ "CooperationBase",
289
+ "MemoryObjectMixin",
290
+ "ISPOMixin",
291
+ "RefcountMixin",
292
+ "PermissionsMixin",
293
+ "HistoryTrackingMixin",
294
+ "PageBase",
295
+ "PageType",
296
+ "ListPage",
297
+ "MVListPage",
298
+ "UltraPage",
299
+ "SlottedMemoryMixin",
300
+ "RegionedMemoryMixin",
301
+ "RegionCategoryMixin",
302
+ "StaticFindMixin",
303
+ "AbstractMergerMixin",
304
+ "MemoryRegionMetaMixin",
305
+ "RegionedAddressConcretizationMixin",
306
+ "KeyValueMemoryMixin",
307
+ "JavaVmMemoryMixin",
308
+ "DefaultMemory",
309
+ "DefaultListPagesMemory",
310
+ "FastMemory",
311
+ "AbstractMemory",
312
+ "RegionedMemory",
313
+ "LabeledMemory",
314
+ "MultiValuedMemory",
315
+ "KeyValueMemory",
316
+ "JavaVmMemory",
317
+ )
@@ -1,9 +1,9 @@
1
1
  from __future__ import annotations
2
2
  import claripy
3
3
 
4
- from ...state_plugins.sim_action import SimActionData, SimActionObject
5
- from ... import sim_options as o
6
- from . import MemoryMixin
4
+ from angr.state_plugins.sim_action import SimActionData, SimActionObject
5
+ from angr import sim_options as o
6
+ from angr.storage.memory_mixins.memory_mixin import MemoryMixin
7
7
 
8
8
 
9
9
  class ActionsMixinHigh(MemoryMixin):
@@ -1,13 +1,13 @@
1
1
  from __future__ import annotations
2
2
  import claripy
3
3
 
4
- from . import MemoryMixin
5
- from ... import sim_options as options
6
- from ... import concretization_strategies
7
- from ...sim_state_options import SimStateOptions
8
- from ...state_plugins.inspect import BP_BEFORE, BP_AFTER
9
- from ...errors import SimMergeError, SimUnsatError, SimMemoryAddressError, SimMemoryError
10
- from ...storage import DUMMY_SYMBOLIC_READ_VALUE
4
+ from angr.storage.memory_mixins.memory_mixin import MemoryMixin
5
+ from angr import sim_options as options
6
+ from angr import concretization_strategies
7
+ from angr.sim_state_options import SimStateOptions
8
+ from angr.state_plugins.inspect import BP_BEFORE, BP_AFTER
9
+ from angr.errors import SimMergeError, SimUnsatError, SimMemoryAddressError, SimMemoryError
10
+ from angr.storage import DUMMY_SYMBOLIC_READ_VALUE
11
11
 
12
12
 
13
13
  class MultiwriteAnnotation(claripy.Annotation):
@@ -2,7 +2,7 @@ from __future__ import annotations
2
2
  import logging
3
3
  import claripy
4
4
 
5
- from angr.storage.memory_mixins import MemoryMixin
5
+ from angr.storage.memory_mixins.memory_mixin import MemoryMixin
6
6
 
7
7
  l = logging.getLogger(__name__)
8
8
 
@@ -70,4 +70,4 @@ class DataNormalizationMixin(MemoryMixin):
70
70
  return raw_to_bv()
71
71
 
72
72
 
73
- from ...errors import SimMemoryError
73
+ from angr.errors import SimMemoryError
@@ -1,5 +1,6 @@
1
1
  from __future__ import annotations
2
- from . import MemoryMixin
2
+
3
+ from angr.storage.memory_mixins.memory_mixin import MemoryMixin
3
4
 
4
5
 
5
6
  class InspectMixinHigh(MemoryMixin):
@@ -129,4 +130,4 @@ class InspectMixinHigh(MemoryMixin):
129
130
  super()._add_constraints(c, add_constraints=add_constraints, inspect=inspect, **kwargs)
130
131
 
131
132
 
132
- from ...state_plugins.inspect import BP_BEFORE, BP_AFTER
133
+ from angr.state_plugins.inspect import BP_BEFORE, BP_AFTER
@@ -1,7 +1,7 @@
1
1
  from __future__ import annotations
2
2
  import claripy
3
3
 
4
- from . import MemoryMixin
4
+ from angr.storage.memory_mixins.memory_mixin import MemoryMixin
5
5
 
6
6
 
7
7
  class ConditionalMixin(MemoryMixin):