首页
社区
课程
招聘
未解决 [求助]arm64转c语言过程 遇到的难题
2020-11-9 14:28 3323

未解决 [求助]arm64转c语言过程 遇到的难题

2020-11-9 14:28
3323
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
stp        x20, x19, [sp, #-0x20]!
stp        x29, x30, [sp, #0x10]
add        x29, sp, #0x10
sub        sp, sp, #0x10
mov        x0, x2
adrp       x8, #0x1077ba000 ; 0x1077ba588@PAGE
ldr        x8, [x8, #0x588] ; 0x1077ba588@PAGEOFF,
ldr        x8, [x8]     ; ___stack_chk_guard
stur       x8, [x29, var_18]
bl         imp___stubs__objc_retain ; objc_retain
bl         imp___stubs__objc_retainAutorelease ;
mov        x20, x0
adrp       x8, #0x1091ee000
ldr        x1, [x8, #0x7c0] ; "UTF8String",@selector(UTF8String)
bl         imp___stubs__objc_msgSend ; objc_msgSend
mov        x19, x0
mov        x0, x20
bl         imp___stubs__objc_release ; objc_release
mov        x0, x19
bl         imp___stubs__strlen ; strlen
mov        x20, sp
add        w8, w0, #0x1
add        x8, x8, #0xf ; 0x1091ee00f
and        x8, x8, #0x1fffffff0
mov        x9, sp
sub        x1, x9, x8
mov        sp, x1
cmp        w0, #0x1
b.lt       loc_106521c44
mov        sp, x20      ; argument "instance" for method
sub        sp, x29, #0x10
ldp        x29, x30, [sp, #0x10]
ldp        x20, x19, [sp], #0x20
b          imp___stubs__objc_autoreleaseReturnValue ;
 
 
/**************************************/
mov        x20, sp
add        w8, w0, #0x1
add        x8, x8, #0xf ; 0x1091ee00f
and        x8, x8, #0x1fffffff0
mov        x9, sp
sub        x1, x9, x8
mov        sp, x1
cmp        w0, #0x1
b.lt       loc_106521c44
mov        sp, x20      ; argument "instance" for method
sub        sp, x29, #0x10
ldp        x29, x30, [sp, #0x10]
ldp        x20, x19, [sp], #0x20
b          imp___stubs__objc_autoreleaseReturnValue ;
/**************************************/
不能理解的 只是这一段 
x20 = sp
w8 = w0 +1
x8 = x8 +15
x8 = x8 & #0x1fffffff0
x9 = sp
x1 = x9 -x8
sp = x1
 
 
 
x1 = sp - (w0 +16)&  #0x1fffffff0
if(w0 < 1)
{
    loc_106521c44
}
sp = x20
 
 
上面是我的翻译过程 但是 如果 翻译成c语言。首先这个sp 用c语言怎么取。还是我翻译错了。这个sp是不是固定的。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
打赏
分享
最新回复 (2)
雪    币: 9995
活跃值: (6982)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
bluefish蓝鱼 2020-11-9 17:52
2
0
你这样硬翻还不如用嵌入汇编呢
雪    币: 4
活跃值: (531)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wx_花、逐月 2020-11-9 18:37
3
0
bluefish蓝鱼 你这样硬翻还不如用嵌入汇编呢
没有办法  因为 我是要arm64 转到windows系统 所以没有嵌入
游客
登录 | 注册 方可回帖
返回