首页
社区
课程
招聘
[求助]汇编菜鸟,求大神赐教,这段代码!
发表于: 2015-12-2 18:33 4184

[求助]汇编菜鸟,求大神赐教,这段代码!

2015-12-2 18:33
4184
var_10= -0x10
var_C= -0xC

PUSH    {LR}
SUB     SP, SP, #0xC
STR     R0, [SP,#0x10+var_C]
STR     R1, [SP,#0x10+var_10]
LDR     R3, [SP,#0x10+var_C]
LDR     R2, [R3]
MOVS    R3, #0x2C0
LDR     R3, [R2,R3]
LDR     R1, [SP,#0x10+var_C]
LDR     R2, [SP,#0x10+var_10]
MOVS    R0, R1
MOVS    R1, R2
BLX     R3
MOVS    R3, R0
MOVS    R0, R3
ADD     SP, SP, #0xC
POP     {PC}
; End of function _JNIEnv::NewByteArray(int)
初学汇编,请大神帮忙分析,这段代码执行后,得到的字节数组值是多少?先谢过啊!

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 44
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
好,帮你翻译了一下,自己看吧,那个good是真正有用的部分
var_10= -0x10
var_C= -0xC

PUSH    {LR}                                       
SUB     SP, SP, #0xC             sp=sp-0xc
STR     R0, [SP,#0x10+var_C]     sp+0x4=r0
STR     R1, [SP,#0x10+var_10]    sp=r1
LDR     R3, [SP,#0x10+var_C]     r3=sp+0x4
LDR     R2, [R3]                r2=*(r3)=*(sp+0x4)=*(r0)
MOVS    R3, #0x2C0              r3=0x2c0
LDR     R3, [R2,R3]             r3=*(r2+r3)=*(*(r0)+0x2c0)
LDR     R1, [SP,#0x10+var_C]    r1=*(sp+0x4)=*(r0)
LDR     R2, [SP,#0x10+var_10]   r2=*(sp)=*(之前的r1)               
MOVS    R0, R1                  r0=r1=*(r0)                           
MOVS    R1, R2                  r1=r2=*(sp)=*(之前的r1)                  
BLX     R3                      跳到函数addr==*(r2+r3)=*(*(r0)+0x2c0)    good,,跳到此函数,函数地址是*(*(r0)+0x2c0),函数参数是参数一*(r0),参数二*(之前的r1)
MOVS    R3, R0                  r3=函数返回值
MOVS    R0, R3                  r0=r3=函数返回值                         good
ADD     SP, SP, #0xC            
POP     {PC}
2015-12-2 20:13
0
雪    币: 102
活跃值: (2150)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
mark
2015-12-2 21:13
0
雪    币: 8
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
这不都写的很清楚了么,这段代码其实就是NewByteArray(env, arg1),0x2C0对应NewByteArray这个函数
2015-12-2 21:48
0
游客
登录 | 注册 方可回帖
返回
//