首页
社区
课程
招聘
未解决 [求助]汇编代码解释一下
2020-11-9 14:25 2392

未解决 [求助]汇编代码解释一下

2020-11-9 14:25
2392

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 imp
stubsobjc_retain ; objcretain
bl imp
stubsobjcretainAutorelease ;
mov x20, x0
adrp x8, #0x1091ee000
ldr x1, [x8, #0x7c0] ; "UTF8String",@selector(UTF8String)
bl imp
stubsobjc_msgSend ; objcmsgSend
mov x19, x0
mov x0, x20
bl imp
stubsobjc_release ; objcrelease
mov x0, x19
bl imp
stubsstrlen ; 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 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_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是不是固定的。


[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回