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
@@ -0,0 +1,148 @@
1
+ # pylint:disable=too-many-positional-arguments
2
+ from __future__ import annotations
3
+ import logging
4
+
5
+ from capstone.mips_const import (
6
+ MIPS_REG_T7,
7
+ MIPS_REG_T8,
8
+ MIPS_REG_T9,
9
+ MIPS_REG_RA,
10
+ MIPS_REG_ZERO,
11
+ MIPS_OP_REG,
12
+ MIPS_OP_IMM,
13
+ )
14
+
15
+ import cle
16
+
17
+ from .resolver import IndirectJumpResolver
18
+
19
+ l = logging.getLogger(name=__name__)
20
+
21
+
22
+ class MipsElfGotResolver(IndirectJumpResolver):
23
+ """
24
+ A timeless indirect jump resolver that resolves GOT stub entries in MIPS ELF binaries.
25
+
26
+ Reference: MIPS Assembly Language Programmer's Guide, Calling Position Independent Functions
27
+ """
28
+
29
+ def __init__(self, project):
30
+ super().__init__(project, timeless=True)
31
+
32
+ self._section_cache: dict[tuple[int, str], int] = {}
33
+ self._simproc_cache: dict[str, int] | None = None
34
+
35
+ def filter(self, cfg, addr, func_addr, block, jumpkind):
36
+ return jumpkind == "Ijk_Call" and addr == func_addr
37
+
38
+ def resolve( # pylint:disable=unused-argument
39
+ self, cfg, addr, func_addr, block, jumpkind, func_graph_complete: bool = True, **kwargs
40
+ ):
41
+ # The stub must look like the following:
42
+ # 585b80 lw $t9, -0x7ff0($gp)
43
+ # 585b84 move $t7, $ra
44
+ # 585b88 jalr $t9
45
+ # 585b8c addiu $t8, $zero, 0x84b
46
+
47
+ obj = self.project.loader.find_object_containing(addr)
48
+ if obj is None:
49
+ return False, []
50
+ if not isinstance(obj, cle.ELF):
51
+ return False, []
52
+ dynsym_addr = self._find_and_cache_section_addr(obj, ".dynsym")
53
+ if dynsym_addr is None:
54
+ return None
55
+
56
+ dynstr_addr = self._find_and_cache_section_addr(obj, ".dynstr")
57
+ if dynstr_addr is None:
58
+ return None
59
+
60
+ if block.size != 16:
61
+ return False, []
62
+ the_block = self.project.factory.block(block.addr, size=block.size)
63
+ if len(the_block.capstone.insns) != 4:
64
+ return False, []
65
+
66
+ insn0 = the_block.capstone.insns[0]
67
+ if not (
68
+ insn0.insn.mnemonic == "lw"
69
+ and insn0.insn.operands[0].type == MIPS_OP_REG
70
+ and insn0.insn.operands[0].reg == MIPS_REG_T9
71
+ ):
72
+ return False, []
73
+
74
+ insn1 = the_block.capstone.insns[1]
75
+ if not (
76
+ insn1.insn.mnemonic == "move"
77
+ and insn1.insn.operands[0].type == MIPS_OP_REG
78
+ and insn1.insn.operands[0].reg == MIPS_REG_T7
79
+ and insn1.insn.operands[1].type == MIPS_OP_REG
80
+ and insn1.insn.operands[1].reg == MIPS_REG_RA
81
+ ):
82
+ return False, []
83
+
84
+ insn2 = the_block.capstone.insns[2]
85
+ if not (
86
+ insn2.insn.mnemonic == "jalr"
87
+ and insn2.insn.operands[0].type == MIPS_OP_REG
88
+ and insn2.insn.operands[0].reg == MIPS_REG_T9
89
+ ):
90
+ return False, []
91
+
92
+ insn3 = the_block.capstone.insns[3]
93
+ if not (
94
+ insn3.insn.mnemonic == "addiu"
95
+ and insn3.insn.operands[0].type == MIPS_OP_REG
96
+ and insn3.insn.operands[0].reg == MIPS_REG_T8
97
+ and insn3.insn.operands[1].type == MIPS_OP_REG
98
+ and insn3.insn.operands[1].reg == MIPS_REG_ZERO
99
+ and insn3.insn.operands[2].type == MIPS_OP_IMM
100
+ ):
101
+ return False, []
102
+
103
+ dynsym_index = insn3.insn.operands[2].imm
104
+ symbol_addr = dynsym_addr + dynsym_index * 16
105
+
106
+ symbol_name_index = self.project.loader.memory.unpack_word(symbol_addr, size=4)
107
+ symbol_name_addr = dynstr_addr + symbol_name_index
108
+ symbol_name_bytes = self.project.loader.memory.load_null_terminated_bytes(symbol_name_addr, 512)
109
+
110
+ try:
111
+ symbol_name = symbol_name_bytes.strip(b"\x00").decode("ascii")
112
+ except UnicodeDecodeError:
113
+ return False, []
114
+
115
+ symbol = obj.symbols_by_name.get(symbol_name, None)
116
+ if symbol is None:
117
+ return False, []
118
+
119
+ if symbol.rebased_addr != func_addr:
120
+ l.debug("Resolved target to %s @ %#x", symbol_name, symbol.rebased_addr)
121
+ return True, [symbol.rebased_addr]
122
+
123
+ # find out if there is a SimProcedure for this import symbol
124
+ simproc_addr = self._cache_and_find_simproc_by_name(symbol_name)
125
+ if simproc_addr is not None:
126
+ l.debug("Resolved target to %s @ %#x", symbol_name, simproc_addr)
127
+ return True, [simproc_addr]
128
+ return False, []
129
+
130
+ def _find_and_cache_section_addr(self, obj, section_name: str) -> int | None:
131
+ cache_key = (obj.min_addr, section_name)
132
+ if cache_key in self._section_cache:
133
+ return self._section_cache[cache_key]
134
+
135
+ for sec in obj.sections:
136
+ if sec.name == section_name:
137
+ # cache it
138
+ self._section_cache[cache_key] = sec.vaddr
139
+ return sec.vaddr
140
+ return None
141
+
142
+ def _cache_and_find_simproc_by_name(self, symbol_name: str) -> int | None:
143
+ if self._simproc_cache is None:
144
+ self._simproc_cache = {}
145
+ for addr, simproc in self.project._sim_procedures.items():
146
+ self._simproc_cache[simproc.display_name] = addr
147
+
148
+ return self._simproc_cache.get(symbol_name)
@@ -1,10 +1,10 @@
1
1
  from __future__ import annotations
