angr 9.2.78__py3-none-win_amd64.whl → 9.2.80__py3-none-win_amd64.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 (55) hide show
  1. angr/__init__.py +1 -1
  2. angr/__main__.py +59 -0
  3. angr/analyses/cfg/cfg_fast.py +140 -3
  4. angr/analyses/decompiler/ail_simplifier.py +8 -0
  5. angr/analyses/decompiler/block_simplifier.py +25 -5
  6. angr/analyses/decompiler/clinic.py +33 -19
  7. angr/analyses/decompiler/decompilation_options.py +9 -0
  8. angr/analyses/decompiler/optimization_passes/__init__.py +6 -0
  9. angr/analyses/decompiler/optimization_passes/engine_base.py +2 -2
  10. angr/analyses/decompiler/optimization_passes/ite_region_converter.py +2 -2
  11. angr/analyses/decompiler/optimization_passes/multi_simplifier.py +0 -12
  12. angr/analyses/decompiler/optimization_passes/optimization_pass.py +8 -5
  13. angr/analyses/decompiler/optimization_passes/win_stack_canary_simplifier.py +82 -12
  14. angr/analyses/decompiler/peephole_optimizations/__init__.py +11 -2
  15. angr/analyses/decompiler/peephole_optimizations/base.py +29 -2
  16. angr/analyses/decompiler/peephole_optimizations/constant_derefs.py +1 -1
  17. angr/analyses/decompiler/peephole_optimizations/eager_eval.py +14 -2
  18. angr/analyses/decompiler/peephole_optimizations/inlined_strcpy.py +83 -0
  19. angr/analyses/decompiler/peephole_optimizations/inlined_strcpy_consolidation.py +103 -0
  20. angr/analyses/decompiler/region_simplifiers/ifelse.py +19 -10
  21. angr/analyses/decompiler/region_simplifiers/region_simplifier.py +4 -2
  22. angr/analyses/decompiler/structured_codegen/c.py +20 -4
  23. angr/analyses/decompiler/utils.py +131 -2
  24. angr/analyses/propagator/engine_ail.py +3 -1
  25. angr/analyses/propagator/engine_vex.py +45 -0
  26. angr/analyses/propagator/propagator.py +24 -15
  27. angr/analyses/proximity_graph.py +30 -0
  28. angr/analyses/reaching_definitions/engine_ail.py +1 -1
  29. angr/analyses/stack_pointer_tracker.py +55 -0
  30. angr/callable.py +4 -4
  31. angr/engines/light/engine.py +30 -18
  32. angr/knowledge_plugins/__init__.py +1 -0
  33. angr/knowledge_plugins/custom_strings.py +40 -0
  34. angr/knowledge_plugins/functions/function.py +29 -0
  35. angr/knowledge_plugins/propagations/propagation_model.py +4 -0
  36. angr/knowledge_plugins/propagations/states.py +54 -4
  37. angr/lib/angr_native.dll +0 -0
  38. angr/procedures/definitions/__init__.py +2 -1
  39. angr/procedures/definitions/msvcr.py +0 -3
  40. angr/procedures/definitions/ntoskrnl.py +9 -0
  41. angr/procedures/win32_kernel/ExAllocatePool.py +12 -0
  42. angr/procedures/win32_kernel/ExFreePoolWithTag.py +7 -0
  43. angr/procedures/win32_kernel/__init__.py +3 -0
  44. angr/sim_type.py +3 -0
  45. angr/storage/memory_mixins/__init__.py +1 -1
  46. angr/utils/funcid.py +128 -0
  47. {angr-9.2.78.dist-info → angr-9.2.80.dist-info}/METADATA +6 -6
  48. {angr-9.2.78.dist-info → angr-9.2.80.dist-info}/RECORD +55 -45
  49. {angr-9.2.78.dist-info → angr-9.2.80.dist-info}/WHEEL +1 -1
  50. angr-9.2.80.dist-info/entry_points.txt +2 -0
  51. tests/analyses/cfg/test_cfgfast.py +24 -0
  52. tests/analyses/decompiler/test_decompiler.py +128 -0
  53. tests/analyses/test_constantpropagation.py +34 -0
  54. {angr-9.2.78.dist-info → angr-9.2.80.dist-info}/LICENSE +0 -0
  55. {angr-9.2.78.dist-info → angr-9.2.80.dist-info}/top_level.txt +0 -0
@@ -1,8 +1,9 @@
1
- angr/__init__.py,sha256=lOMPCK4EHkY1X2WOKEcuVn-SA30QQJCJR14H3iJUmjM,3851
1
+ angr/__init__.py,sha256=YKGLZGGH4jmUKaEsavWpDSsKfykPCtumRvvjgfG3S6A,3851
2
+ angr/__main__.py,sha256=kaO56Te6h73SM94BVtASF00q5QbBbC3eBs9poVc9sVI,1887
2
3
  angr/annocfg.py,sha256=dK5JAdN4Ig_jgxTBZeZXwk3kAS4-IQUvE6T02GBZTDQ,10818
3
4
  angr/blade.py,sha256=YySrLqj2Y3-td9FJnkjDqYyFvAeGhc5a5lrGoHKOT2A,15562
4
5
  angr/block.py,sha256=FnsFukbXhLzYPW5zJRXMxNmvCRU4LFlFIaJwo5sAqkY,14468
5
- angr/callable.py,sha256=X9LC_A4XxdCcCWLqbyZyU1YKBrTKNCeJAJJBGXU83vE,6012
6
+ angr/callable.py,sha256=-E9HelavtRY1xPAxCVXl120H8Rb7Myd2IcrXtWZFAOU,6034
6
7
  angr/calling_conventions.py,sha256=Ri-xAayzVrtoWvKXO01nsV8VM14iOxIWfouwBQIYe8s,90745
7
8
  angr/code_location.py,sha256=ow0Z8OF8FNBPZs4PUmRej_5aHaKTmUIanYPro3iHAMs,5476
8
9
  angr/codenode.py,sha256=J_lZNz8akZzBI4ok0KpI1eNGvZbCt_quOAeUplaEB6I,3784
@@ -19,7 +20,7 @@ angr/sim_options.py,sha256=OuT01xS_F3ifBD9MAfZmNCnfjtTg0HulZlrKcs1LNSY,18057
19
20
  angr/sim_procedure.py,sha256=TpYn5z6YMKjugyH_Lw9XcEaQc8cpTxtyorBKrRYMewA,26073
20
21
  angr/sim_state.py,sha256=BhAKyfvoGfqpgAPYYT4j7drrkOdPy03ucBO7LKMz0s0,37826
21
22
  angr/sim_state_options.py,sha256=lfP7ygngjGe0AGV5rkE24tvBazJBZG-RTdrKj4rL9XE,12530
22
- angr/sim_type.py,sha256=illcZU3EM_fQLlphIcNSCP-6rWtXYsIq47cxs3dLHZc,116952
23
+ angr/sim_type.py,sha256=ZU4uHgFcJyjvVMGza8_JluHKmAWbpT9S1Xb41qdydHU,117056
23
24
  angr/sim_variable.py,sha256=VIpKm4lguu_bKokjq4UB6Q_30Ogz9J7XRBJuH62lW60,17228
24
25
  angr/slicer.py,sha256=kbLKMAjf2kC6ov-OiGb95BqLmgV0QRl5mmEANcvzuAk,10640
25
26
  angr/state_hierarchy.py,sha256=w_5Tl-7h9xUXBsIKZRAWw8Xh0we8GIAaN6nbKgYH_Qo,8467
@@ -48,10 +49,10 @@ angr/analyses/flirt.py,sha256=-n6GShXV6PLKDHr4nML49ZwAAlmMIP5SDeF2KmJVKOM,7847
48
49
  angr/analyses/init_finder.py,sha256=hFHPsHipF4QkWzVqcDeTgL6YIaYi8bAyaURZBksS4KI,8531
49
50
  angr/analyses/loop_analysis.py,sha256=nIbDIzvys-FRtJYnoZYNbMWH5V88qrhoMtrMRCTbkLY,9412
50
51
  angr/analyses/loopfinder.py,sha256=X8F4Dcu2UHDXt6JifK6EfROAeeczyca6V7zxx9z7GpQ,7122
51
- angr/analyses/proximity_graph.py,sha256=Sm9oo8h9wtnP1hojsrjaAbkysqEHFjQQCSfZiET9244,15207
52
+ angr/analyses/proximity_graph.py,sha256=y30caPk5N4zOzkf8TF7AEOo0AR_yDhEFJrQB89_CTnM,16323
52
53
  angr/analyses/reassembler.py,sha256=b4EnHx36yS2DNq8nes7zr2_9SozqXbeTTx2538TCm84,100415
53
54
  angr/analyses/soot_class_hierarchy.py,sha256=Cs_LRV1RLXH6sF_E49tJWg9Inxvv_o5mB-VaIBcbQJg,8941
