11#!/usr/bin/env python3
2- #
2+ #
33# Cross Platform and Multi Architecture Advanced Binary Emulation Framework
44#
55
66from unicorn .arm64_const import *
77
88reg_map = {
9- "x0" : UC_ARM64_REG_X0 ,
10- "x1" : UC_ARM64_REG_X1 ,
11- "x2" : UC_ARM64_REG_X2 ,
12- "x3" : UC_ARM64_REG_X3 ,
13- "x4" : UC_ARM64_REG_X4 ,
14- "x5" : UC_ARM64_REG_X5 ,
15- "x6" : UC_ARM64_REG_X6 ,
16- "x7" : UC_ARM64_REG_X7 ,
17- "x8" : UC_ARM64_REG_X8 ,
18- "x9" : UC_ARM64_REG_X9 ,
19- "x10" : UC_ARM64_REG_X10 ,
20- "x11" : UC_ARM64_REG_X11 ,
21- "x12" : UC_ARM64_REG_X12 ,
22- "x13" : UC_ARM64_REG_X13 ,
23- "x14" : UC_ARM64_REG_X14 ,
24- "x15" : UC_ARM64_REG_X15 ,
25- "x16" : UC_ARM64_REG_X16 ,
26- "x17" : UC_ARM64_REG_X17 ,
27- "x18" : UC_ARM64_REG_X18 ,
28- "x19" : UC_ARM64_REG_X19 ,
29- "x20" : UC_ARM64_REG_X20 ,
30- "x21" : UC_ARM64_REG_X21 ,
31- "x22" : UC_ARM64_REG_X22 ,
32- "x23" : UC_ARM64_REG_X23 ,
33- "x24" : UC_ARM64_REG_X24 ,
34- "x25" : UC_ARM64_REG_X25 ,
35- "x26" : UC_ARM64_REG_X26 ,
36- "x27" : UC_ARM64_REG_X27 ,
37- "x28" : UC_ARM64_REG_X28 ,
38- "x29" : UC_ARM64_REG_X29 ,
39- "x30" : UC_ARM64_REG_X30 ,
40- "sp" : UC_ARM64_REG_SP ,
41- "pc" : UC_ARM64_REG_PC ,
42- "lr" : UC_ARM64_REG_LR ,
43- "cpacr_el1" : UC_ARM64_REG_CPACR_EL1 ,
44- "tpidr_el0" : UC_ARM64_REG_TPIDR_EL0 ,
9+ "x0" : UC_ARM64_REG_X0 ,
10+ "x1" : UC_ARM64_REG_X1 ,
11+ "x2" : UC_ARM64_REG_X2 ,
12+ "x3" : UC_ARM64_REG_X3 ,
13+ "x4" : UC_ARM64_REG_X4 ,
14+ "x5" : UC_ARM64_REG_X5 ,
15+ "x6" : UC_ARM64_REG_X6 ,
16+ "x7" : UC_ARM64_REG_X7 ,
17+ "x8" : UC_ARM64_REG_X8 ,
18+ "x9" : UC_ARM64_REG_X9 ,
19+ "x10" : UC_ARM64_REG_X10 ,
20+ "x11" : UC_ARM64_REG_X11 ,
21+ "x12" : UC_ARM64_REG_X12 ,
22+ "x13" : UC_ARM64_REG_X13 ,
23+ "x14" : UC_ARM64_REG_X14 ,
24+ "x15" : UC_ARM64_REG_X15 ,
25+ "x16" : UC_ARM64_REG_X16 ,
26+ "x17" : UC_ARM64_REG_X17 ,
27+ "x18" : UC_ARM64_REG_X18 ,
28+ "x19" : UC_ARM64_REG_X19 ,
29+ "x20" : UC_ARM64_REG_X20 ,
30+ "x21" : UC_ARM64_REG_X21 ,
31+ "x22" : UC_ARM64_REG_X22 ,
32+ "x23" : UC_ARM64_REG_X23 ,
33+ "x24" : UC_ARM64_REG_X24 ,
34+ "x25" : UC_ARM64_REG_X25 ,
35+ "x26" : UC_ARM64_REG_X26 ,
36+ "x27" : UC_ARM64_REG_X27 ,
37+ "x28" : UC_ARM64_REG_X28 ,
38+ "x29" : UC_ARM64_REG_X29 ,
39+ "x30" : UC_ARM64_REG_X30 ,
40+ "sp" : UC_ARM64_REG_SP ,
41+ "pc" : UC_ARM64_REG_PC ,
42+ "lr" : UC_ARM64_REG_LR ,
43+ "cpacr_el1" : UC_ARM64_REG_CPACR_EL1 ,
44+ "tpidr_el0" : UC_ARM64_REG_TPIDR_EL0
45+ }
46+
47+ reg_map_b = {
48+ "b0" : UC_ARM64_REG_B0 ,
49+ "b1" : UC_ARM64_REG_B1 ,
50+ "b2" : UC_ARM64_REG_B2 ,
51+ "b3" : UC_ARM64_REG_B3 ,
52+ "b4" : UC_ARM64_REG_B4 ,
53+ "b5" : UC_ARM64_REG_B5 ,
54+ "b6" : UC_ARM64_REG_B6 ,
55+ "b7" : UC_ARM64_REG_B7 ,
56+ "b8" : UC_ARM64_REG_B8 ,
57+ "b9" : UC_ARM64_REG_B9 ,
58+ "b10" : UC_ARM64_REG_B10 ,
59+ "b11" : UC_ARM64_REG_B11 ,
60+ "b12" : UC_ARM64_REG_B12 ,
61+ "b13" : UC_ARM64_REG_B13 ,
62+ "b14" : UC_ARM64_REG_B14 ,
63+ "b15" : UC_ARM64_REG_B15 ,
64+ "b16" : UC_ARM64_REG_B16 ,
65+ "b17" : UC_ARM64_REG_B17 ,
66+ "b18" : UC_ARM64_REG_B18 ,
67+ "b19" : UC_ARM64_REG_B19 ,
68+ "b20" : UC_ARM64_REG_B20 ,
69+ "b21" : UC_ARM64_REG_B21 ,
70+ "b22" : UC_ARM64_REG_B22 ,
71+ "b23" : UC_ARM64_REG_B23 ,
72+ "b24" : UC_ARM64_REG_B24 ,
73+ "b25" : UC_ARM64_REG_B25 ,
74+ "b26" : UC_ARM64_REG_B26 ,
75+ "b27" : UC_ARM64_REG_B27 ,
76+ "b28" : UC_ARM64_REG_B28 ,
77+ "b29" : UC_ARM64_REG_B29 ,
78+ "b30" : UC_ARM64_REG_B30 ,
79+ "b31" : UC_ARM64_REG_B31
80+ }
81+
82+ reg_map_d = {
83+ "d0" : UC_ARM64_REG_D0 ,
84+ "d1" : UC_ARM64_REG_D1 ,
85+ "d2" : UC_ARM64_REG_D2 ,
86+ "d3" : UC_ARM64_REG_D3 ,
87+ "d4" : UC_ARM64_REG_D4 ,
88+ "d5" : UC_ARM64_REG_D5 ,
89+ "d6" : UC_ARM64_REG_D6 ,
90+ "d7" : UC_ARM64_REG_D7 ,
91+ "d8" : UC_ARM64_REG_D8 ,
92+ "d9" : UC_ARM64_REG_D9 ,
93+ "d10" : UC_ARM64_REG_D10 ,
94+ "d11" : UC_ARM64_REG_D11 ,
95+ "d12" : UC_ARM64_REG_D12 ,
96+ "d13" : UC_ARM64_REG_D13 ,
97+ "d14" : UC_ARM64_REG_D14 ,
98+ "d15" : UC_ARM64_REG_D15 ,
99+ "d16" : UC_ARM64_REG_D16 ,
100+ "d17" : UC_ARM64_REG_D17 ,
101+ "d18" : UC_ARM64_REG_D18 ,
102+ "d19" : UC_ARM64_REG_D19 ,
103+ "d20" : UC_ARM64_REG_D20 ,
104+ "d21" : UC_ARM64_REG_D21 ,
105+ "d22" : UC_ARM64_REG_D22 ,
106+ "d23" : UC_ARM64_REG_D23 ,
107+ "d24" : UC_ARM64_REG_D24 ,
108+ "d25" : UC_ARM64_REG_D25 ,
109+ "d26" : UC_ARM64_REG_D26 ,
110+ "d27" : UC_ARM64_REG_D27 ,
111+ "d28" : UC_ARM64_REG_D28 ,
112+ "d29" : UC_ARM64_REG_D29 ,
113+ "d30" : UC_ARM64_REG_D30 ,
114+ "d31" : UC_ARM64_REG_D31
115+ }
116+
117+ reg_map_h = {
118+ "h0" : UC_ARM64_REG_H0 ,
119+ "h1" : UC_ARM64_REG_H1 ,
120+ "h2" : UC_ARM64_REG_H2 ,
121+ "h3" : UC_ARM64_REG_H3 ,
122+ "h4" : UC_ARM64_REG_H4 ,
123+ "h5" : UC_ARM64_REG_H5 ,
124+ "h6" : UC_ARM64_REG_H6 ,
125+ "h7" : UC_ARM64_REG_H7 ,
126+ "h8" : UC_ARM64_REG_H8 ,
127+ "h9" : UC_ARM64_REG_H9 ,
128+ "h10" : UC_ARM64_REG_H10 ,
129+ "h11" : UC_ARM64_REG_H11 ,
130+ "h12" : UC_ARM64_REG_H12 ,
131+ "h13" : UC_ARM64_REG_H13 ,
132+ "h14" : UC_ARM64_REG_H14 ,
133+ "h15" : UC_ARM64_REG_H15 ,
134+ "h16" : UC_ARM64_REG_H16 ,
135+ "h17" : UC_ARM64_REG_H17 ,
136+ "h18" : UC_ARM64_REG_H18 ,
137+ "h19" : UC_ARM64_REG_H19 ,
138+ "h20" : UC_ARM64_REG_H20 ,
139+ "h21" : UC_ARM64_REG_H21 ,
140+ "h22" : UC_ARM64_REG_H22 ,
141+ "h23" : UC_ARM64_REG_H23 ,
142+ "h24" : UC_ARM64_REG_H24 ,
143+ "h25" : UC_ARM64_REG_H25 ,
144+ "h26" : UC_ARM64_REG_H26 ,
145+ "h27" : UC_ARM64_REG_H27 ,
146+ "h28" : UC_ARM64_REG_H28 ,
147+ "h29" : UC_ARM64_REG_H29 ,
148+ "h30" : UC_ARM64_REG_H30 ,
149+ "h31" : UC_ARM64_REG_H31
150+ }
151+
152+ reg_map_q = {
153+ "q0" : UC_ARM64_REG_Q0 ,
154+ "q1" : UC_ARM64_REG_Q1 ,
155+ "q2" : UC_ARM64_REG_Q2 ,
156+ "q3" : UC_ARM64_REG_Q3 ,
157+ "q4" : UC_ARM64_REG_Q4 ,
158+ "q5" : UC_ARM64_REG_Q5 ,
159+ "q6" : UC_ARM64_REG_Q6 ,
160+ "q7" : UC_ARM64_REG_Q7 ,
161+ "q8" : UC_ARM64_REG_Q8 ,
162+ "q9" : UC_ARM64_REG_Q9 ,
163+ "q10" : UC_ARM64_REG_Q10 ,
164+ "q11" : UC_ARM64_REG_Q11 ,
165+ "q12" : UC_ARM64_REG_Q12 ,
166+ "q13" : UC_ARM64_REG_Q13 ,
167+ "q14" : UC_ARM64_REG_Q14 ,
168+ "q15" : UC_ARM64_REG_Q15 ,
169+ "q16" : UC_ARM64_REG_Q16 ,
170+ "q17" : UC_ARM64_REG_Q17 ,
171+ "q18" : UC_ARM64_REG_Q18 ,
172+ "q19" : UC_ARM64_REG_Q19 ,
173+ "q20" : UC_ARM64_REG_Q20 ,
174+ "q21" : UC_ARM64_REG_Q21 ,
175+ "q22" : UC_ARM64_REG_Q22 ,
176+ "q23" : UC_ARM64_REG_Q23 ,
177+ "q24" : UC_ARM64_REG_Q24 ,
178+ "q25" : UC_ARM64_REG_Q25 ,
179+ "q26" : UC_ARM64_REG_Q26 ,
180+ "q27" : UC_ARM64_REG_Q27 ,
181+ "q28" : UC_ARM64_REG_Q28 ,
182+ "q29" : UC_ARM64_REG_Q29 ,
183+ "q30" : UC_ARM64_REG_Q30 ,
184+ "q31" : UC_ARM64_REG_Q31
185+ }
186+
187+ reg_map_s = {
188+ "s0" : UC_ARM64_REG_S0 ,
189+ "s1" : UC_ARM64_REG_S1 ,
190+ "s2" : UC_ARM64_REG_S2 ,
191+ "s3" : UC_ARM64_REG_S3 ,
192+ "s4" : UC_ARM64_REG_S4 ,
193+ "s5" : UC_ARM64_REG_S5 ,
194+ "s6" : UC_ARM64_REG_S6 ,
195+ "s7" : UC_ARM64_REG_S7 ,
196+ "s8" : UC_ARM64_REG_S8 ,
197+ "s9" : UC_ARM64_REG_S9 ,
198+ "s10" : UC_ARM64_REG_S10 ,
199+ "s11" : UC_ARM64_REG_S11 ,
200+ "s12" : UC_ARM64_REG_S12 ,
201+ "s13" : UC_ARM64_REG_S13 ,
202+ "s14" : UC_ARM64_REG_S14 ,
203+ "s15" : UC_ARM64_REG_S15 ,
204+ "s16" : UC_ARM64_REG_S16 ,
205+ "s17" : UC_ARM64_REG_S17 ,
206+ "s18" : UC_ARM64_REG_S18 ,
207+ "s19" : UC_ARM64_REG_S19 ,
208+ "s20" : UC_ARM64_REG_S20 ,
209+ "s21" : UC_ARM64_REG_S21 ,
210+ "s22" : UC_ARM64_REG_S22 ,
211+ "s23" : UC_ARM64_REG_S23 ,
212+ "s24" : UC_ARM64_REG_S24 ,
213+ "s25" : UC_ARM64_REG_S25 ,
214+ "s26" : UC_ARM64_REG_S26 ,
215+ "s27" : UC_ARM64_REG_S27 ,
216+ "s28" : UC_ARM64_REG_S28 ,
217+ "s29" : UC_ARM64_REG_S29 ,
218+ "s30" : UC_ARM64_REG_S30 ,
219+ "s31" : UC_ARM64_REG_S31
45220}
46221
47222reg_map_w = {
48- "w0" : UC_ARM64_REG_W0 ,
49- "w1" : UC_ARM64_REG_W1 ,
50- "w2" : UC_ARM64_REG_W2 ,
51- "w3" : UC_ARM64_REG_W3 ,
52- "w4" : UC_ARM64_REG_W4 ,
53- "w5" : UC_ARM64_REG_W5 ,
54- "w6" : UC_ARM64_REG_W6 ,
55- "w7" : UC_ARM64_REG_W7 ,
56- "w8" : UC_ARM64_REG_W8 ,
57- "w9" : UC_ARM64_REG_W9 ,
58- "w10" : UC_ARM64_REG_W10 ,
59- "w11" : UC_ARM64_REG_W11 ,
60- "w12" : UC_ARM64_REG_W12 ,
61- "w13" : UC_ARM64_REG_W13 ,
62- "w14" : UC_ARM64_REG_W14 ,
63- "w15" : UC_ARM64_REG_W15 ,
64- "w16" : UC_ARM64_REG_W16 ,
65- "w17" : UC_ARM64_REG_W17 ,
66- "w18" : UC_ARM64_REG_W18 ,
67- "w19" : UC_ARM64_REG_W19 ,
68- "w20" : UC_ARM64_REG_W20 ,
69- "w21" : UC_ARM64_REG_W21 ,
70- "w22" : UC_ARM64_REG_W22 ,
71- "w23" : UC_ARM64_REG_W23 ,
72- "w24" : UC_ARM64_REG_W24 ,
73- "w25" : UC_ARM64_REG_W25 ,
74- "w26" : UC_ARM64_REG_W26 ,
75- "w27" : UC_ARM64_REG_W27 ,
76- "w28" : UC_ARM64_REG_W28 ,
77- "w29" : UC_ARM64_REG_W29 ,
78- "w30" : UC_ARM64_REG_W30 ,
79- }
223+ "w0" : UC_ARM64_REG_W0 ,
224+ "w1" : UC_ARM64_REG_W1 ,
225+ "w2" : UC_ARM64_REG_W2 ,
226+ "w3" : UC_ARM64_REG_W3 ,
227+ "w4" : UC_ARM64_REG_W4 ,
228+ "w5" : UC_ARM64_REG_W5 ,
229+ "w6" : UC_ARM64_REG_W6 ,
230+ "w7" : UC_ARM64_REG_W7 ,
231+ "w8" : UC_ARM64_REG_W8 ,
232+ "w9" : UC_ARM64_REG_W9 ,
233+ "w10" : UC_ARM64_REG_W10 ,
234+ "w11" : UC_ARM64_REG_W11 ,
235+ "w12" : UC_ARM64_REG_W12 ,
236+ "w13" : UC_ARM64_REG_W13 ,
237+ "w14" : UC_ARM64_REG_W14 ,
238+ "w15" : UC_ARM64_REG_W15 ,
239+ "w16" : UC_ARM64_REG_W16 ,
240+ "w17" : UC_ARM64_REG_W17 ,
241+ "w18" : UC_ARM64_REG_W18 ,
242+ "w19" : UC_ARM64_REG_W19 ,
243+ "w20" : UC_ARM64_REG_W20 ,
244+ "w21" : UC_ARM64_REG_W21 ,
245+ "w22" : UC_ARM64_REG_W22 ,
246+ "w23" : UC_ARM64_REG_W23 ,
247+ "w24" : UC_ARM64_REG_W24 ,
248+ "w25" : UC_ARM64_REG_W25 ,
249+ "w26" : UC_ARM64_REG_W26 ,
250+ "w27" : UC_ARM64_REG_W27 ,
251+ "w28" : UC_ARM64_REG_W28 ,
252+ "w29" : UC_ARM64_REG_W29 ,
253+ "w30" : UC_ARM64_REG_W30
254+ }
255+
256+ reg_map_v = {
257+ "v0" : UC_ARM64_REG_V0 ,
258+ "v1" : UC_ARM64_REG_V1 ,
259+ "v2" : UC_ARM64_REG_V2 ,
260+ "v3" : UC_ARM64_REG_V3 ,
261+ "v4" : UC_ARM64_REG_V4 ,
262+ "v5" : UC_ARM64_REG_V5 ,
263+ "v6" : UC_ARM64_REG_V6 ,
264+ "v7" : UC_ARM64_REG_V7 ,
265+ "v8" : UC_ARM64_REG_V8 ,
266+ "v9" : UC_ARM64_REG_V9 ,
267+ "v10" : UC_ARM64_REG_V10 ,
268+ "v11" : UC_ARM64_REG_V11 ,
269+ "v12" : UC_ARM64_REG_V12 ,
270+ "v13" : UC_ARM64_REG_V13 ,
271+ "v14" : UC_ARM64_REG_V14 ,
272+ "v15" : UC_ARM64_REG_V15 ,
273+ "v16" : UC_ARM64_REG_V16 ,
274+ "v17" : UC_ARM64_REG_V17 ,
275+ "v18" : UC_ARM64_REG_V18 ,
276+ "v19" : UC_ARM64_REG_V19 ,
277+ "v20" : UC_ARM64_REG_V20 ,
278+ "v21" : UC_ARM64_REG_V21 ,
279+ "v22" : UC_ARM64_REG_V22 ,
280+ "v23" : UC_ARM64_REG_V23 ,
281+ "v24" : UC_ARM64_REG_V24 ,
282+ "v25" : UC_ARM64_REG_V25 ,
283+ "v26" : UC_ARM64_REG_V26 ,
284+ "v27" : UC_ARM64_REG_V27 ,
285+ "v28" : UC_ARM64_REG_V28 ,
286+ "v29" : UC_ARM64_REG_V29 ,
287+ "v30" : UC_ARM64_REG_V30 ,
288+ "v31" : UC_ARM64_REG_V31
289+ }
0 commit comments