2
2
  import typing
3
3
 
4
- from ....errors import SimMemoryError
4
+ from angr.errors import SimMemoryError
5
5
 
6
6
  if typing.TYPE_CHECKING:
7
- from .... import Project
7
+ from angr import Project
8
8
 
9
9
 
10
10
  class IndirectJumpResolver:
@@ -3,7 +3,7 @@ import logging
3
3
 
4
4
  from capstone.x86_const import X86_OP_MEM
5
5
 
6
- from ....simos import SimWindows
6
+ from angr.simos import SimWindows
7
7
  from .resolver import IndirectJumpResolver
8
8
 
9
9
  l = logging.getLogger(name=__name__)
@@ -1,3 +1,11 @@
1
1
  from __future__ import annotations
2
+
2
3
  from .graph import slice_callgraph, slice_cfg_graph, slice_function_graph
3
4
  from .cfg_slice_to_sink import CFGSliceToSink
5
+
6
+ __all__ = (
7
+ "CFGSliceToSink",
8
+ "slice_callgraph",
9
+ "slice_cfg_graph",
10
+ "slice_function_graph",
11
+ )
@@ -1,6 +1,6 @@
1
1
  from __future__ import annotations
2
- from ..sim_type import SimCppClass, SimTypeCppFunction
3
- from ..analyses import AnalysesHub
2
+ from angr.sim_type import SimCppClass, SimTypeCppFunction
3
+ from angr.analyses import AnalysesHub
4
4
  from . import Analysis, CFGFast, VtableFinder
5
5
 
6
6
 
@@ -1,8 +1,8 @@
1
1
  from __future__ import annotations
2
2
  import pyvex
3
3
 
4
- from ..utils import looks_like_sql
5
- from ..knowledge_plugins.xrefs import XRef
4
+ from angr.utils import looks_like_sql
5
+ from angr.knowledge_plugins.xrefs import XRef
6
6
  from . import Analysis, AnalysesHub
7
7
 
8
8
 
@@ -14,8 +14,8 @@ import claripy
14
14
 
15
15
  from angr.utils.graph import GraphUtils
16
16
  from angr.simos import SimWindows