54
- angr/analyses/stack_pointer_tracker.py,sha256=rL8wF12Fe3P-RXAzk4caMYapB63tYX_qs-EO6E5l1n8,26228
55
+ angr/analyses/stack_pointer_tracker.py,sha256=jep87hqMSNHCf_6-ACO4uLkTHWuxGHG8BCH2r0HcOWI,28174
55
56
  angr/analyses/static_hooker.py,sha256=g57k_fwxgS4oTzslyCpOf4faG17E685a4-4SpEz8Ges,1711
56
57
  angr/analyses/veritesting.py,sha256=Mlx4EskA-bgNcj80U6rnkzoaGmX-Qwrg531CzsYKohs,25224
57
58
  angr/analyses/vfg.py,sha256=Wl5SYY8Em_HFcyidsgglTfBHHzIwG1pYbXdo5FV-ZFU,75252
@@ -64,7 +65,7 @@ angr/analyses/cfg/cfg.py,sha256=1JpPGlqXXRFwE0tk26xjabT_-dq-kqAxMv7o6-DUhp4,3146
64
65
  angr/analyses/cfg/cfg_arch_options.py,sha256=YONHg6y-h6BCsBkJK9tuxb94DDfeOoy9CUS-LVyyDyg,3112
65
66
  angr/analyses/cfg/cfg_base.py,sha256=o3mAO3ha5DPWFiE_TeUll38ldal-p0IUOyXY4lNnncc,121889
66
67
  angr/analyses/cfg/cfg_emulated.py,sha256=Fi3rDN5ByxhO-H4Y7qn-3WZgBG12JGyvxcWmrD_FnFQ,152842
67
- angr/analyses/cfg/cfg_fast.py,sha256=IwIsPNxbIAGfHOHKf0s_X-MnBZT1mbmlgFKIXHTk51A,209786
68
+ angr/analyses/cfg/cfg_fast.py,sha256=934GeSMtcFgQ3CWoGF_9CfpaJaSnbqU83B4bid_QmaQ,216369
68
69
  angr/analyses/cfg/cfg_fast_soot.py,sha256=eA_P-OY3gRRNj2BBgSPMsB_llGyFFCNW3VyGZ2uiMoM,26047
69
70
  angr/analyses/cfg/cfg_job_base.py,sha256=3IQE_Iy17xtGfsIkrKc2ERIakAYiNdLtRb_jwOGQtHU,5989
70
71
  angr/analyses/cfg/segment_list.py,sha256=XM-rcLHkl008U5xu9pkVCenhcHWAFBKwVdDLa-kGFgY,20467
@@ -89,15 +90,15 @@ angr/analyses/data_dep/data_dependency_analysis.py,sha256=12WNVAdY196JZf37AfkdPD
89
90
  angr/analyses/data_dep/dep_nodes.py,sha256=BCpIPECRJhlX2sMO2LtaXxSD25-Edw2vXQOVcx5i55w,4650
90
91
  angr/analyses/data_dep/sim_act_location.py,sha256=4f8jp-ahitxoHCCOSSFGJ1olvNWuHyiE6iOLa5DA0k4,1527
91
92
  angr/analyses/decompiler/__init__.py,sha256=RkTvvTwAGpaLdGSTgXxVrKmGEDRxqLCNSB-b8fM6fBM,540
92
- angr/analyses/decompiler/ail_simplifier.py,sha256=ZHXNxaR9yLRFbYaczolSbc1vQ1s__EhTi9fumkv8AcM,59030
93
+ angr/analyses/decompiler/ail_simplifier.py,sha256=Z5N37LNpwY0UomVLWdNXek7_5A7JtKk5on1f57oM2WI,59447
93
94
  angr/analyses/decompiler/ailgraph_walker.py,sha256=sBz9Cn0GtdpuFt7R9y3oX6NFvETQTZRh6N80eM9ZdJQ,1595
94
- angr/analyses/decompiler/block_simplifier.py,sha256=zHHJU2ssQScZNd7_Ccxla6xe3hT_5K7iuYeA3aNyxCA,16476
95
+ angr/analyses/decompiler/block_simplifier.py,sha256=X5kO97A1bEwSUfbwgj1cSO56qkhwPQZnIFi1DKMZQoo,17199
95
96
  angr/analyses/decompiler/call_counter.py,sha256=V3TIaSvLUy9vLEWErnvlCS--_ubGWQAeU0tqq6XYeOU,1205
96
97
  angr/analyses/decompiler/callsite_maker.py,sha256=B2lajS20_cTDWvUc-Py-2rP6UybNLd-qAjkuDJMIlX8,14938
97
- angr/analyses/decompiler/clinic.py,sha256=5l8QbXdI3UPah0uhiyZrwQCR4hNraMqvXm3YPhJjJQA,72021
98
+ angr/analyses/decompiler/clinic.py,sha256=02DQ_D6ExnBX7z34fvMUcdmwavU7ay22uEYFIVreLPk,72754
98
99
  angr/analyses/decompiler/condition_processor.py,sha256=ts7-dM1ckqDRh28Vv3YhKhNYUHdsavJah4Ta3_tb-uo,48658
99
100
  angr/analyses/decompiler/decompilation_cache.py,sha256=NveTVs6IY3TTdgsLvTb3ktftM4n0NrAJIkqjXqQ3550,1119
100
- angr/analyses/decompiler/decompilation_options.py,sha256=EtLBv9XG3chXmceT3irru3K7jJhguv8JilWYCHdTWyQ,7668
101
+ angr/analyses/decompiler/decompilation_options.py,sha256=CWhqwcgnt-iJCNLVPSeZ-ALlvFtU7oiL9NjLTmu2Qyc,7946
101
102
  angr/analyses/decompiler/decompiler.py,sha256=pzVD1mzbdlfwKF0kIPI7B1Whlo1h8QNvx3GIxmC1PoA,19955
102
103
  angr/analyses/decompiler/empty_node_remover.py,sha256=O1IcaEFd5oH04nxfvIuh-e2Zbnctw7lSSHrae4NRMSM,7320
103
104
  angr/analyses/decompiler/expression_counters.py,sha256=P4RbtnyEy2lJnNUw_G702W-AIGaL4MszZ5fdrritwwg,2867
@@ -110,31 +111,31 @@ angr/analyses/decompiler/redundant_label_remover.py,sha256=kDGGFWWV61I5fbASiTQTH
110
111
  angr/analyses/decompiler/region_identifier.py,sha256=SQEhgXy5nHkQl6WRDTLZTtbRhxkXzT1IiBCzvP1K-p8,44389
111
112
  angr/analyses/decompiler/region_walker.py,sha256=lTfweYbY4_a2f2yGztTKG6JtU1jXf-kaz-NHbX9nkXE,717
112
113
  angr/analyses/decompiler/sequence_walker.py,sha256=mw4RG-Act5_no_RyQcsxWZwva-n7FdH2a7w_uItGUpI,8428
113
- angr/analyses/decompiler/utils.py,sha256=UH-9xmrI7MCBVmzQUm3U7qztqP-7AH8xuDZOeGF8hXI,19535
114
+ angr/analyses/decompiler/utils.py,sha256=wq19Xmh2nr3TuAcik6kjAgij9Hh16lVLl2RsYG-LO8w,24471
114
115
  angr/analyses/decompiler/ccall_rewriters/__init__.py,sha256=wbWqZ8xG6ZvzEApkAwMsNQFC-iwF3swG1YJsaf1cIrQ,102
115
116
  angr/analyses/decompiler/ccall_rewriters/amd64_ccalls.py,sha256=PjfduEkFVcSBKUfGouVM5dekA4kO4OBUses58ewJnCk,20488
116
117
  angr/analyses/decompiler/ccall_rewriters/rewriter_base.py,sha256=gWezEKB7A_YnlfUDs8V8D5syoYAyIXSIme1BKQRoouM,498
117
- angr/analyses/decompiler/optimization_passes/__init__.py,sha256=x2T9gR0OHaAupuAwhKIVf8zYdQxF1BOdkF2WeZx1CQY,2729
118
+ angr/analyses/decompiler/optimization_passes/__init__.py,sha256=1DGVJnbKhpL18ypOT_ItGFhDdGCPgaQ0hiAclwJvi_k,2930
118
119
  angr/analyses/decompiler/optimization_passes/base_ptr_save_simplifier.py,sha256=bjpEMW-Lqj5XW9NWUikGPcRn5scKNc8VvEjVMXxAuq8,5289
119
120
  angr/analyses/decompiler/optimization_passes/const_derefs.py,sha256=FEoiprXxns-3S0nFaIWm2DBW_aDMq3GZ-VOG3CIqcMw,10593
120
121
  angr/analyses/decompiler/optimization_passes/div_simplifier.py,sha256=1yTI1mmFHBMxADbrKxk9IAf3TpuNCaTLVQqWveyIx1I,17364
121
122
  angr/analyses/decompiler/optimization_passes/eager_returns.py,sha256=rSIjiTf1IzeplmACjAH99ZqebXUeJvvP_jHHmKLoMXk,11250
