angr 9.2.119__py3-none-macosx_11_0_arm64.whl → 9.2.121__py3-none-macosx_11_0_arm64.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.dylib +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
@@ -1,2 +1,5 @@
1
1
  from __future__ import annotations
2
+
2
3
  from .datalayer import ClaripyDataMixin
4
+
5
+ __all__ = ("ClaripyDataMixin",)
@@ -7,7 +7,6 @@ from angr.state_plugins.sim_action_object import _raw_ast, SimActionObject
7
7
  from angr import errors
8
8
 
9
9
  l = logging.getLogger(name=__name__)
10
- # l.setLevel(logging.DEBUG)
11
10
 
12
11
  # pylint: disable=R0911
13
12
  # pylint: disable=W0613
@@ -44,7 +43,7 @@ def boolean_extend(O, a, b, size):
44
43
  def op_concretize(op):
45
44
  if type(op) is int:
46
45
  return op
47
- op_e = op.ite_excavated
46
+ op_e = claripy.excavate_ite(op)
48
47
  if op_e.op == "If":
49
48
  cases = list(claripy.reverse_ite_cases(op_e))
50
49
  if all(c.op == "BVV" for _, c in cases):
@@ -57,7 +56,7 @@ def op_concretize(op):
57
56
 
58
57
 
59
58
  def strip_simaction(val):
60
- if type(val) == SimActionObject:
59
+ if isinstance(val, SimActionObject):
61
60
  return _raw_ast(val)
62
61
  return val
63
62
 
@@ -1,14 +1,15 @@
1
1
  from __future__ import annotations
2
+
2
3
  import logging
3
4
 
4
5
  import claripy
5
6
  import pyvex
6
7
 
7
- from . import irop
8
- from . import ccall
9
- from ..light import VEXMixin
10
- from .... import errors
11
- from .... import sim_options as o
8
+ from angr import errors
9
+ from angr import sim_options as o
10
+ from angr.engines.vex.light import VEXMixin
11
+
12
+ from . import ccall, irop
12
13
 
13
14
  l = logging.getLogger(__name__)
14
15
  zero = claripy.BVV(0, 32)
@@ -39,13 +40,8 @@ class ClaripyDataMixin(VEXMixin):
39
40
 
40
41
  # util methods
41
42
 
42
- def _is_true(self, v):
43
- return claripy.is_true(v)
44
-
45
- def _is_false(self, v):
46
- return claripy.is_false(v)
47
-
48
- def _optimize_guarded_addr(self, addr, guard):
43
+ @staticmethod
44
+ def _optimize_guarded_addr(addr, guard):
49
45
  # optimization: is the guard the same as the condition inside the address? if so, unpack the address and remove
50
46
  # the guarding condition.
