首页
社区
课程
招聘
[求助]大神帮忙还原Android的ARM汇编
2012-12-19 09:21 8001

[求助]大神帮忙还原Android的ARM汇编

2012-12-19 09:21
8001
本人不懂ARM汇编,现有一段汇编还请论坛大神出手帮忙给翻译翻译,不胜感激!

.text:00031F38 ; stringTojstring(_JNIEnv *, char  const*)
.text:00031F38                 EXPORT _Z15stringTojstringP7_JNIEnvPKc
.text:00031F38 _Z15stringTojstringP7_JNIEnvPKc         
.text:00031F38                                         
.text:00031F38
.text:00031F38 var_20          = -0x20
.text:00031F38
.text:00031F38                 PUSH    {R4-R7,LR}
.text:00031F3A                 MOV     R7, R8
.text:00031F3C                 PUSH    {R7}
.text:00031F3E                 LDR     R5, =(dword_69830 - 0x31F4C)
.text:00031F40                 LDR     R7, [R0]
.text:00031F42                 LDR     R2, =(aInit - 0x31F54)
.text:00031F44                 LDR     R3, =(aBljavaLangStri - 0x31F58)
.text:00031F46                 MOVS    R4, R0
.text:00031F48                 ADD     R5, PC ; dword_69830
.text:00031F4A                 MOVS    R0, #0x84
.text:00031F4C                 SUB     SP, SP, #8
.text:00031F4E                 MOVS    R6, R1
.text:00031F50                 ADD     R2, PC          ; "<init>"
.text:00031F52                 LDR     R1, [R5,#(dword_6984C - 0x69830)]
.text:00031F54                 ADD     R3, PC          ; "([BLjava/lang/String;)V"
.text:00031F56                 LDR     R7, [R7,R0]
.text:00031F58                 MOVS    R0, R4
.text:00031F5A                 BLX     R7
.text:00031F5C                 MOV     R8, R0
.text:00031F5E                 MOVS    R0, R6          ; s
.text:00031F60                 BLX     strlen
.text:00031F64                 LDR     R2, [R4]
.text:00031F66                 MOVS    R3, 0x2C0
.text:00031F6A                 MOVS    R1, R0
.text:00031F6C                 LDR     R3, [R2,R3]
.text:00031F6E                 MOVS    R0, R4
.text:00031F70                 BLX     R3
.text:00031F72                 MOVS    R7, R0
.text:00031F74                 MOVS    R0, R6          ; s
.text:00031F76                 BLX     strlen
.text:00031F7A                 LDR     R1, [R4]
.text:00031F7C                 MOVS    R2, #0xD0
.text:00031F7E                 STR     R6, [SP,#0x20+var_20]
.text:00031F80                 LSLS    R2, R2, #2
.text:00031F82                 LDR     R6, [R1,R2]
.text:00031F84                 MOVS    R3, R0
.text:00031F86                 MOVS    R1, R7
.text:00031F88                 MOVS    R0, R4
.text:00031F8A                 MOVS    R2, #0
.text:00031F8C                 BLX     R6
.text:00031F8E                 LDR     R2, [R4]
.text:00031F90                 LDR     R1, =(aUtf8 - 0x31F9C)
.text:00031F92                 MOVS    R3, 0x29C
.text:00031F96                 LDR     R3, [R2,R3]
.text:00031F98                 ADD     R1, PC          ; "utf-8"
.text:00031F9A                 MOVS    R0, R4
.text:00031F9C                 BLX     R3
.text:00031F9E                 MOV     R2, R8
.text:00031FA0                 MOVS    R6, R0
.text:00031FA2                 LDR     R1, [R5,#(dword_6984C - 0x69830)]
.text:00031FA4                 MOVS    R3, R7
.text:00031FA6                 STR     R0, [SP,#0x20+var_20]
.text:00031FA8                 MOVS    R0, R4
.text:00031FAA                 BL      _ZN7_JNIEnv9NewObjectEP7_jclassP10_jmethodIDz ; _JNIEnv::NewObject(_jclass *,_jmethodID *,...)
.text:00031FAE                 LDR     R3, [R4]
.text:00031FB0                 MOVS    R5, R0
.text:00031FB2                 MOVS    R1, R6
.text:00031FB4                 MOVS    R0, R4
.text:00031FB6                 LDR     R3, [R3,#0x5C]
.text:00031FB8                 BLX     R3
.text:00031FBA                 LDR     R3, [R4]
.text:00031FBC                 MOVS    R0, R4
.text:00031FBE                 MOVS    R1, R7
.text:00031FC0                 LDR     R3, [R3,#0x5C]
.text:00031FC2                 BLX     R3
.text:00031FC4                 ADD     SP, SP, #8
.text:00031FC6                 MOVS    R0, R5
.text:00031FC8                 POP     {R2}
.text:00031FCA                 MOV     R8, R2
.text:00031FCC                 POP     {R4-R7,PC}
.text:00031FCC ; End of function stringTojstring(_JNIEnv *,char  const*)

[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

收藏
点赞0
打赏
分享
最新回复 (3)
雪    币: 2676
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
李晓岚 2012-12-19 10:01
2
0
不看代码实现,看函数名字就知道是用C中的char*构造出java中的String类。
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
forevering 2012-12-19 10:20
3
0
对,函数估计就这功能,主要想学习ARM汇编,大神能给出还原的C码么?
雪    币: 210
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
南极兵 2012-12-19 23:31
4
0
直接百度这函数名。
游客
登录 | 注册 方可回帖
返回