122
- angr/analyses/decompiler/optimization_passes/engine_base.py,sha256=Q920CTvgxX4ueuRJVNvN30SYC-oH5_TreKVgQ2yJcq4,10392
123
+ angr/analyses/decompiler/optimization_passes/engine_base.py,sha256=7nnNZkVMqvikHCy9X11M8KLWbL8lF0DoLYPemETWP4c,10388
123
124
  angr/analyses/decompiler/optimization_passes/expr_op_swapper.py,sha256=vlPhWDyvuEmbGcd1ka8rS68F72Ty6Hw3J00KM3tWCus,4701
124
125
  angr/analyses/decompiler/optimization_passes/flip_boolean_cmp.py,sha256=DjkPSAI9Z_X6YXW3Emzc1s3CzIvh45HDhBihh63UuIw,3448
125
126
  angr/analyses/decompiler/optimization_passes/ite_expr_converter.py,sha256=-6znFCAXS7Z3cn5CTqr3mg4r1G_jJgDFJHk2PzMVwtE,7756
126
- angr/analyses/decompiler/optimization_passes/ite_region_converter.py,sha256=rZauCx835hRDr8OQBb45oSLqnikiEIcrkEA0bY4qpzE,6689
127
+ angr/analyses/decompiler/optimization_passes/ite_region_converter.py,sha256=l571GUDoCt4hZ2RHBNVUraLl-ODmP_kb11bLKwbCIB0,6762
127
128
  angr/analyses/decompiler/optimization_passes/lowered_switch_simplifier.py,sha256=MQNtGU8paXdhTcfvYvBeTplX-htqs0WI6o-72me8fmg,34328
128
129
  angr/analyses/decompiler/optimization_passes/mod_simplifier.py,sha256=A9pPly7otXJlLkSbItU0wvjGGu6rUsNpcFw3bzy4DjY,3046
129
- angr/analyses/decompiler/optimization_passes/multi_simplifier.py,sha256=Ez7ye4j2VUfELxRPkNQQIY-gF9Q9SkTZxH5jt301Rx8,10968
130
- angr/analyses/decompiler/optimization_passes/optimization_pass.py,sha256=ESHMebQSc08DcvFjN3i5vird_t-L2Jb6qHeIxGADlDs,7747
130
+ angr/analyses/decompiler/optimization_passes/multi_simplifier.py,sha256=Lxu_Af27B8HwIFYK_DuaIrqseO7yIeHsxkh3ztWeM1w,10342
131
+ angr/analyses/decompiler/optimization_passes/optimization_pass.py,sha256=1gVX8BvwuSGRsx33vPyS__bjz25dxoHKGOglpNpQb8w,7819
131
132
  angr/analyses/decompiler/optimization_passes/register_save_area_simplifier.py,sha256=2_-nVKkvClCDykVDd29CRIT1ZCPdYBlSi96h9yrSOw4,7398
132
133
  angr/analyses/decompiler/optimization_passes/ret_addr_save_simplifier.py,sha256=_sTaGMQMFa5ATQIvNyL05UK8gCi_SaOckrZKyHZ2vfs,6470
133
134
  angr/analyses/decompiler/optimization_passes/ret_deduplicator.py,sha256=CAOGRra4PB-FCjTxQs2e-lEQ6z_CMvHsrubpbyahv0M,7797
134
135
  angr/analyses/decompiler/optimization_passes/stack_canary_simplifier.py,sha256=diqUO-k1hq9OzuC7OLMyJJODhy3i1c5Tb7d9f7lx6mU,12147
135
- angr/analyses/decompiler/optimization_passes/win_stack_canary_simplifier.py,sha256=F-X7Ww40BXDlnj7Ja2SjY6-u7hLubxMkjMOIwX45j50,8779
136
+ angr/analyses/decompiler/optimization_passes/win_stack_canary_simplifier.py,sha256=tIMZ4kDutUY-5jFrfA34tf3NufE7n33PcAlxz_mSebE,12304
136
137
  angr/analyses/decompiler/optimization_passes/x86_gcc_getpc_simplifier.py,sha256=lwLc9QpOCTdSIb-0SK0hdxi2gzpABTk2kzdwBY20UOo,2980
137
- angr/analyses/decompiler/peephole_optimizations/__init__.py,sha256=0nu8k34LJeFCUeh08QiUIcey8icL_LXIwrSl-bdS1CU,2800
138
+ angr/analyses/decompiler/peephole_optimizations/__init__.py,sha256=pe_zErF540hOybDNC0ij9B3ASQOck9PYNa64hzSEp3U,3208
138
139
  angr/analyses/decompiler/peephole_optimizations/a_div_const_add_a_mul_n_div_const.py,sha256=Whptbt1qujPPRsNX8kJaobHTwgvym7SPu-tC2wBynBs,1727
139
140
  angr/analyses/decompiler/peephole_optimizations/a_mul_const_div_shr_const.py,sha256=xuLPEVN1QdQT_5U9K4-WIdVdHTogCBOmJPWlnDW8Cz8,1365
140
141
  angr/analyses/decompiler/peephole_optimizations/a_shl_const_sub_a.py,sha256=tEr_XcYoOXcFm5paY_CEzgSOjrksz20utMZa6smF9TU,988
@@ -142,7 +143,7 @@ angr/analyses/decompiler/peephole_optimizations/a_sub_a_div.py,sha256=ocLn_4eLty
142
143
  angr/analyses/decompiler/peephole_optimizations/a_sub_a_div_const_mul_const.py,sha256=gvPg4KkQcammW4sviu272RLf7S0ASmcYfa5GAXGQX30,2050
143
144
  angr/analyses/decompiler/peephole_optimizations/a_sub_a_sub_n.py,sha256=KajKgL00mHXpEZewbwKgnZKLbZTnSB00-CGbed12uNU,619
144
145
  angr/analyses/decompiler/peephole_optimizations/arm_cmpf.py,sha256=ShdDtwrhqxUzPW2MwM98xufHo7OSL8GfNYQQCGYXrVQ,9333
145
- angr/analyses/decompiler/peephole_optimizations/base.py,sha256=lpcTqDJSHz4lWlolrATHG3PBWrWj9oy9XeneHSgc48A,2676
146
+ angr/analyses/decompiler/peephole_optimizations/base.py,sha256=os9bEPHDm2p5EA4h5eoA7Uso2nAjBYySwJ9gjp5p44Q,3538
146
147
  angr/analyses/decompiler/peephole_optimizations/basepointeroffset_add_n.py,sha256=OzchLk1a0CV2ggHm6-TLpa6f_b7fj7K3Z3l6gFCUEJc,1056
147
148
  angr/analyses/decompiler/peephole_optimizations/basepointeroffset_and_mask.py,sha256=eiUgxcBVAL6PiI3ZuR6xZMNrWGDHKXO6SZSjUbM_BVw,1065
148
149
  angr/analyses/decompiler/peephole_optimizations/bitwise_or_to_logical_or.py,sha256=oocs8xmntUNzI7UUG8UFPCDheda3xAb99REPAkD7ins,1298
@@ -150,11 +151,13 @@ angr/analyses/decompiler/peephole_optimizations/bool_expr_xor_1.py,sha256=QANf71
150
151
  angr/analyses/decompiler/peephole_optimizations/bswap.py,sha256=Nrdf5f47NduOc59CjmQbmsVmys1e79HxniPExdd3NRg,3663
151
152
  angr/analyses/decompiler/peephole_optimizations/coalesce_same_cascading_ifs.py,sha256=9ogHTcP4vhFfwDzxccnjfhkizKGvM_7tK3y6PqyG5Hg,1020
152
153
  angr/analyses/decompiler/peephole_optimizations/const_mull_a_shift.py,sha256=KLdhgU_e1OglEeC7IHipql9UzYpatJc0LydXJJIakL4,3691
153
- angr/analyses/decompiler/peephole_optimizations/constant_derefs.py,sha256=JksMps_XeJGGtM2qlqIDRzUsEOOhUCn3D8aPx4bPClg,998
154
+ angr/analyses/decompiler/peephole_optimizations/constant_derefs.py,sha256=SjSE3kTrPYPjsoY_pW3nZPk9IXrJwNR4lfQ9nV-QVKg,984
154
155
  angr/analyses/decompiler/peephole_optimizations/conv_a_sub0_shr_and.py,sha256=vzROAUvKUrQQmwUXJ-0WyFr1v5f8EPBgjeXIpWhtDak,2578
155
156
  angr/analyses/decompiler/peephole_optimizations/conv_shl_shr.py,sha256=0IHIk7uxIC70140k3VcXlnx4QcunAeoETXF1ZgJi2Pk,2070
156
- angr/analyses/decompiler/peephole_optimizations/eager_eval.py,sha256=9FXjKuBWC2oDo3tPkNOhiSOD0C_P7vA83DAp7qJfnIU,8684
157
+ angr/analyses/decompiler/peephole_optimizations/eager_eval.py,sha256=0B7Mc6A_n1EWoof7k5C0zl7RZ-NTK76mm01ocB1VEGg,9183
157
158
  angr/analyses/decompiler/peephole_optimizations/extended_byte_and_mask.py,sha256=ymP9tDU4NipGOdFWsmLHrR6dKVcEFiaTgM1-L_dfmOM,2015
