-
-
未解决 [求助]汇编代码解释一下
-
发表于: 2020-11-9 14:25 2500
-
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, var18]
bl impstubsobjc_retain ; objcretain
bl impstubsobjcretainAutorelease ;
mov x20, x0
adrp x8, #0x1091ee000
ldr x1, [x8, #0x7c0] ; "UTF8String",@selector(UTF8String)
bl impstubsobjc_msgSend ; objcmsgSend
mov x19, x0
mov x0, x20
bl impstubsobjc_release ; objcrelease
mov x0, x19
bl impstubsstrlen ; 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 loc106521c44
mov sp, x20 ; argument "instance" for method
sub sp, x29, #0x10
ldp x29, x30, [sp, #0x10]
ldp x20, x19, [sp], #0x20
b impstubs__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_stubsobjc_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直播授课
赞赏
- [求助]ios 13系统 monkeydev程序运行 不会断点start 18049
- ios 脱壳 环境搭建 3777
- [求助]arm64转c语言过程 遇到的难题 3467
- [求助]汇编代码解释一下 2501
- [求助]求一份arm64的汇编教程 2537