1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
#-*- coding:utf-8 -*-
from miasm.ir.analysis import LifterModelCall
from miasm.arch.aarch64.sem import Lifter_Aarch64l, Lifter_Aarch64b
class LifterModelCallAarch64lBase(Lifter_Aarch64l, LifterModelCall):
def __init__(self, loc_db):
Lifter_Aarch64l.__init__(self, loc_db)
self.ret_reg = self.arch.regs.X0
class LifterModelCallAarch64bBase(Lifter_Aarch64b, LifterModelCall):
def __init__(self, loc_db):
Lifter_Aarch64b.__init__(self, loc_db)
self.ret_reg = self.arch.regs.X0
class LifterModelCallAarch64l(LifterModelCallAarch64lBase):
def __init__(self, loc_db):
LifterModelCallAarch64lBase.__init__(self, loc_db)
self.ret_reg = self.arch.regs.X0
def get_out_regs(self, _):
return set([self.ret_reg, self.sp])
def sizeof_char(self):
return 8
def sizeof_short(self):
return 16
def sizeof_int(self):
return 32
def sizeof_long(self):
return 32
def sizeof_pointer(self):
return 32
class LifterModelCallAarch64b(LifterModelCallAarch64bBase, LifterModelCallAarch64l):
def __init__(self, loc_db):
LifterModelCallAarch64bBase.__init__(self, loc_db)
self.ret_reg = self.arch.regs.X0
|