159
+ angr/analyses/decompiler/peephole_optimizations/inlined_strcpy.py,sha256=x8ZS-ThnUiJPBacRFpOZ3gBqixamrHSCCZSR-L5jyC8,2601
160
+ angr/analyses/decompiler/peephole_optimizations/inlined_strcpy_consolidation.py,sha256=vrXAaYKT99LJK5BLKlyQ7xtzQx6hIujqTAv0-Ur1CWo,4676
158
161
  angr/analyses/decompiler/peephole_optimizations/invert_negated_logical_conjuction_disjunction.py,sha256=a0IDp0kKBrPwhDVejPFhcNseZdprF_5EZRZs7KTR4gA,2084
159
162
  angr/analyses/decompiler/peephole_optimizations/one_sub_bool.py,sha256=kW8AbWfMqFzI1CVFp79TFX60IZxaQhRG8XUckuc-vGI,1136
160
163
  angr/analyses/decompiler/peephole_optimizations/remove_cascading_conversions.py,sha256=3a1ZoTq66HTU68y5DCC2sLvItPmqF_Kv05uvOacxsRM,591
@@ -182,15 +185,15 @@ angr/analyses/decompiler/region_simplifiers/cascading_ifs.py,sha256=dbAn1fde1-ki
182
185
  angr/analyses/decompiler/region_simplifiers/expr_folding.py,sha256=lCNR9UTzKaUSGmL0Fzv0QDcDubmrGey47eNC3yteUEE,24008
183
186
  angr/analyses/decompiler/region_simplifiers/goto.py,sha256=JaZE8cDQ1aHqGCZAvNHoO2REf1Qz_PL9JTwQ4E_DvIo,5938
184
187
  angr/analyses/decompiler/region_simplifiers/if_.py,sha256=qDkZTrRjDzI4CX6vwEcaddmaPvG4sWHn373VVwmf0e0,5034
185
- angr/analyses/decompiler/region_simplifiers/ifelse.py,sha256=_1_XtnjNeRfGHlyMfKs18gjtfqnrsdVTdYhaqLRwZaE,3098
188
+ angr/analyses/decompiler/region_simplifiers/ifelse.py,sha256=nWUow7p_TOgFQuUgWXQcH2qSFfxUWJBgkslvajhTbn0,3681
186
189
  angr/analyses/decompiler/region_simplifiers/loop.py,sha256=U4FvlMaOfsOtLmtifa8j_V6T5VNhtH_lg6zOqBdaQ0Q,5861
187
190
  angr/analyses/decompiler/region_simplifiers/node_address_finder.py,sha256=OjcyE-zTx0ayBn250hlMuOJv_fH7uj3FGW3X9RKarno,565
188
- angr/analyses/decompiler/region_simplifiers/region_simplifier.py,sha256=A0fnV-t1A6IR5Q6pQvv53DvITUJifvlq6gFj83BJwyk,8077
191
+ angr/analyses/decompiler/region_simplifiers/region_simplifier.py,sha256=odeRyT8VItRPIFuUPNaRnA936LwxwXOFbM_HhehK90I,8209
189
192
  angr/analyses/decompiler/region_simplifiers/switch_cluster_simplifier.py,sha256=0NBa_tpz03ZcaHYUNKXSVZjF3TVmqs2FUc2TdVGwsqc,24545
190
193
  angr/analyses/decompiler/region_simplifiers/switch_expr_simplifier.py,sha256=HGIiC6c3C91VfcqxUHe9aTsRohwmMXOHZH_G_dbwwx4,3327
191
194
  angr/analyses/decompiler/structured_codegen/__init__.py,sha256=Glc4jBCr7lZckltN9XZdSvMrGHf0swXFyKTr_QQKdWE,290
192
195
  angr/analyses/decompiler/structured_codegen/base.py,sha256=nJPOoeJCbewchYdXjSE4S2b1-WN6pT3TxmCQMDO0azw,3845
193
- angr/analyses/decompiler/structured_codegen/c.py,sha256=q0HM-IesR-S9SJ6eAXeMzT0Kaa8ejZ7kvbjQ-cDsMLg,128216
196
+ angr/analyses/decompiler/structured_codegen/c.py,sha256=rJyXVUmXuzFA10jfiewfINB5WfisUIadhqje-kXTz40,128736
194
197
  angr/analyses/decompiler/structured_codegen/dummy.py,sha256=IVfmtcWpTgNCRVsuW3GdQgDnuPmvodX85V0bBYtF_BI,535
195
198
  angr/analyses/decompiler/structured_codegen/dwarf_import.py,sha256=TMz65TkF_ID_Ipocj0aFDb84H6slolN90wq0tzhY2Rk,6773
196
199
  angr/analyses/decompiler/structuring/__init__.py,sha256=eSiT6xUpv9K5-enK3OZj2lNzxwowS9_5OTrjHiPgfFs,371
@@ -239,11 +242,11 @@ angr/analyses/identifier/functions/strncmp.py,sha256=XlqTTLjfPRj7LSw3-xHoH4SJyNi
239
242
  angr/analyses/identifier/functions/strncpy.py,sha256=1WUrhXMS5Sd5rfgBJbChZD_BZ_D47Z_H4AZwriyqDO0,2008
240
243
  angr/analyses/identifier/functions/strtol.py,sha256=Py_6Y9rR5dfy53LX8w9WktSBaxdyPlbrcLEiV6cWfHs,2426
241
244
  angr/analyses/propagator/__init__.py,sha256=5-UKSiAtYocLzmQWXPzxyBnPui_c8P_r617KDwtRnNw,43
242
- angr/analyses/propagator/engine_ail.py,sha256=VOZstY-jD0-EGnWWqjZZw51o9vdkJd9LinPe3rGu1uw,62429
245
+ angr/analyses/propagator/engine_ail.py,sha256=ktZlhXS7_WPOecalGliRv5p8TeW1r6Ie18iiLtsl3wY,62565
243
246
  angr/analyses/propagator/engine_base.py,sha256=0j5NzJ9jArF4KeysBeiPoo_RKyCvlgn-i3inSZt1cyc,1735
244
- angr/analyses/propagator/engine_vex.py,sha256=HPzS5CXLdFHoKM7_nulgqguwZCyv3Iaut2avsi6cvkM,10132
247
+ angr/analyses/propagator/engine_vex.py,sha256=I32McxCOk5C30ts-E3i-BDaxlnI27HzchmRWMKsu-oY,12199
245
248
  angr/analyses/propagator/outdated_definition_walker.py,sha256=OJnI9rlyutyy2qHMTqnrnQJCXKcBHvgwHfiqlWDECiY,6890
246
- angr/analyses/propagator/propagator.py,sha256=2pwScw6VbWH-hit3qBRuoSNDxhk9OV7oBDY3gIxrnlQ,15555
249
+ angr/analyses/propagator/propagator.py,sha256=aoTheBycoH8Fa07Uy6bZYQqtjbiGe90_c6QiwVIolfI,16071
247
250
  angr/analyses/propagator/tmpvar_finder.py,sha256=GqP1lm-_ez4AvXraDt1BQ1o7GvdjLI7j-TUL5k-lKbU,442
248
251
  angr/analyses/propagator/top_checker_mixin.py,sha256=8NujgeNTiaSb6JQ3J01P5QJSnQ_mnF88m7rXlATIruQ,359
249
252
  angr/analyses/propagator/values.py,sha256=b8zg2VIPJoZj4qtF3_XRfoxA7LjXxO9OIkqZ3y0Wc_M,1991
@@ -251,7 +254,7 @@ angr/analyses/propagator/vex_vars.py,sha256=O0W7GekEZIVwiNiOdyu-BuxCZmHFZPh_ho7j
251
254
  angr/analyses/reaching_definitions/__init__.py,sha256=3itfNz4b0XcTDJJbU10gZfSuqUAx0s8poicXhXZUpys,1989
252
255
  angr/analyses/reaching_definitions/call_trace.py,sha256=5y8VtU-5-2ISamCkok6zoMahWASO2TBQYl5Q0pgeLGw,2217
253
256
  angr/analyses/reaching_definitions/dep_graph.py,sha256=iwhYTySlIPkXOuYvEZzUme947Veq2ogrtD6_1ODqzVQ,14966
254
- angr/analyses/reaching_definitions/engine_ail.py,sha256=dAI4hIFdg7iFcEQz1UXay4e215jQQy9PagOqXScw2GY,44787
257
+ angr/analyses/reaching_definitions/engine_ail.py,sha256=VqTC3GH1nBbW_nmsWG-Wvrl_R0I5eVwysIrg31eFx6o,44826
255
258
  angr/analyses/reaching_definitions/engine_vex.py,sha256=CvxXI4pVX7K_IhbWMGL-cNcfS2qEaAF-s4LGopb_yHs,42097
256
259
  angr/analyses/reaching_definitions/external_codeloc.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
257
260
  angr/analyses/reaching_definitions/function_handler.py,sha256=TB6yW0TBQnTdAv3SOBcui6dSCBMoviivKx0v8COY12w,26839