17
- from ..utils.mp import mp_context, Initializer
18
- from ..knowledge_plugins.cfg import CFGModel
17
+ from angr.utils.mp import mp_context, Initializer
18
+ from angr.knowledge_plugins.cfg import CFGModel
19
19
  from . import Analysis, register_analysis, VariableRecoveryFast, CallingConventionAnalysis
20
20
 
21
21
  if TYPE_CHECKING:
@@ -185,7 +185,7 @@ class CompleteCallingConventionsAnalysis(Analysis):
185
185
  if self._cc_callback is not None:
186
186
  self._cc_callback(func_addr)
187
187
 
188
- percentage = idx + 1 / total_funcs * 100.0
188
+ percentage = (idx + 1) / total_funcs * 100.0
189
189
  self._update_progress(percentage, text=f"{idx + 1}/{total_funcs} - {func.demangled_name}")
190
190
  if self._low_priority:
191
191
  self._release_gil(idx + 1, 10, 0.000001)
@@ -6,7 +6,6 @@ import claripy
6
6
  from . import Analysis
7
7
 
8
8
  l = logging.getLogger(name=__name__)
9
- # l.setLevel(logging.DEBUG)
10
9
 
11
10
 
12
11
  class CongruencyCheck(Analysis):
@@ -373,7 +372,7 @@ class CongruencyCheck(Analysis):
373
372
  return True
374
373
 
375
374
 
376
- from ..errors import AngrIncongruencyError
375
+ from angr.errors import AngrIncongruencyError
377
376
  from angr.analyses import AnalysesHub
378
377
 
379
378
  AnalysesHub.register_default("CongruencyCheck", CongruencyCheck)
@@ -1,3 +1,16 @@
1
1
  from __future__ import annotations
2
+
2
3
  from .data_dependency_analysis import DataDependencyGraphAnalysis
3
4
  from .dep_nodes import DepNodeTypes, BaseDepNode, VarDepNode, MemDepNode, ConstantDepNode, TmpDepNode, RegDepNode
5
+
6
+
7
+ __all__ = (
8
+ "DataDependencyGraphAnalysis",
9
+ "DepNodeTypes",
10
+ "BaseDepNode",
11
+ "VarDepNode",
12
+ "MemDepNode",
13
+ "ConstantDepNode",
14
+ "TmpDepNode",
15
+ "RegDepNode",
16
+ )
@@ -12,11 +12,11 @@ import claripy
12
12
  from claripy.ast.bv import BV
13
13
  from .dep_nodes import DepNodeTypes, ConstantDepNode, MemDepNode, VarDepNode, RegDepNode, TmpDepNode
14
14
  from .sim_act_location import SimActLocation, DEFAULT_LOCATION, ParsedInstruction
15
- from .. import Analysis
16
- from ...analyses import AnalysesHub
17
- from ...errors import AngrDDGError, AngrAnalysisError, SimValueError
18
- from ...state_plugins import SimActionData
19
- from ...storage import DefaultMemory
15
+ from angr.analyses import Analysis
16
+ from angr.analyses import AnalysesHub
17
+ from angr.errors import AngrDDGError, AngrAnalysisError, SimValueError
18
+ from angr.state_plugins import SimActionData
19
+ from angr.storage import DefaultMemory
20
20
 
21
21
  if TYPE_CHECKING:
22
22
  from .dep_nodes import BaseDepNode
@@ -1,7 +1,7 @@
1
1
  from __future__ import annotations
2
2
  import logging
3
3
 
4
- from ..sim_procedure import SimProcedure
4
+ from angr.sim_procedure import SimProcedure
5
5
 
6
6
  l = logging.getLogger(name=__name__)
7
7
 
angr/analyses/ddg.py CHANGED
@@ -6,9 +6,9 @@ import networkx
6
6
  import pyvex
7
7
  from . import Analysis
8
8
 