51
47
  if (
@@ -65,6 +61,7 @@ class ClaripyDataMixin(VEXMixin):
65
61
 
66
62
  # statements
67
63
 
64
+ # pylint: disable=too-many-positional-arguments
68
65
  def _perform_vex_stmt_LoadG(self, addr, alt, guard, dst, cvt, end):
69
66
  addr = self._optimize_guarded_addr(addr, guard)
70
67
  super()._perform_vex_stmt_LoadG(addr, alt, guard, dst, cvt, end)
@@ -1,6 +1,16 @@
1
1
  from __future__ import annotations
2
+
3
+ from .actions import TrackActionsMixin
2
4
  from .heavy import HeavyVEXMixin
3
5
  from .inspect import SimInspectMixin
4
- from .actions import TrackActionsMixin
5
6
  from .resilience import HeavyResilienceMixin
6
7
  from .super_fastpath import SuperFastpathMixin
8
+
9
+
10
+ __all__ = (
11
+ "TrackActionsMixin",
12
+ "HeavyVEXMixin",
13
+ "SimInspectMixin",
14
+ "HeavyResilienceMixin",
15
+ "SuperFastpathMixin",
16
+ )
@@ -1,10 +1,11 @@
1
1
  from __future__ import annotations
2
- import pyvex
3
2
 
4
- from .heavy import HeavyVEXMixin
3
+ import pyvex
5
4
 
6
- from angr.state_plugins.sim_action import SimActionObject, SimActionData, SimActionExit, SimActionOperation
7
5
  from angr import sim_options as o
6
+ from angr.state_plugins.sim_action import SimActionData, SimActionExit, SimActionObject, SimActionOperation
7
+
8
+ from .heavy import HeavyVEXMixin
8
9
 
9
10
 
10
11
  class TrackActionsMixin(HeavyVEXMixin):
@@ -15,12 +16,6 @@ class TrackActionsMixin(HeavyVEXMixin):
15
16
 
16
17
  __tls = ("__tmp_deps",)
17
18
 
18
- def _is_true(self, v):
19
- return super()._is_true(v[0])
20
-
21
- def _is_false(self, v):
22
- return super()._is_false(v[0])
23
-
24
19
  def _optimize_guarded_addr(self, addr, guard):
25
20
  addr, addr_deps = addr
26
21
  guard, _ = guard
@@ -97,8 +92,8 @@ class TrackActionsMixin(HeavyVEXMixin):
97
92
  a = self.__tmp_deps.get(tmp, frozenset())
98
93
  return result, a
99
94
 
100
- def _perform_vex_expr_Get(self, offset_bundle, ty, **kwargs):
101
- offset, offset_deps = offset_bundle
95
+ def _perform_vex_expr_Get(self, offset, ty, **kwargs):
96
+ offset, offset_deps = offset
102
97
  result = super()._perform_vex_expr_Get(offset, ty, **kwargs)
103
98
 
104
99
  if o.TRACK_REGISTER_ACTIONS in self.state.options:
@@ -117,15 +112,15 @@ class TrackActionsMixin(HeavyVEXMixin):
117
112
  a = frozenset()
118
113
  return result, a
119
114
 
120
- def _perform_vex_expr_Load(self, addr_bundle, ty, end, condition=None, **kwargs):
121
- addr, addr_deps = addr_bundle
115
+ def _perform_vex_expr_Load(self, addr, ty, endness, condition=None, **kwargs):
116
+ addr, addr_deps = addr
122
117
 
123
118
  if condition is not None:
124
119
  condition, condition_deps = condition
125
120
  else:
126
121
  condition_deps = None
127
122
 
128
- result = super()._perform_vex_expr_Load(addr, ty, end, condition=condition, **kwargs)
123
+ result = super()._perform_vex_expr_Load(addr, ty, endness, condition=condition, **kwargs)
129
124
 
130
125
  if o.TRACK_MEMORY_ACTIONS in self.state.options:
131
126
  addr_ao = SimActionObject(addr, deps=addr_deps, state=self.state)
@@ -162,9 +157,9 @@ class TrackActionsMixin(HeavyVEXMixin):
162
157
  self.__tmp_deps[tmp] = data_deps
163
158
  super()._perform_vex_stmt_WrTmp(tmp, data, deps=data_deps)
164
159
 
165
- def _perform_vex_stmt_Put(self, offset_bundle, data_bundle, **kwargs):
166
- offset, offset_deps = offset_bundle
167
- data, data_deps = data_bundle
160
+ def _perform_vex_stmt_Put(self, offset, data, **kwargs):
161
+ offset, _ = offset
162
+ data, data_deps = data
168
163
  # track the put
169
164
  if o.TRACK_REGISTER_ACTIONS in self.state.options:
170
165
  data_ao = SimActionObject(data, deps=data_deps, state=self.state)
@@ -178,9 +173,9 @@ class TrackActionsMixin(HeavyVEXMixin):
178
173
 
179
174
  super()._perform_vex_stmt_Put(offset, data, action=a, **kwargs)
180
175
 
181
- def _perform_vex_stmt_Store(self, addr_bundle, data_bundle, end, condition=None, **kwargs):
182
- addr, addr_deps = addr_bundle
183
- data, data_deps = data_bundle
176
+ def _perform_vex_stmt_Store(self, addr, data, endness, condition=None, **kwargs):
177
+ addr, addr_deps = addr
178
+ data, data_deps = data
184
179
 
185
180
  if condition is not None:
186
181
  condition, condition_deps = condition
@@ -210,11 +205,11 @@ class TrackActionsMixin(HeavyVEXMixin):
210
205
  else:
211
206
  a = None
212
207
 
213
- super()._perform_vex_stmt_Store(addr, data, end, action=a, condition=condition, **kwargs)
208
+ super()._perform_vex_stmt_Store(addr, data, endness, action=a, condition=condition, **kwargs)
214
209
 
215
- def _perform_vex_stmt_Exit(self, guard_bundle, target_bundle, jumpkind):
216
- guard, guard_deps = guard_bundle
217
- target, target_deps = target_bundle
210
+ def _perform_vex_stmt_Exit(self, guard, expr, jumpkind):
211
+ guard, guard_deps = guard
212
+ target, target_deps = expr
218
213
 
219
214
  if o.TRACK_JMP_ACTIONS in self.state.options:
220
215
  guard_ao = SimActionObject(guard, deps=guard_deps, state=self.state)
@@ -4,12 +4,12 @@ import claripy
4
4
  import pyvex
5
5
 
6
6
  from angr.engines.engine import SuccessorsMixin
7
- from ..light import VEXMixin
8
- from ..lifter import VEXLifter
9
- from ..claripy.datalayer import ClaripyDataMixin, symbol
10
- from ....utils.constants import DEFAULT_STATEMENT
11
- from .... import sim_options as o
12
- from .... import errors
7
+ from angr.engines.vex.light import VEXMixin
8
+ from angr.engines.vex.lifter import VEXLifter
9
+ from angr.engines.vex.claripy.datalayer import ClaripyDataMixin, symbol
10
+ from angr.utils.constants import DEFAULT_STATEMENT
11
+ from angr import sim_options as o
12
+ from angr import errors
13
13
  from . import dirty
14
14
 
15
15
  l = logging.getLogger(__name__)
@@ -251,7 +251,13 @@ class HeavyVEXMixin(SuccessorsMixin, ClaripyDataMixin, SimStateStorageMixin, VEX
251
251
 
252
252
  # Raise an exception if we're suddenly in self-modifying code
253
253
  if (self.project is None or self.project.selfmodifying_code) and self.state.scratch.dirty_addrs:
254
- for subaddr in range(stmt.len):
254
+ instruction_len = stmt.len
255
+ if instruction_len == 0:
256
+ # We don't know how long this instruction is.
257
+ # Conservatively assume it is the maximum instruction
258
+ # length for the purpose of dirty checks.
259
+ instruction_len = self.project.arch.max_inst_bytes
260
+ for subaddr in range(instruction_len):
255
261
  if subaddr + stmt.addr in self.state.scratch.dirty_addrs:
256
262
  raise errors.SimReliftException(self.state)
257
263
 
@@ -1,6 +1,6 @@
1
1
  from __future__ import annotations
2
- from ..light import VEXMixin
3
- from ....state_plugins import BP_BEFORE, BP_AFTER, NO_OVERRIDE
2
+ from angr.engines.vex.light import VEXMixin
3
+ from angr.state_plugins import BP_BEFORE, BP_AFTER, NO_OVERRIDE
4
4
 
5
5
 
6
6
  class SimInspectMixin(VEXMixin):
@@ -4,8 +4,8 @@ import pyvex
4
4
  from angr import sim_options as o
5
5
 
6
6
  from .concretizers import concretizers
7
- from ..light.resilience import VEXResilienceMixin, raiseme
8
- from ..claripy.datalayer import ClaripyDataMixin, symbol, value
7
+ from angr.engines.vex.light.resilience import VEXResilienceMixin, raiseme
8
+ from angr.engines.vex.claripy.datalayer import ClaripyDataMixin, symbol, value
9
9
 
10
10
 
11
11
  class HeavyResilienceMixin(VEXResilienceMixin, ClaripyDataMixin):
@@ -2,9 +2,9 @@ from __future__ import annotations
2
2
  import pyvex
3
3
  import claripy
4
4
 
5
- from .... import sim_options as o
6
- from ....errors import SimMissingTempError
7
- from ..light.slicing import VEXSlicingMixin
5
+ from angr import sim_options as o
6
+ from angr.errors import SimMissingTempError
7
+ from angr.engines.vex.light.slicing import VEXSlicingMixin
8
8
 
9
9
 
10
10
  class SuperFastpathMixin(VEXSlicingMixin):
@@ -8,11 +8,11 @@ import cle
8
8
  from archinfo import ArchARM
9
9
  import claripy
10
10
 
11
- from ..engine import SimEngineBase
12
- from ...state_plugins.inspect import BP_AFTER, BP_BEFORE, NO_OVERRIDE
13
- from ...misc.ux import once
14
- from ...errors import SimEngineError, SimTranslationError, SimError
15
- from ... import sim_options as o
11
+ from angr.engines.engine import SimEngineBase
12
+ from angr.state_plugins.inspect import BP_AFTER, BP_BEFORE, NO_OVERRIDE
13
+ from angr.misc.ux import once
14
+ from angr.errors import SimEngineError, SimTranslationError, SimError
15
+ from angr import sim_options as o
16
16
 
17
17
  l = logging.getLogger(__name__)
18
18
 
@@ -93,6 +93,7 @@ class VEXLifter(SimEngineBase):
93
93
  collect_data_refs=False,
94
94
  cross_insn_opt=None,
95
95
  load_from_ro_regions=False,
96
+ const_prop=False,
96
97
  ):
97
98
  """
98
99
  Lift an IRSB.
@@ -170,7 +171,7 @@ class VEXLifter(SimEngineBase):
170
171
  have_patches = self.project and self.project.kb.patches.items()
171
172
 
172
173
  # FIXME: cache ignores provided state
173
- use_cache = self._use_cache and not (skip_stmts or collect_data_refs or have_patches)
174
+ use_cache = self._use_cache and not (skip_stmts or collect_data_refs or have_patches or const_prop)
174
175
 
175
176
  # phase 2: thumb normalization
176
177
  thumb = int(thumb)
@@ -261,6 +262,7 @@ class VEXLifter(SimEngineBase):
261
262
  collect_data_refs=collect_data_refs,
262
263
  load_from_ro_regions=load_from_ro_regions,
263
264
  cross_insn_opt=cross_insn_opt,
265
+ const_prop=const_prop,
264
266
  )
265
267
 
266
268
  if subphase == 0 and irsb.statements is not None:
@@ -1,4 +1,11 @@
1
1
  from __future__ import annotations
2
+
2
3
  from .light import VEXMixin
3
4
  from .resilience import VEXResilienceMixin
4
5
  from .slicing import VEXSlicingMixin
6
+
7
+ __all__ = (
8
+ "VEXMixin",
9
+ "VEXResilienceMixin",
10
+ "VEXSlicingMixin",
11
+ )
@@ -3,8 +3,8 @@ import logging
3
3
 
4
4
  import pyvex
5
5
 
6
- from ...engine import SimEngineBase
7
- from ....utils.constants import DEFAULT_STATEMENT
6
+ from angr.engines.engine import SimEngineBase
7
+ from angr.utils.constants import DEFAULT_STATEMENT
8
8
 
9
9
  l = logging.getLogger(name=__name__)
10
10
 
@@ -394,7 +394,7 @@ class VEXMixin(SimEngineBase):
394
394
  # guarded address). This way we get rid of the redundant load that should have existed in the first place.
395
395
 
396
396
  ty, cvt_op = cvt_properties[cvt]
397
- if self._is_false(guard):
397
+ if self.state.solver.is_true(guard[0] == 0):
398
398
  self._perform_vex_stmt_LoadG_wrtmp(dst, alt)
399
399
  return
400
400
  load_result = self._perform_vex_stmt_LoadG_load(
@@ -436,7 +436,7 @@ class VEXMixin(SimEngineBase):
436
436
 
437
437
  def _perform_vex_stmt_StoreG(self, addr, data, guard, ty, endness, **kwargs):
438
438
  # perform the same optimization as in _perform_vex_stmt_LoadG
439
- if self._is_false(guard):
439
+ if self.state.solver.is_true(guard[0] == 0):
440
440
  return
441
441
  self._perform_vex_stmt_StoreG_store(
442
442
  addr, data, endness, condition=self._perform_vex_stmt_StoreG_guard_condition(guard), **kwargs
@@ -1,6 +1,6 @@
1
1
  from __future__ import annotations
2
2
  from .light import VEXMixin
3
- from ....utils.constants import DEFAULT_STATEMENT
3
+ from angr.utils.constants import DEFAULT_STATEMENT
4
4
 
5
5
 
6
6
  class VEXSlicingMixin(VEXMixin):
angr/errors.py CHANGED
@@ -66,10 +66,6 @@ class AngrBackwardSlicingError(AngrError):
66
66
  pass
67
67
 
68
68
 
69
- class AngrGirlScoutError(AngrError):
70
- pass
71
-
72
-
73
69
  class AngrCallableError(AngrSurveyorError):
74
70
  pass
75
71
 
@@ -141,7 +141,6 @@ from .tech_builder import TechniqueBuilder
141
141
  from .stochastic import StochasticSearch
142
142
  from .unique import UniqueSearch
143
143
  from .symbion import Symbion
144
- from ..errors import AngrError, AngrExplorationTechniqueError
145
144
  from .memory_watcher import MemoryWatcher
146
145
  from .bucketizer import Bucketizer
147
146
  from .local_loop_seer import LocalLoopSeer
@@ -3,11 +3,10 @@ import math
3
3
  from collections import defaultdict
4
4
  import logging
5
5
 
6
- from ..engines.successors import SimSuccessors
6
+ from angr.engines.successors import SimSuccessors
7
7
  from . import ExplorationTechnique
8
8
 
9
9
  _l = logging.getLogger(__name__)
10
- _l.setLevel(logging.DEBUG)
11
10
 
12
11
 
13
12
  class Bucketizer(ExplorationTechnique):
@@ -15,9 +14,6 @@ class Bucketizer(ExplorationTechnique):
15
14
  Loop bucketization: Pick log(n) paths out of n possible paths, and stash (or drop) everything else.
16
15
  """
17
16
 
18
- def __init__(self):
19
- super().__init__()
20
-
21
17
  def successors(self, simgr, state, **kwargs):
22
18
  # step first
23
19
  successors: SimSuccessors = super().successors(simgr, state, **kwargs)
@@ -50,7 +46,8 @@ class Bucketizer(ExplorationTechnique):
50
46
  successors.successors = new_successors
51
47
  return successors
52
48
 
53
- def _get_transition_dict(self, state):
49
+ @staticmethod
50
+ def _get_transition_dict(state):
54
51
  """
55
52
 
56
53
  :param SimState state:
@@ -64,7 +61,8 @@ class Bucketizer(ExplorationTechnique):
64
61
  state.globals["transition"] = t
65
62
  return t
66
63
 
67
- def _record_transition(self, state, transition):
64
+ @staticmethod
65
+ def _record_transition(state, transition):
68
66
  """
69
67
 
70
68
  :param SimState state:
@@ -72,12 +70,13 @@ class Bucketizer(ExplorationTechnique):
72
70
  :return:
73
71
  """
74
72
 
75
- t = self._get_transition_dict(state).copy()
73
+ t = Bucketizer._get_transition_dict(state).copy()
76
74
  t[transition] += 1
77
75
 
78
76
  state.globals["transition"] = t
79
77
 
80
- def _accept_transition(self, state, transition):
78
+ @staticmethod
79
+ def _accept_transition(state, transition):
81
80
  """
82
81
 
83
82
  :param SimState state:
@@ -85,7 +84,7 @@ class Bucketizer(ExplorationTechnique):
85
84
  :return:
86
85
  """
87
86
 
88
- t = self._get_transition_dict(state)
87
+ t = Bucketizer._get_transition_dict(state)
89
88
 
90
89
  if t[transition] == 0:
91
90
  _l.error("Impossible: Transition %s has 0 occurrences.", transition)
@@ -1,6 +1,6 @@
1
1
  from __future__ import annotations
2
- from .. import engines
3
- from ..errors import SimError, AngrError, AngrExplorationTechniqueError
2
+ from angr import engines
3
+ from angr.errors import SimError, AngrError, AngrExplorationTechniqueError
4
4
 
5
5
 
6
6
  def condition_to_lambda(condition, default=False):
@@ -6,10 +6,10 @@ import networkx
6
6
 
7
7
  import claripy
8
8
 
9
- from ..sim_type import SimType, SimTypePointer, SimTypeChar, SimTypeString, SimTypeReg
10
- from ..calling_conventions import default_cc
11
- from ..knowledge_base import KnowledgeBase
12
- from ..errors import AngrDirectorError
9
+ from angr.sim_type import SimType, SimTypePointer, SimTypeChar, SimTypeString, SimTypeReg
10
+ from angr.calling_conventions import default_cc
11
+ from angr.knowledge_base import KnowledgeBase
12
+ from angr.errors import AngrDirectorError
13
13
  from . import ExplorationTechnique
14
14
 
15
15
  l = logging.getLogger(name=__name__)
@@ -4,8 +4,8 @@ import claripy
4
4
 
5
5
  from . import ExplorationTechnique
6
6
  from .common import condition_to_lambda
7
- from .. import sim_options
8
- from ..state_plugins.sim_event import resource_event
7
+ from angr import sim_options
8
+ from angr.state_plugins.sim_event import resource_event
9
9
 
10
10
  l = logging.getLogger(name=__name__)
11
11
 
@@ -48,7 +48,7 @@ class Explorer(ExplorationTechnique):
48
48
  self._warned_unicorn = False
49
49
 
50
50
  # TODO: This is a hack for while CFGFast doesn't handle procedure continuations
51
- from .. import analyses # pylint: disable=import-outside-toplevel
51
+ from angr import analyses # pylint: disable=import-outside-toplevel
52
52
 
53
53
  if isinstance(cfg, analyses.CFGFast):
54
54
  l.error("CFGFast is currently inappropriate for use with Explorer.")
@@ -2,8 +2,8 @@ from __future__ import annotations
2
2
  import logging
3
3
 
4
4
  from . import ExplorationTechnique
5
- from ..knowledge_base import KnowledgeBase
6
- from ..knowledge_plugins.functions import Function
5
+ from angr.knowledge_base import KnowledgeBase
6
+ from angr.knowledge_plugins.functions import Function
7
7
 
8
8
 
9
9
  l = logging.getLogger(name=__name__)
@@ -233,4 +233,4 @@ class LoopSeer(ExplorationTechnique):
233
233
  return f
234
234
 
235
235
 
236
- from ..analyses.loopfinder import Loop
236
+ from angr.analyses.loopfinder import Loop
@@ -6,9 +6,9 @@ import logging
6
6
 
7
7
  l = logging.getLogger(name=__name__)
8
8
 
9
- from ..errors import AngrError, SimError, SimUnsupportedError, SimCCallError
10
- from .. import sim_options
11
- from ..engines.successors import SimSuccessors
9
+ from angr.errors import AngrError, SimError, SimUnsupportedError, SimCCallError
10
+ from angr import sim_options
11
+ from angr.engines.successors import SimSuccessors
12
12
 
13
13
  exc_list = (AngrError, SimError, claripy.ClaripyError, TypeError, ValueError, ArithmeticError, MemoryError)
14
14
 
@@ -1,5 +1,5 @@
1
1
  from __future__ import annotations
2
- from ..errors import AngrExitError
2
+ from angr.errors import AngrExitError
3
3
  from . import ExplorationTechnique
4
4
 
5
5
  import logging
@@ -279,4 +279,4 @@ class Spiller(ExplorationTechnique):
279
279
  return id(state)
280
280
 
281
281
 
282
- from .. import vaults
282
+ from angr import vaults
@@ -3,10 +3,10 @@ import logging
3
3
  import claripy
4
4
 
5
5
  from . import ExplorationTechnique
6
- from ..misc.ux import once
7
- from ..misc.picklable_lock import PicklableLock
8
- from ..state_plugins.sim_action import SimActionConstraint
9
- from ..state_plugins.sim_action_object import SimActionObject
6
+ from angr.misc.ux import once
7
+ from angr.misc.picklable_lock import PicklableLock
8
+ from angr.state_plugins.sim_action import SimActionConstraint
9
+ from angr.state_plugins.sim_action_object import SimActionObject
10
10
 
11
11
  l = logging.getLogger(__name__)
12
12
 
@@ -4,7 +4,6 @@ from .common import condition_to_lambda
4
4
  from . import ExplorationTechnique
5
5
 
6
6
  l = logging.getLogger("angr.exploration_techniques.symbion")
7
- # l.setLevel(logging.DEBUG)
8
7
 
9
8
 
10
9
  class Symbion(ExplorationTechnique):
@@ -4,8 +4,8 @@ import concurrent.futures
4
4
  import logging
5
5
 
6
6
  from . import ExplorationTechnique
7
- from ..engines.engine import TLSMixin
8
- from ..misc.ux import once
7
+ from angr.engines.engine import TLSMixin
8
+ from angr.misc.ux import once
9
9
 
10
10
  l = logging.getLogger(__name__)
11
11
 
@@ -7,8 +7,8 @@ import claripy
7
7
  from capstone import CS_GRP_CALL, CS_GRP_IRET, CS_GRP_JUMP, CS_GRP_RET
8
8
 
9
9
  from . import ExplorationTechnique
10
- from .. import BP_BEFORE, BP_AFTER, sim_options
11
- from ..errors import AngrTracerError, SimIRSBNoDecodeError
10
+ from angr import BP_BEFORE, BP_AFTER, sim_options
11
+ from angr.errors import AngrTracerError, SimIRSBNoDecodeError
12
12
 
13
13
  if TYPE_CHECKING:
14
14
  from angr.sim_state import SimState
@@ -60,7 +60,7 @@ class RepHook:
60
60
  return p.execute(state, None, arguments=e_args)
61
61
 
62
62
  def run(self, state):
63
- from .. import SIM_PROCEDURES # pylint: disable=import-outside-toplevel
63
+ from angr import SIM_PROCEDURES # pylint: disable=import-outside-toplevel
64
64
 
65
65
  dst = state.regs.edi if state.arch.name == "X86" else state.regs.rdi
66
66
 
@@ -1,7 +1,7 @@
1
1
  from __future__ import annotations
2
2
  from . import ExplorationTechnique
3
3
 
4
- from ..sim_options import EFFICIENT_STATE_MERGING
4
+ from angr.sim_options import EFFICIENT_STATE_MERGING
5
5
 
6
6
 
7
7
  class Veritesting(ExplorationTechnique):
angr/factory.py CHANGED
@@ -289,6 +289,7 @@ class AngrObjectFactory:
289
289
  collect_data_refs=False,
290
290
  cross_insn_opt=True,
291
291
  load_from_ro_regions=False,
292
+ const_prop=False,
292
293
  initial_regs=None,
293
294
  skip_stmts=False,
294
295
  ) -> Block: ...
@@ -312,6 +313,8 @@ class AngrObjectFactory:
312
313
  insn_text=None, # backward compatibility
313
314
  strict_block_end=None,
314
315
  collect_data_refs=False,
316
+ load_from_ro_regions=False,
317
+ const_prop=False,
315
318
  cross_insn_opt=True,
316
319
  skip_stmts=False,
317
320
  ) -> SootBlock: ...
@@ -335,6 +338,7 @@ class AngrObjectFactory:
335
338
  collect_data_refs=False,
336
339
  cross_insn_opt=True,
337
340
  load_from_ro_regions=False,
341
+ const_prop=False,
338
342
  initial_regs=None,
339
343
  skip_stmts=False,
340
344
  ):
@@ -372,6 +376,7 @@ class AngrObjectFactory:
372
376
  collect_data_refs=collect_data_refs,
373
377
  cross_insn_opt=cross_insn_opt,
374
378
  load_from_ro_regions=load_from_ro_regions,
379
+ const_prop=const_prop,
375
380
  initial_regs=initial_regs,
376
381
  skip_stmts=skip_stmts,
377
382
  )
angr/flirt/__init__.py CHANGED
@@ -1,7 +1,6 @@
1
1
  # This submodule stores and manages FLIRT signatures
2
2
  from __future__ import annotations
3
3
 
4
- from typing import Set, List, Dict, Optional
5
4
  import os
6
5
  import json
7
6
  from collections import defaultdict