@@ -319,7 +322,7 @@ angr/engines/syscall.py,sha256=LNMC3zyis3OiWC7_8Zn1blMw1EDib5FjUqepXlaWDTI,2177
319
322
  angr/engines/unicorn.py,sha256=gf7LjjWyaaujqSuCq3d-BGm8t5sdZjzsJeBevGfdiLw,24447
320
323
  angr/engines/light/__init__.py,sha256=j9vH2fU9MaNVQ8NT3Ek3Tj2zkGlVxlKyzia8zVTofYs,186
321
324
  angr/engines/light/data.py,sha256=jZBAJxor2zg5m4s63joSrjUs8H-OeHBZiqZmc3dqEQQ,23132
322
- angr/engines/light/engine.py,sha256=XB9y81fxGiIFvCnXstQA-BsEWLCHk0oR6a3gobj1Dgo,40265
325
+ angr/engines/light/engine.py,sha256=19FLnb5xu_KKZGbQFc2pwdSoYWjQn0KBccp1lXfETS4,40791
323
326
  angr/engines/pcode/__init__.py,sha256=UwMEwXQvHXIIgedJn2ZOvBBEgfHg2rfREBSpcTSXCZ4,83
324
327
  angr/engines/pcode/behavior.py,sha256=Ecmw9uGAnrzjlvW6RPob0j-dpm0OTag8CRzSC5U-0fo,28649
325
328
  angr/engines/pcode/cc.py,sha256=LrYXVexTgG3iCvYMRZfHvkT94vO447dVzcvSXdumVHA,2923
@@ -418,9 +421,10 @@ angr/flirt/__init__.py,sha256=UTjDOlVPnvb5u1zYOvSrI_8F-RllvA_rWCEF1XGEswk,4428
418
421
  angr/flirt/build_sig.py,sha256=QnBVAjmBms6GiDK1v13dNE-YQ2i95qazDh0lYX5nKEs,10109
419
422
  angr/knowledge_base/__init__.py,sha256=G2QiJKD3Q1dgpSjaHwZi0FMDRI8aeu2x2Lyn9FSgS54,42
420
423
  angr/knowledge_base/knowledge_base.py,sha256=V_RDvf-VOizrB9a-FYrsuYd_bAfyPoEhxAKmZb1Z2Gc,4623
421
- angr/knowledge_plugins/__init__.py,sha256=4I2Xws0q8PNLPWYm5tMpg4TMbAIf4uEBEowQMApistA,655
424
+ angr/knowledge_plugins/__init__.py,sha256=UIjrxZHnr-EaYe5tSNQ1DVE6yRJtMlJzNXGLK6ARPhw,697
422
425
  angr/knowledge_plugins/callsite_prototypes.py,sha256=nEJhJxuH_xivJRcRsFbeQ0KJuncHShfwk9WhChcMScA,1614
423
426
  angr/knowledge_plugins/comments.py,sha256=Zc8_5Y7ThGsVetdfLeI7OQSrKjmu9tSkzq_qQMcDDjE,315
427
+ angr/knowledge_plugins/custom_strings.py,sha256=5uy6QZb40BNkLlttpgTflTQj_mPUt6v2iFSiHBns69c,1044
424
428
  angr/knowledge_plugins/data.py,sha256=iKviVL-_lqqdw_7YECDpoSmrtUSj6oKfbCYVu40T6kE,260
425
429
  angr/knowledge_plugins/debug_variables.py,sha256=N3vltNKykTsuQ3zVvxHz00Y_0_UvjZuIL47FhBrP0Kk,8223
426
430
  angr/knowledge_plugins/indirect_jumps.py,sha256=puJnKhp11eRDNZ-swEXKtZk04DJ48uM1F8gBiz5xbAs,971
@@ -435,7 +439,7 @@ angr/knowledge_plugins/cfg/cfg_node.py,sha256=Q_qqQ1LisCzTWROOQAfvyaBjS86zxcMw6I
435
439
  angr/knowledge_plugins/cfg/indirect_jump.py,sha256=yzPf1jjUNPgGP7D7IamqX6KF-EJX-heZjDEr4SRUWDA,2145
436
440
  angr/knowledge_plugins/cfg/memory_data.py,sha256=FzRUFltXrN0G3OeMZEbb3xc7I-W8AaomtCTSXUQlJ0g,5040
437
441
  angr/knowledge_plugins/functions/__init__.py,sha256=6IerJjMKKvM70mcJQhmXJYiipePOQ9ZSTmavTIUgg5Q,77
438
- angr/knowledge_plugins/functions/function.py,sha256=o7X2JiWUw4RmX5_3Bk8L2AxisOudC02gPMztBsJLyuI,64156
442
+ angr/knowledge_plugins/functions/function.py,sha256=NyAznn7LnJ9QIIANsEdpjJS8hwG955ve4YHtiznpK6A,65399
439
443
  angr/knowledge_plugins/functions/function_manager.py,sha256=Nbk97zc3GCW6BzpMdZha7e8zhCOH9lD3Avw1XYZV778,17558
440
444
  angr/knowledge_plugins/functions/function_parser.py,sha256=cb_AD5oFqoyXapDBawnJV1D9XVRMBGa9GwwDudNSc3M,11916
441
445
  angr/knowledge_plugins/functions/soot_function.py,sha256=2zwz_tdKbEnF8eUkOEmpNr7AUeooun2-SiIoY_xIdMw,4971
@@ -456,8 +460,8 @@ angr/knowledge_plugins/key_definitions/uses.py,sha256=ApcPloldFy5Y9ucl5IK5fo4tbe
456
460
  angr/knowledge_plugins/propagations/__init__.py,sha256=YOHJ2PMz-egzFMA2H0eKa5FDMadJcp5DSdncVwQxv84,100
457
461
  angr/knowledge_plugins/propagations/prop_value.py,sha256=pfRYRHb1wEEhrSiSlOzuZDY9ZHeIQZM2yjA3JazPs_8,7706
458
462
  angr/knowledge_plugins/propagations/propagation_manager.py,sha256=5DohQ6GiLmRfA4whx7dsKImBLCajQnLBwKieddf55J0,2112
459
- angr/knowledge_plugins/propagations/propagation_model.py,sha256=dcO9dLaEeGl5F3tv-TzEBkdRewh3Iykuo6Bhht_NNHo,2607
460
- angr/knowledge_plugins/propagations/states.py,sha256=xF69UXBSKqdpWHt7iw5Q_x_Of7TaXDBv1w5XS1U6BeM,35896
463
+ angr/knowledge_plugins/propagations/propagation_model.py,sha256=rK5qbWREPpUtEzOBRFn2bZviN6Ux-HlN0zF_inlg104,2786
464
+ angr/knowledge_plugins/propagations/states.py,sha256=s6ltT-ZOrFC-usGvmCF3v2q53SFnP6OqFsQxN6ypqjw,37320
461
465
  angr/knowledge_plugins/structured_code/__init__.py,sha256=9edAAAVroOR8nNBThuRjOnjVUIqavnObO7mlUttxInA,43
462
466
  angr/knowledge_plugins/structured_code/manager.py,sha256=ov4BUMuYANS8Lz2QhmXgAo5wpGlWU9AmcTQcgYbD0HE,2126
463
467
  angr/knowledge_plugins/sync/__init__.py,sha256=RN3y0UhYax-GdPyAhondMXEBuWIu-enHjxjpdTKhQ58,44
@@ -469,7 +473,7 @@ angr/knowledge_plugins/xrefs/__init__.py,sha256=-5A2h048WTRu6Et7q7bqlc-AyBXNuJ9A
469
473
  angr/knowledge_plugins/xrefs/xref.py,sha256=w4wjDFl4xtJYOtJplp9s1AIX3wI1RE71po3ufh1M4aY,4963
470
474
  angr/knowledge_plugins/xrefs/xref_manager.py,sha256=GYF9N1t4JxkDNGAwrVLo4_NF51P4gqiuQ21F0IbloF0,4026
471
475
  angr/knowledge_plugins/xrefs/xref_types.py,sha256=VR3xLQQ-gUg25oX0OL3BJHyQRlZh2A8syBac9ZMS9n4,271
472
- angr/lib/angr_native.dll,sha256=iR_xY3eXAHzI6rFPt8WI36s6YBoXrYS_IB3uGXz6sJU,19209728
476
+ angr/lib/angr_native.dll,sha256=11cK_YtAgS6M65LdUcp19DHZtE6qxMmhDBZCZe0o_II,19209728
473
477
  angr/misc/__init__.py,sha256=Ct-Q6-c-Frdz5Ihkqmou3j_1jyJi8WJXlQxs-gPQg0Y,237
474
478
  angr/misc/ansi.py,sha256=TKrx7d_MViChHh5RBR2VLufNrujTUioJWsZS5ugk8k4,807
475
479
  angr/misc/autoimport.py,sha256=6WT-Z6wf5NiacQhKZmR4d2bPOvNrokA7Wg0g2MUXSuw,2371