9
- from ..code_location import CodeLocation
10
- from ..errors import SimSolverModeError, SimUnsatError, AngrDDGError
11
- from ..sim_variable import (
9
+ from angr.code_location import CodeLocation
10
+ from angr.errors import SimSolverModeError, SimUnsatError, AngrDDGError
11
+ from angr.sim_variable import (
12
12
  SimRegisterVariable,
13
13
  SimMemoryVariable,
14
14
  SimTemporaryVariable,
@@ -1,4 +1,5 @@
1
1
  from __future__ import annotations
2
+
2
3
  from .region_identifier import RegionIdentifier
3
4
  from .structured_codegen import CStructuredCodeGenerator, ImportSourceCode
4
5
  from .clinic import Clinic
@@ -10,7 +11,31 @@ from .callsite_maker import CallSiteMaker
10
11
  from .ail_simplifier import AILSimplifier
11
12
  from .ssailification import Ssailification
12
13
  from .dephication import GraphDephication, SeqNodeDephication
14
+ from .presets import DECOMPILATION_PRESETS
13
15
  from . import structuring
14
16
  from . import optimization_passes
15
17
 
18
+
16
19
  StructuredCodeGenerator = CStructuredCodeGenerator
20
+
21
+
22
+ __all__ = (
23
+ "RegionIdentifier",
24
+ "CStructuredCodeGenerator",
25
+ "ImportSourceCode",
26
+ "Clinic",
27
+ "RegionSimplifier",
28
+ "Decompiler",
29
+ "options",
30
+ "options_by_category",
31
+ "BlockSimplifier",
32
+ "CallSiteMaker",
33
+ "AILSimplifier",
34
+ "Ssailification",
35
+ "GraphDephication",
36
+ "SeqNodeDephication",
37
+ "DECOMPILATION_PRESETS",
38
+ "structuring",
39
+ "optimization_passes",
40
+ "StructuredCodeGenerator",
41
+ )
@@ -27,14 +27,14 @@ from ailment.expression import (
27
27
 
28
28
  from angr.analyses.s_reaching_definitions import SRDAModel
29
29
  from angr.utils.ail import is_phi_assignment, HasExprWalker
30
- from ...code_location import CodeLocation, ExternalCodeLocation
31
- from ...sim_variable import SimStackVariable, SimMemoryVariable, SimVariable
32
- from ...knowledge_plugins.propagations.states import Equivalence
33
- from ...knowledge_plugins.key_definitions import atoms
34
- from ...knowledge_plugins.key_definitions.definition import Definition
35
- from ...knowledge_plugins.key_definitions.constants import OP_BEFORE
36
- from ...errors import AngrRuntimeError
37
- from .. import Analysis, AnalysesHub
30
+ from angr.code_location import CodeLocation, ExternalCodeLocation
31
+ from angr.sim_variable import SimStackVariable, SimMemoryVariable, SimVariable
32
+ from angr.knowledge_plugins.propagations.states import Equivalence
33
+ from angr.knowledge_plugins.key_definitions import atoms
34
+ from angr.knowledge_plugins.key_definitions.definition import Definition
35
+ from angr.knowledge_plugins.key_definitions.constants import OP_BEFORE
36
+ from angr.errors import AngrRuntimeError
37
+ from angr.analyses import Analysis, AnalysesHub
38
38
  from .ailgraph_walker import AILGraphWalker
39
39
  from .expression_narrower import ExpressionNarrowingWalker
40
40
  from .block_simplifier import BlockSimplifier
@@ -10,9 +10,9 @@ from ailment import AILBlockWalkerBase
10
10
 
11
11
  from angr.code_location import ExternalCodeLocation, CodeLocation
12
12
 
13
- from ...analyses.s_propagator import SPropagatorAnalysis
14
- from ...analyses.s_reaching_definitions import SReachingDefinitionsAnalysis, SRDAModel
15
- from .. import Analysis, register_analysis
13
+ from angr.analyses.s_propagator import SPropagatorAnalysis
14
+ from angr.analyses.s_reaching_definitions import SReachingDefinitionsAnalysis, SRDAModel
15
+ from angr.analyses import Analysis, register_analysis
16
16
  from .peephole_optimizations import (
17
17
  MULTI_STMT_OPTS,
18
18
  STMT_OPTS,
@@ -11,7 +11,7 @@ from angr.sim_type import SimTypeBottom, SimTypePointer, SimTypeChar, SimTypeInt
11
11
  from angr.calling_conventions import SimRegArg, SimStackArg, SimCC, SimStructArg
12
12
  from angr.knowledge_plugins.key_definitions.constants import OP_BEFORE
13
13
  from angr.analyses import Analysis, register_analysis
14
- from angr.analyses.s_reaching_definitions.s_rda import SRDAView
14
+ from angr.analyses.s_reaching_definitions import SRDAView
15
15
  from angr import SIM_LIBRARIES, SIM_TYPE_COLLECTIONS
16
16
 
17
17
  if TYPE_CHECKING:
@@ -284,7 +284,9 @@ class CallSiteMaker(Analysis):
284
284
 
285
285
  if vvar is not None:
286
286
  vvar_value = view.get_vvar_value(vvar)
287
- return vvar_value, vvar
287
+ if not isinstance(vvar_value, Expr.Phi):
288
+ return vvar_value, vvar
289
+ return None, vvar
288
290
 
289
291
  return None
290
292
 
@@ -311,7 +313,7 @@ class CallSiteMaker(Analysis):
311
313
  )
312
314
  if vvar is not None:
313
315
  value = view.get_vvar_value(vvar)
314
- if value is not None:
316
+ if value is not None and not isinstance(value, Expr.Phi):
315
317
  return None, value
316
318
  return None, Expr.VirtualVariable(
317
319
  self._atom_idx(),
@@ -240,6 +240,26 @@ class AMD64CCallRewriter(CCallRewriterBase):
240
240
 
241
241
  r = Expr.BinaryOp(ccall.idx, expr_op, (masked_dep, zero), False, **ccall.tags)
242
242
  return Expr.Convert(None, r.bits, ccall.bits, False, r, **ccall.tags)
243
+ if op_v in {
244
+ AMD64_OpTypes["G_CC_OP_DECB"],
245
+ AMD64_OpTypes["G_CC_OP_DECW"],
246
+ AMD64_OpTypes["G_CC_OP_DECL"],
247
+ AMD64_OpTypes["G_CC_OP_DECQ"],
248
+ }:
249
+ # dep_1 == 0 or dep_1 != 0
250
+ dep_1 = self._fix_size(
251
+ dep_1,
252
+ op_v,
253
+ AMD64_OpTypes["G_CC_OP_SHRB"],
254
+ AMD64_OpTypes["G_CC_OP_SHRW"],
255
+ AMD64_OpTypes["G_CC_OP_SHRL"],
256
+ ccall.tags,
257
+ )
258
+ expr_op = "CmpEQ" if cond_v == AMD64_CondTypes["CondZ"] else "CmpNE"
259
+
260
+ zero = Expr.Const(None, None, 0, dep_1.bits)
261
+ r = Expr.BinaryOp(ccall.idx, expr_op, (dep_1, zero), False, **ccall.tags)
262
+ return Expr.Convert(None, r.bits, ccall.bits, False, r, **ccall.tags)
243
263
  elif cond_v == AMD64_CondTypes["CondL"]:
244
264
  if op_v in {
245
265
  AMD64_OpTypes["G_CC_OP_SUBB"],
@@ -13,13 +13,13 @@ import capstone
13
13
  import ailment
14
14
 
15
15
  from angr.errors import AngrDecompilationError
16
- from ...knowledge_base import KnowledgeBase
17
- from ...knowledge_plugins.functions import Function
18
- from ...knowledge_plugins.cfg.memory_data import MemoryDataSort
19
- from ...codenode import BlockNode
20
- from ...utils import timethis
21
- from ...calling_conventions import SimRegArg, SimStackArg, SimFunctionArgument
22
- from ...sim_type import (
16
+ from angr.knowledge_base import KnowledgeBase
17
+ from angr.knowledge_plugins.functions import Function
18
+ from angr.knowledge_plugins.cfg.memory_data import MemoryDataSort
19
+ from angr.codenode import BlockNode
20
+ from angr.utils import timethis
21
+ from angr.calling_conventions import SimRegArg, SimStackArg, SimFunctionArgument
22
+ from angr.sim_type import (
23
23
  SimTypeChar,
24
24
  SimTypeInt,
25
25
  SimTypeLongLong,
@@ -29,17 +29,16 @@ from ...sim_type import (
29
29
  SimTypeFloat,
30
30
  SimTypePointer,
31
31
  )
32
- from ..stack_pointer_tracker import Register, OffsetVal
33
- from ...sim_variable import SimVariable, SimStackVariable, SimRegisterVariable, SimMemoryVariable
34
- from ...procedures.stubs.UnresolvableCallTarget import UnresolvableCallTarget
35
- from ...procedures.stubs.UnresolvableJumpTarget import UnresolvableJumpTarget
36
- from .. import Analysis, register_analysis
37
- from ..cfg.cfg_base import CFGBase
38
- from ..reaching_definitions import ReachingDefinitionsAnalysis
32
+ from angr.analyses.stack_pointer_tracker import Register, OffsetVal
33
+ from angr.sim_variable import SimVariable, SimStackVariable, SimRegisterVariable, SimMemoryVariable
34
+ from angr.procedures.stubs.UnresolvableCallTarget import UnresolvableCallTarget
35
+ from angr.procedures.stubs.UnresolvableJumpTarget import UnresolvableJumpTarget
36
+ from angr.analyses import Analysis, register_analysis
37
+ from angr.analyses.cfg.cfg_base import CFGBase
38
+ from angr.analyses.reaching_definitions import ReachingDefinitionsAnalysis
39
39
  from .return_maker import ReturnMaker
40
40
  from .ailgraph_walker import AILGraphWalker, RemoveNodeNotice
41
41
  from .optimization_passes import (
42
- get_default_optimization_passes,
43
42
  OptimizationPassStage,
44
43
  RegisterSaveAreaSimplifier,
45
44
  StackCanarySimplifier,
@@ -129,7 +128,7 @@ class Clinic(Analysis):
129
128
  self._func_graph: networkx.DiGraph | None = None
130
129
  self._ail_manager = None
131
130
  self._blocks_by_addr_and_size = {}
132
- self._entry_node_addr: tuple[int, int | None] = self.function.addr, None
131
+ self.entry_node_addr: tuple[int, int | None] = self.function.addr, None
133
132
 
134
133
  self._fold_callexprs_into_conditions = fold_callexprs_into_conditions
135
134
  self._insert_labels = insert_labels
@@ -165,8 +164,7 @@ class Clinic(Analysis):
165
164
  if optimization_passes is not None:
166
165
  self._optimization_passes = optimization_passes
167
166
  else:
168
- self._optimization_passes = get_default_optimization_passes(self.project.arch, self.project.simos.name)
169
- l.debug("Get %d optimization passes for the current binary.", len(self._optimization_passes))
167
+ self._optimization_passes = []
170
168
 
171
169
  if self._mode == ClinicMode.DECOMPILE:
172
170
  self._analyze_for_decompiling()
@@ -713,11 +711,11 @@ class Clinic(Analysis):
713
711
  if self._func_graph.in_degree(node) == 0 and CFGBase._is_noop_block(
714
712
  self.project.arch, self.project.factory.block(node.addr, node.size)
715
713
  ):
716
- if (node.addr, None) == self._entry_node_addr:
714
+ if (node.addr, None) == self.entry_node_addr:
717
715
  # this is the entry node. after removing this node, the new entry node will be its successor
718
716
  if self._func_graph.out_degree[node] == 1:
719
717
  succ = next(iter(self._func_graph.successors(node)))
720
- self._entry_node_addr = succ.addr, None
718
+ self.entry_node_addr = succ.addr, None
721
719
  else:
722
720
  # we just don't remove this node...
723
721
  continue
@@ -1219,6 +1217,7 @@ class Clinic(Analysis):
1219
1217
  graph=ail_graph,
1220
1218
  variable_kb=variable_kb,
1221
1219
  vvar_id_start=self.vvar_id_start,
1220
+ entry_node_addr=self.entry_node_addr,
1222
1221
  **kwargs,
1223
1222
  )
1224
1223
  if a.out_graph:
@@ -1240,7 +1239,7 @@ class Clinic(Analysis):
1240
1239
  ail_graph: networkx.DiGraph,
1241
1240
  arg_vvars: dict[int, tuple[ailment.Expr.VirtualVariable, SimVariable]],
1242
1241
  ) -> networkx.DiGraph:
1243
- entrypoint = next(iter(bb for bb in ail_graph if (bb.addr, bb.idx) == self._entry_node_addr))
1242
+ entrypoint = next(iter(bb for bb in ail_graph if (bb.addr, bb.idx) == self.entry_node_addr))
1244
1243
  new_stmts = []
1245
1244
  for arg in arg_list:
1246
1245
  if not isinstance(arg, SimRegisterVariable):
@@ -1298,7 +1297,7 @@ class Clinic(Analysis):
1298
1297
  ssailification = self.project.analyses.Ssailification(
1299
1298
  self.function,
1300
1299
  ail_graph,
1301
- entry=next(iter(bb for bb in ail_graph if (bb.addr, bb.idx) == self._entry_node_addr)),
1300
+ entry=next(iter(bb for bb in ail_graph if (bb.addr, bb.idx) == self.entry_node_addr)),
1302
1301
  ail_manager=self._ail_manager,
1303
1302
  ssa_stackvars=False,
1304
1303
  vvar_id_start=self.vvar_id_start,
@@ -1311,7 +1310,7 @@ class Clinic(Analysis):
1311
1310
  ssailification = self.project.analyses.Ssailification(
1312
1311
  self.function,
1313
1312
  ail_graph,
1314
- entry=next(iter(bb for bb in ail_graph if (bb.addr, bb.idx) == self._entry_node_addr)),
1313
+ entry=next(iter(bb for bb in ail_graph if (bb.addr, bb.idx) == self.entry_node_addr)),
1315
1314
  ail_manager=self._ail_manager,
1316
1315
  ssa_stackvars=True,
1317
1316
  vvar_id_start=self.vvar_id_start,
@@ -1324,7 +1323,7 @@ class Clinic(Analysis):
1324
1323
  dephication = self.project.analyses.GraphDephicationVVarMapping(
1325
1324
  self.function,
1326
1325
  ail_graph,
1327
- entry=next(iter(bb for bb in ail_graph if (bb.addr, bb.idx) == self._entry_node_addr)),
1326
+ entry=next(iter(bb for bb in ail_graph if (bb.addr, bb.idx) == self.entry_node_addr)),
1328
1327
  vvar_id_start=self.vvar_id_start,
1329
1328
  )
1330
1329
  self.vvar_id_start = dephication.vvar_id_start + 1
@@ -1798,10 +1797,10 @@ class Clinic(Analysis):
1798
1797
 
1799
1798
  graph = networkx.DiGraph()
1800
1799
 
1801
- entry_node = next(iter(node for node in func_graph if node.addr == self._entry_node_addr[0]), None)
1800
+ entry_node = next(iter(node for node in func_graph if node.addr == self.entry_node_addr[0]), None)
1802
1801
  if entry_node is None:
1803
1802
  raise AngrDecompilationError(
1804
- f"Entry node with address {self._entry_node_addr[0]:#x} not found in the function graph"
1803
+ f"Entry node with address {self.entry_node_addr[0]:#x} not found in the function graph"
1805
1804
  )
1806
1805
 
1807
1806
  # add the entry node into the graph
@@ -12,11 +12,11 @@ from unique_log_filter import UniqueLogFilter
12
12
 
13
13
 
14
14
  from angr.utils.graph import GraphUtils
15
- from ...utils.lazy_import import lazy_import
16
- from ...utils import is_pyinstaller
17
- from ...utils.graph import dominates, inverted_idoms
18
- from ...block import Block, BlockNode
19
- from ...errors import AngrRuntimeError
15
+ from angr.utils.lazy_import import lazy_import
16
+ from angr.utils import is_pyinstaller
17
+ from angr.utils.graph import dominates, inverted_idoms
18
+ from angr.block import Block, BlockNode
19
+ from angr.errors import AngrRuntimeError
20
20
  from .peephole_optimizations import InvertNegatedLogicalConjunctionsAndDisjunctions
21
21
  from .structuring.structurer_nodes import (
22
22
  MultiNode,
@@ -158,6 +158,8 @@ _ail2claripy_op_mapping = {
158
158
  "ExpCmpNE": lambda expr, _, m: _dummy_bools(expr, m),
159
159
  "CmpORD": lambda expr, _, m: _dummy_bvs(expr, m), # in case CmpORDRewriter fails
160
160
  "GetMSBs": lambda expr, _, m: _dummy_bvs(expr, m),
161
+ "InterleaveLOV": lambda expr, _, m: _dummy_bvs(expr, m),
162
+ "InterleaveHIV": lambda expr, _, m: _dummy_bvs(expr, m),
161
163
  }
162
164
 
163
165
  #
@@ -1,5 +1,16 @@
1
1
  from __future__ import annotations
2
+
2
3
  from .boolean_counter import BooleanCounter
3
4
  from .call_counter import AILBlockCallCounter
4
5
  from .seq_cf_structure_counter import ControlFlowStructureCounter
5
6
  from .expression_counters import SingleExpressionCounter, RegisterExpressionCounter, OperatorCounter
7
+
8
+
9
+ __all__ = (
10
+ "BooleanCounter",
11
+ "AILBlockCallCounter",
12
+ "ControlFlowStructureCounter",
13
+ "SingleExpressionCounter",
14
+ "RegisterExpressionCounter",
15
+ "OperatorCounter",
16
+ )