Skip to content

Commit 7c1580e

Browse files
authored
Merge pull request #1148 from elicn/gdb-improv
New and improved gdbserver
2 parents 561f3a8 + fc8c22a commit 7c1580e

37 files changed

+1834
-1335
lines changed

qiling/arch/arm64.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,13 @@ def uc(self) -> Uc:
2626
def regs(self) -> QlRegisterManager:
2727
regs_map = dict(
2828
**arm64_const.reg_map,
29-
**arm64_const.reg_map_w
29+
**arm64_const.reg_map_b,
30+
**arm64_const.reg_map_d,
31+
**arm64_const.reg_map_h,
32+
**arm64_const.reg_map_q,
33+
**arm64_const.reg_map_s,
34+
**arm64_const.reg_map_w,
35+
**arm64_const.reg_map_v
3036
)
3137

3238
pc_reg = 'pc'

qiling/arch/arm64_const.py

Lines changed: 279 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -1,79 +1,289 @@
11
#!/usr/bin/env python3
2-
#
2+
#
33
# Cross Platform and Multi Architecture Advanced Binary Emulation Framework
44
#
55

66
from unicorn.arm64_const import *
77

88
reg_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

47222
reg_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

Comments
 (0)