@@ -494,15 +498,16 @@ angr/procedures/cgc/fdwait.py,sha256=bYccIjGqa-pHXNz_DFVdg6zDTkBk_QX0u9pCwJvOP9o
494
498
  angr/procedures/cgc/random.py,sha256=1dyl58S21I3-LMGi8HlD9VZ0VN97wA7pBIeU1fZi4QI,2334
495
499
  angr/procedures/cgc/receive.py,sha256=qNi7ZX-411q3i-j4z-ylo6jPP5oCky--IP_CyTScWHI,3758
496
500
  angr/procedures/cgc/transmit.py,sha256=CSWX4FLeW2-42_QVo2FMdmV9GJuYqgtTybtYbcMgDCQ,2368
497
- angr/procedures/definitions/__init__.py,sha256=7-kYE3R18vjmBgqzdcbEQkdlIc2cPA7EwWHLpX9KIyU,27702
501
+ angr/procedures/definitions/__init__.py,sha256=uSTPfnB2QYSOWdr27tPoCUOnArGXxW7W5oiKKsZJKdQ,27764
498
502
  angr/procedures/definitions/cgc.py,sha256=tEYT-9MOmlBxehMYP32Fog9t8GczMdA84ienDwcPdyM,460
499
503
  angr/procedures/definitions/glibc.py,sha256=JYvXHEkNMJhyzoCvnIJs6Aa3u_pTtjHuw-mbCkNKWBY,394113
500
504
  angr/procedures/definitions/gnulib.py,sha256=fH8KbaUj6bVOG_cv-JiaffWkVN-YHFbWwvRlE8Mkr9c,1081
501
505
  angr/procedures/definitions/libstdcpp.py,sha256=lhV3EGR45spEo_vNFNw2vIdPJWdByqar_sP9dFZMvKs,700
502
506
  angr/procedures/definitions/linux_kernel.py,sha256=uaTTlulqv2eeUmIkQ70-pvLT2-ay7rqMBjPazhh5RbQ,238887
503
507
  angr/procedures/definitions/linux_loader.py,sha256=sW7eQ7Dk2co_9x0ql-YsWYB8JYs0YQjGz-IM_ukp5c4,219
504
- angr/procedures/definitions/msvcr.py,sha256=NGJe7BRcj5XBLQmLGIAKSNTCfVuXPk2Nn1HxfKDCJ5U,700
508
+ angr/procedures/definitions/msvcr.py,sha256=9Wvo9U8ARM93oYmID5pBSCAr9Yg0TxjXAj7Gi_Lks2s,601
505
509
  angr/procedures/definitions/ntdll.py,sha256=2X_f1WvpBncRS6nN6PwatRKtgdn6cMYb4AnvLEhCYN0,404
510
+ angr/procedures/definitions/ntoskrnl.py,sha256=u4ZBSOArfie7Sp8jUNv_L5n_7lmQVRR2w6RoPf6RR_s,317
506
511
  angr/procedures/definitions/parse_syscalls_from_local_system.py,sha256=9OcLLDNrNb6CifvveD_yTzfhMYEN2iK46nNNjMyz3I0,1795
507
512
  angr/procedures/definitions/parse_win32json.py,sha256=zFfq0SpBjgzIDUisbzA4zTvISGslOEPHe4V2zDbqepE,84681
508
513
  angr/procedures/definitions/user32.py,sha256=AeiY02ZFLAbGvC1BNoHvmC_-xfvdjFNzZqd6dgd60kE,350
@@ -1071,6 +1076,9 @@ angr/procedures/win32/local_storage.py,sha256=SgULhROe0gRyS9BkV03WGWGfEe1WPB63hA
1071
1076
  angr/procedures/win32/mutex.py,sha256=JEDgitKG4BPQGeKwU8wHJr0hgWiWQYjbfrNr_-BJ15c,177
1072
1077
  angr/procedures/win32/sim_time.py,sha256=Y1wdm1vlquRGiO5gXjXFsfBLIJigO_YxaUuTE8whSns,5332
1073
1078
  angr/procedures/win32/system_paths.py,sha256=SZMzkyquBzfNiSMCjjCSgVK5bcAg4fliqKuhXNxMdAs,1238
1079
+ angr/procedures/win32_kernel/ExAllocatePool.py,sha256=G8AyUTGrTnGlWI9AAD0UTFc_EUU24_HCxHmyN0QW8lY,423
1080
+ angr/procedures/win32_kernel/ExFreePoolWithTag.py,sha256=YT30Vkm0E8Zbew6XEVx2vHnxRVdG8m1KC7w5KRrdGLA,225
1081
+ angr/procedures/win32_kernel/__init__.py,sha256=I4WgVVCg4PuqChPe8nayrzLxDYJBFAwHdql8sWAD0Ps,70
1074
1082
  angr/procedures/win_user32/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1075
1083
  angr/procedures/win_user32/chars.py,sha256=YBbvG34k7SpbTsqEFCbXAqpyH3TjHFhjrG10Bv_HQ7I,352
1076
1084
  angr/procedures/win_user32/keyboard.py,sha256=Ds3qarw_TgOkIMquV_f_lxdxJfHoFRwwwHasbFZGQDM,377
@@ -1128,7 +1136,7 @@ angr/storage/__init__.py,sha256=X3JnQg95SqAqahP1x10Kk5E0OXxyNlV2Xk3NKyXzykA,182
1128
1136
  angr/storage/file.py,sha256=S55K2p9s1IHtmbpR5iUF3V5HorSgBiiHWnFdtSmjZfU,48219
1129
1137
  angr/storage/memory_object.py,sha256=U0T-XB7CxUqISODY6o2WONjiThHyzFKBjZ8D0pWLPj4,5663
1130
1138
  angr/storage/pcap.py,sha256=8n30ui0KO7qx_RgmGFL_cBYMF5AlQ5LzVFeCh9ODU6c,1940
1131
- angr/storage/memory_mixins/__init__.py,sha256=vblWOZgrDQ1j5_BaSGrS2wseBdp73HO295_WH6Sd-ZU,11881
1139
+ angr/storage/memory_mixins/__init__.py,sha256=1kLsmopg8ZyCMP3OJSXOX50sbLpvlQ4HUZjDzhrCfQc,11892
1132
1140
  angr/storage/memory_mixins/__init__.pyi,sha256=7jA-O5r8efBzQWZa9q-5xs6HY-rYPSlgo2_42CRUYqQ,1944
1133
1141
  angr/storage/memory_mixins/actions_mixin.py,sha256=KZSCMjGB_Sbk_rlgGxk4k02Pu3b569c6tG-xPoH31L0,3402
1134
1142
  angr/storage/memory_mixins/address_concretization_mixin.py,sha256=6VJ4Gg3NecygagBlNe5jrGgSmCJmfh53nnxwzIwjO0k,16569
@@ -1188,6 +1196,7 @@ angr/utils/dynamic_dictlist.py,sha256=80kE4ySWF3dAffUt5qlyUfK6h0A8jOVMMaNG8RNUz7
1188
1196
  angr/utils/enums_conv.py,sha256=YdnZzvuVc_BW1EuC4OtEo7LqB35XkPrXICyWox8Posg,2091
1189
1197
  angr/utils/env.py,sha256=wWlmjLp7CtafKItn7xq2RW3UzGGgxw58Wc8fSm3EZJQ,363
1190
1198
  angr/utils/formatting.py,sha256=QOw75CLSrttGTn2aYQzBFIBhZj40J9ESQZxJOz0BexA,4217
1199
+ angr/utils/funcid.py,sha256=PCOvMfRrt70Es1cMlVqKFVCmHfELXQHvX08Uqabn7Nk,5006
1191
1200
  angr/utils/graph.py,sha256=9ZjoTAjeedTMcRT4m9P60WISddlevBDLzQUsE0RETmQ,27639
1192
1201
  angr/utils/lazy_import.py,sha256=VgN0-cMsr6XdGIq56Js1X8YecfPdW9Z4NrB3d2jD-5Y,308
1193
1202
  angr/utils/library.py,sha256=MYbY6rvC2Fi1ofbBHynh6-cdmaDETxj8hBz1gxKvsQQ,7178
@@ -1210,7 +1219,7 @@ tests/analyses/test_cfb.py,sha256=5lV3QHvDqQlyHvtVXkxiMdL091uUM13wnzGl8n1Hakk,91
1210
1219
  tests/analyses/test_class_identifier.py,sha256=UaswarpeuBDiyaEkjWng_AwxU-kg_x-ZHR0u24mNqhU,1428
1211
1220
  tests/analyses/test_clinic.py,sha256=I1Su7BtiTPWdSf3l90vy-lHAA75_lbzdj-g_syIJlLM,743
1212
1221
  tests/analyses/test_codetagging.py,sha256=JMTdmJuaW_rZNcg4twVWKEjs8SQKdd8J8jttBPLorQ0,1026
1213
- tests/analyses/test_constantpropagation.py,sha256=dNfrTP5-9WY3ofOnROJsu_mJzNbFEf5x568FPvv3YdE,1809
1222
+ tests/analyses/test_constantpropagation.py,sha256=hPzlPDgri6ngqko8LIcaebToETugwS_I17MHcaxEjHI,2995
1214
1223
  tests/analyses/test_ddg.py,sha256=PcCbM3VQciTO02-XkjkCJeu5wahsXyNvKyyKHja36ao,3176
1215
1224
  tests/analyses/test_ddg_global_var_dependencies.py,sha256=Dv9ObVLuCuf8pkhUK2fL0jC--NcnVjgRj1MyG2Xggxk,3613
1216
1225
  tests/analyses/test_ddg_memvar_addresses.py,sha256=anbiZ8s1hgu6XhDxS_zVfb43DtHQLrmNWRhLdMk1zCw,1258
@@ -1240,7 +1249,7 @@ tests/analyses/cfg/test_cfg_rust_got_resolution.py,sha256=HCXQT09iJz7kempYuQo30g
1240
1249
  tests/analyses/cfg/test_cfg_thumb_firmware.py,sha256=VpZ52hp4L01WmIJoa-j1LVGdRNiBVqjz0TFSEvRa8bI,1767
1241
1250
  tests/analyses/cfg/test_cfg_vex_postprocessor.py,sha256=wVj2LLT2ibo0SsQXbPbOrIFG03Z7nMxpBXZV88wox1o,627
1242
1251
  tests/analyses/cfg/test_cfgemulated.py,sha256=yf9YSHQibw62Vf1ixu7pb5Uo-2rbhYdcKaEfZn-UkG0,23341
1243
- tests/analyses/cfg/test_cfgfast.py,sha256=oozwFA2j8PeHWqcVgWx9B41QDQprN9foyqTJqNfhSYc,39793
1252
+ tests/analyses/cfg/test_cfgfast.py,sha256=Qmne4A9CvgZSEHcd8Xsd4AHKelyKbjU4OA3hjvO8H_A,41019
1244
1253
  tests/analyses/cfg/test_cfgfast_soot.py,sha256=oq9P3FH89V5wU5HSwfSOiN2PflevOKHgVFgPWANPz0o,1094
1245
1254
  tests/analyses/cfg/test_const_resolver.py,sha256=GOgiqISS5BC2Ts4gSx1L6id54w2kEHUH4ENvizVT3I0,1178
1246
1255
  tests/analyses/cfg/test_iat_resolver.py,sha256=_tGaLI07TsOekyk5TZI0hg32wKptWpBxgkNPAv1IFck,989
@@ -1252,7 +1261,7 @@ tests/analyses/cfg_slice_to_sink/test_graph.py,sha256=K77zi-kkcdsazokuk4pCr_qPEx
1252
1261
  tests/analyses/cfg_slice_to_sink/test_transitions.py,sha256=Jh5g8MPny5NcD4Ubg0cMgR0hNi_SCMA2CE9bmhopodo,698
1253
1262
  tests/analyses/decompiler/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1254
1263
  tests/analyses/decompiler/test_baseptr_save_simplifier.py,sha256=K7E87Gksi1rNDhft1w0KuavVwzijRpdUkwLcEriQjlY,3006
1255
- tests/analyses/decompiler/test_decompiler.py,sha256=KIgOa_2xm4mc_gLHg24FToPFUcVZiCbuB-kYUJd3Dqo,140753
1264
+ tests/analyses/decompiler/test_decompiler.py,sha256=87PvhrjpgN6RXEvpPTPHlI9OzSAC1DyHaoa20AeeOl4,147012
1256
1265
  tests/analyses/decompiler/test_peephole_optimizations.py,sha256=H8amGt72-KwsPamy9h3pgRVhZ-fzhVXkkUzEn_YgO6Y,1648
1257
1266
  tests/analyses/decompiler/test_propagator_loops.py,sha256=zOP3vH5ldnutlismSrGH1JfYsTUIn872Jcb8CYanmro,3268
1258
1267
  tests/analyses/decompiler/test_structurer.py,sha256=_SX5ps4l9kG0ovssuplgSL9c-0602g0r85RjVHzWp6k,7782
@@ -1406,8 +1415,9 @@ tests/storage/test_multivalues.py,sha256=x82duiIMsU9nE-6vhm-eEsofshKfbVy5d9CNgdC
1406
1415
  tests/storage/test_permissions.py,sha256=-Gsd1CUO7xZv7NTieiuikm33xfl33MyzIkembL3CuIw,883
1407
1416
  tests/storage/test_ptmalloc.py,sha256=WwORhRoN0SYC8R9aJ_RITbVKlB6JQnLyINTWbT4PidU,10592
1408
1417
  tests/storage/test_relro_perm.py,sha256=gqNbkYfAYr0wM-oSijS3HYi0-cbtplMDCSWQqRCqEb4,1406
1409
- angr-9.2.78.dist-info/LICENSE,sha256=cgL_ho5B1NH8UxwtBuqThRWdjear8b7hktycaS1sz6g,1327
1410
- angr-9.2.78.dist-info/METADATA,sha256=Iu2vpxa2607f2PY13YsRu46ImINPEmS9i15LH9wuTBo,4856
1411
- angr-9.2.78.dist-info/WHEEL,sha256=daufdGbLJ8QgaD3d1tPsLa1xxR8oqf4qd0_Ms_reCKM,98
1412
- angr-9.2.78.dist-info/top_level.txt,sha256=EGgw8HjaUI9JWd6w70Tzkn1AcyKTMJTVJ9OpWyaOewk,11
1413
- angr-9.2.78.dist-info/RECORD,,
1418
+ angr-9.2.80.dist-info/LICENSE,sha256=cgL_ho5B1NH8UxwtBuqThRWdjear8b7hktycaS1sz6g,1327
1419
+ angr-9.2.80.dist-info/METADATA,sha256=pjz4GHUET6bNa5338NcibLjyF6WbTCYzuU8adYiIKtE,4856
1420
+ angr-9.2.80.dist-info/WHEEL,sha256=6iYPr8vTHsyDK75jr9X0V3I9wPSVmtwr_8fdATBciGk,98
1421
+ angr-9.2.80.dist-info/entry_points.txt,sha256=Vjh1C8PMyr5dZFMnik5WkEP01Uwr2T73I3a6N32sgQU,44
1422
+ angr-9.2.80.dist-info/top_level.txt,sha256=EGgw8HjaUI9JWd6w70Tzkn1AcyKTMJTVJ9OpWyaOewk,11
1423
+ angr-9.2.80.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.41.3)
2
+ Generator: bdist_wheel (0.42.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-win_amd64
5
5
 
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ angr = angr.__main__:main
@@ -954,6 +954,30 @@ class TestCfgfast(unittest.TestCase):
954
954
  assert node is not None
955
955
  assert node.function_address == 0x40F770
956
956
 
957
+ def test_removing_lock_edges(self):
958
+ path = os.path.join(
959
+ test_location, "x86_64", "windows", "6f289eb8c8cd826525d79b195b1cf187df509d56120427b10ea3fb1b4db1b7b5.sys"
960
+ )
961
+ proj = angr.Project(path, auto_load_libs=False)
962
+ cfg = proj.analyses.CFGFast(normalize=True)
963
+ node = cfg.model.get_any_node(0x1400061C2)
964
+ assert {n.addr for n in cfg.model.graph.successors(node)} == {0x1400060DC, 0x1400061D4}
965
+
966
+ def test_security_init_cookie_identification(self):
967
+ path = os.path.join(test_location, "x86_64", "windows", "3ware.sys")
968
+ proj = angr.Project(path, auto_load_libs=False)
969
+ cfg = proj.analyses.CFGFast()
970
+ assert cfg.kb.functions[0x1C001A018].name == "_security_init_cookie"
971
+ assert cfg.kb.functions[0x1C0010100].name == "_security_check_cookie"
972
+
973
+ def test_security_init_cookie_identification_a(self):
974
+ path = os.path.join(
975
+ test_location, "x86_64", "windows", "1817a5bf9c01035bcf8a975c9f1d94b0ce7f6a200339485d8f93859f8f6d730c.exe"
976
+ )
977
+ proj = angr.Project(path, auto_load_libs=False)
978
+ cfg = proj.analyses.CFGFast()
979
+ assert cfg.kb.functions[0x21514B5600].name == "_security_init_cookie"
980
+
957
981
 
958
982
  class TestCfgfastDataReferences(unittest.TestCase):
959
983
  def test_data_references_x86_64(self):
@@ -3142,6 +3142,134 @@ class TestDecompiler(unittest.TestCase):
3142
3142
  assert 'L"\\\\Registry\\\\Machine\\\\SYSTEM\\\\CurrentControlSet\\\\Control\\\\WinApi"' in d.codegen.text
3143
3143
  assert 'L"WinDeviceAddress"' in d.codegen.text
3144
3144
 
3145
+ @structuring_algo("phoenix")
3146
+ def test_ifelseflatten_iplink_bridge(self, decompiler_options=None):
3147
+ bin_path = os.path.join(test_location, "x86_64", "decompiler", "iplink_bridge.o")
3148
+ proj = angr.Project(bin_path, auto_load_libs=False)
3149
+ cfg = proj.analyses.CFGFast(normalize=True, data_references=True)
3150
+
3151
+ f = proj.kb.functions["bridge_print_opt"]
3152
+ proj.analyses.CompleteCallingConventions(cfg=cfg, recover_variables=True, analyze_callsites=True)
3153
+ d = proj.analyses[Decompiler](f, cfg=cfg.model, options=decompiler_options)
3154
+
3155
+ self._print_decompilation_result(d)
3156
+ text = d.codegen.text
3157
+ good_if_return_pattern = r"if \(\!a2\)\s+return .*;"
3158
+ good_if_return = re.search(good_if_return_pattern, text)
3159
+ assert good_if_return is not None
3160
+
3161
+ first_if_location = text.find("if")
3162
+ assert first_if_location != -1
3163
+
3164
+ # TODO: this is broken right now on the 1 goto for a bad else. It may not be relevant for this testcase.
3165
+ # there should be no else and no gotos!
3166
+ # assert "goto" not in text
3167
+ # assert "else" not in text
3168
+
3169
+ # the first if in the program should have no else, and that first else should be a simple return
3170
+ assert first_if_location == good_if_return.start()
3171
+ assert not text[first_if_location + len(good_if_return.group(0)) :].startswith(" else")
3172
+
3173
+ @structuring_algo("phoenix")
3174
+ def test_ifelseflatten_gzip(self, decompiler_options=None):
3175
+ bin_path = os.path.join(test_location, "x86_64", "decompiler", "gzip.o")
3176
+ proj = angr.Project(bin_path, auto_load_libs=False)
3177
+ cfg = proj.analyses.CFGFast(normalize=True, data_references=True)
3178
+
3179
+ f = proj.kb.functions["treat_file"]
3180
+ proj.analyses.CompleteCallingConventions(cfg=cfg, recover_variables=True, analyze_callsites=True)
3181
+ d = proj.analyses[Decompiler](f, cfg=cfg.model, options=decompiler_options)
3182
+
3183
+ self._print_decompilation_result(d)
3184
+ text = d.codegen.text.replace("\n", " ")
3185
+ first_if_location = text.find("if (")
3186
+ # the very first if-stmt in this function should be a single scope with a return.
3187
+ # there should be no else scope as well.
3188
+ correct_ifs = list(re.finditer(r'if \(!strcmp\(a0, "-"\)\) {5}\{.*? return; {5}}', text))
3189
+ assert len(correct_ifs) >= 1
3190
+
3191
+ first_correct_if = correct_ifs[0]
3192
+ assert first_correct_if.start() == first_if_location
3193
+
3194
+ @structuring_algo("phoenix")
3195
+ def test_ifelseflatten_iprule(self, decompiler_options=None):
3196
+ bin_path = os.path.join(test_location, "x86_64", "decompiler", "iprule.o")
3197
+ proj = angr.Project(bin_path, auto_load_libs=False)
3198
+ cfg = proj.analyses.CFGFast(normalize=True, data_references=True)
3199
+
3200
+ f = proj.kb.functions["flush_rule"]
3201
+ proj.analyses.CompleteCallingConventions(cfg=cfg, recover_variables=True, analyze_callsites=True)
3202
+ d = proj.analyses[Decompiler](f, cfg=cfg.model, options=decompiler_options)
3203
+
3204
+ self._print_decompilation_result(d)
3205
+ # XXX: this a hack that should be fixed in some other place
3206
+ text = d.codegen.text.replace("4294967295", "-1")
3207
+
3208
+ # first if-stmt should be a single scope with a return.
3209
+ good_if_return = re.search("if \\(.*?\\)\n {8}return -1;", text)
3210
+ assert good_if_return is not None
3211
+
3212
+ first_if_location = text.find("if")
3213
+ assert first_if_location != -1
3214
+ assert first_if_location == good_if_return.start()
3215
+
3216
+ @structuring_algo("phoenix")
3217
+ def test_ifelseflatten_clientloop(self, decompiler_options=None):
3218
+ bin_path = os.path.join(test_location, "x86_64", "decompiler", "clientloop.o")
3219
+ proj = angr.Project(bin_path, auto_load_libs=False)
3220
+ cfg = proj.analyses.CFGFast(normalize=True, data_references=True)
3221
+
3222
+ f = proj.kb.functions["client_request_tun_fwd"]
3223
+ proj.analyses.CompleteCallingConventions(cfg=cfg, recover_variables=True, analyze_callsites=True)
3224
+ d = proj.analyses[Decompiler](f, cfg=cfg.model, options=decompiler_options)
3225
+
3226
+ self._print_decompilation_result(d)
3227
+ text = d.codegen.text
3228
+
3229
+ # find all ifs
3230
+ all_if_stmts = list(re.finditer("if \\(.*?\\)", text))
3231
+ assert all_if_stmts is not None
3232
+ assert len(all_if_stmts) >= 2
3233
+
3234
+ # first if-stmt should be a single scope with a return.
3235
+ first_good_if = re.search("if \\(.*?\\)\n {8}return 0;", text)
3236
+ assert first_good_if is not None
3237
+ assert first_good_if.start() == all_if_stmts[0].start()
3238
+
3239
+ # the if-stmt immediately after the first one should be a true check on -1
3240
+ second_good_if = re.search("if \\(.*? == -1\\)", text)
3241
+ assert second_good_if is not None
3242
+ assert second_good_if.start() == all_if_stmts[1].start()
3243
+
3244
+ @structuring_algo("phoenix")
3245
+ def test_ifelseflatten_certtool_common(self, decompiler_options=None):
3246
+ bin_path = os.path.join(test_location, "x86_64", "decompiler", "certtool-common.o")
3247
+ proj = angr.Project(bin_path, auto_load_libs=False)
3248
+ cfg = proj.analyses.CFGFast(normalize=True, data_references=True)
3249
+
3250
+ f = proj.kb.functions["cipher_to_flags"]
3251
+ proj.analyses.CompleteCallingConventions(cfg=cfg, recover_variables=True, analyze_callsites=True)
3252
+ d = proj.analyses[Decompiler](f, cfg=cfg.model, options=decompiler_options)
3253
+
3254
+ self._print_decompilation_result(d)
3255
+ text = d.codegen.text
3256
+
3257
+ # If any incorrect if-else flipping occurs, then there will be an if-stmt inside an if-stmt.
3258
+ # In the correct output, there should only ever be 2 scopes (the function, and a single if-scope) of
3259
+ # deepness in the full function. To verify this, we check that no scope of 3 deepness exists.
3260
+
3261
+ scope_prefix = " "
3262
+ bad_scope_prefix = scope_prefix * 3
3263
+
3264
+ assert scope_prefix in text
3265
+ assert bad_scope_prefix not in text
3266
+
3267
+ # TODO: fix me, this is a real bug
3268
+ # To double-check the structure, we will also verify that all if-conditions are of form `if(!<condition>)`,
3269
+ # since that is the correct form for this program.
3270
+ # bad_matches = re.findall(r'\bif\s*\(\s*[^!].*\)', text)
3271
+ # assert len(bad_matches) == 0
3272
+
3145
3273
 
3146
3274
  if __name__ == "__main__":
3147
3275
  unittest.main()
@@ -6,6 +6,7 @@ import os
6
6
  import unittest
7
7
 
8
8
  import angr
9
+ from angr.analyses.propagator.vex_vars import VEXReg
9
10
 
10
11
  from ..common import bin_location
11
12
 
@@ -48,6 +49,39 @@ class TestConstantpropagation(unittest.TestCase):
48
49
 
49
50
  assert len(prop.replacements) > 0
50
51
 
52
+ def test_register_propagation_across_calls(self):
53
+ call_targets = [
54
+ "_0", # Resolved
55
+ "rdi", # TOP
56
+ "qword ptr [0xBAD]", # Unresolved
57
+ ]
58
+
59
+ for target in call_targets:
60
+ p = angr.load_shellcode(
61
+ f"""
62
+ _0:
63
+ mov rcx, 0x12345678
64
+ mov rbp, 0xFEDCBA90
65
+ _11:
66
+ call {target}
67
+ mov rax, rcx
68
+ mov rdi, rbp
69
+ ret
70
+ """,
71
+ "AMD64",
72
+ )
73
+ cfg = p.analyses.CFG()
74
+ prop = p.analyses.Propagator(func=cfg.functions[0], only_consts=True)
75
+ regs_replaced = {
76
+ p.arch.register_names[var.offset]: val
77
+ for codeloc, replacements in prop.replacements.items()
78
+ if codeloc.block_addr >= 0x11
79
+ for var, val in replacements.items()
80
+ if isinstance(var, VEXReg)
81
+ }
82
+ assert "rax" not in regs_replaced # caller saved
83
+ assert regs_replaced["rdi"].concrete_value == 0xFEDCBA90 # callee saved
84
+
51
85
 
52
86
  if __name__ == "__main__":
53
87
  unittest.main()
File without changes