朋友帮忙看下这段ARM汇编代码

IT回忆录 2016-07-29 09:58:17
这段代码不是很懂,大神们帮小弟给解释成伪C代码。
EXPORT Java_com_demo_d1_app_AesKeyHandler_genAesKey
.text:00000FD0 Java_com_demo_d1_app_AesKeyHandler_genAesKey
.text:00000FD0
.text:00000FD0 var_28 = -0x28
.text:00000FD0 var_1C = -0x1C
.text:00000FD0
.text:00000FD0 PUSH {R4-R7,LR}
.text:00000FD2 LDR R1, =(aJavaUtilCalend - 0xFDC)
.text:00000FD4 LDR R3, [R0]
.text:00000FD6 SUB SP, SP, #0x14
.text:00000FD8 ADD R1, PC ; "java/util/Calendar"
.text:00000FDA LDR R3, [R3,#0x18]
.text:00000FDC MOVS R4, R0
.text:00000FDE MOVS R5, R2
.text:00000FE0 BLX R3
.text:00000FE2 MOVS R3, #0xE2
.text:00000FE4 MOVS R7, R0
.text:00000FE6 LDR R2, [R4]
.text:00000FE8 LSLS R3, R3, #1
.text:00000FEA MOVS R1, R7
.text:00000FEC LDR R6, [R2,R3]
.text:00000FEE LDR R2, =(aGetinstance - 0xFF8)
.text:00000FF0 LDR R3, =(aLjavaUtilCalen - 0xFFA)
.text:00000FF2 MOVS R0, R4
.text:00000FF4 ADD R2, PC ; "getInstance"
.text:00000FF6 ADD R3, PC ; "()Ljava/util/Calendar;"
.text:00000FF8 BLX R6
.text:00000FFA MOVS R3, #0xE4
.text:00000FFC LDR R1, [R4]
.text:00000FFE LSLS R3, R3, #1
.text:00001000 MOVS R2, R0
.text:00001002 LDR R3, [R1,R3]
.text:00001004 MOVS R0, R4
.text:00001006 MOVS R1, R7
.text:00001008 BLX R3
.text:0000100A LDR R3, [R4]
.text:0000100C LDR R2, =(aGettimeinmilli - 0x1020)
.text:0000100E MOVS R6, R0
.text:00001010 ADDS R3, #8
.text:00001012 LDR R3, [R3,#0x7C]
.text:00001014 MOVS R1, R7
.text:00001016 MOV R12, R3
.text:00001018 LDR R3, =(aJ - 0x1022)
.text:0000101A MOVS R0, R4
.text:0000101C ADD R2, PC ; "getTimeInMillis"
.text:0000101E ADD R3, PC ; "()J"
.text:00001020 BLX R12
.text:00001022 LDR R3, [R4]
.text:00001024 MOVS R2, R0
.text:00001026 ADDS R3, #0xD0
.text:00001028 LDR R3, [R3]
.text:0000102A MOVS R0, R4
.text:0000102C MOVS R1, R6
.text:0000102E BLX R3
.text:00001030 MOVS R3, #0xAB
.text:00001032 LDR R2, [R4]
.text:00001034 LSLS R3, R3, #2
.text:00001036 MOVS R6, R0
.text:00001038 MOVS R7, R1
.text:0000103A LDR R3, [R2,R3]
.text:0000103C MOVS R1, R5
.text:0000103E MOVS R0, R4
.text:00001040 BLX R3
.text:00001042 LDR R3, =0
.text:00001044 LDR R2, =0x5265C00
.text:00001046 STR R0, [SP,#0x28+var_1C]
.text:00001048 MOVS R1, R7
.text:0000104A MOVS R0, R6
.text:0000104C BL j_j___aeabi_ldivmod
.text:00001050 LDR R2, [SP,#0x28+var_1C]
.text:00001052 SUBS R2, #0x10
.text:00001054 ASRS R3, R2, #0x1F
.text:00001056 BL j_j___aeabi_ldivmod
.text:0000105A MOVS R3, #0xB8
.text:0000105C MOVS R6, R2
.text:0000105E LDR R2, [R4]
.text:00001060 LSLS R3, R3, #2
.text:00001062 MOVS R1, R5
.text:00001064 LDR R3, [R2,R3]
.text:00001066 MOVS R0, R4
.text:00001068 MOVS R2, #0
.text:0000106A BLX R3
.text:0000106C MOVS R3, #0xB0
.text:0000106E LDR R2, [R4]
.text:00001070 LSLS R3, R3, #2
.text:00001072 MOVS R7, R0
.text:00001074 LDR R3, [R2,R3]
.text:00001076 MOVS R0, R4
.text:00001078 MOVS R1, #0x10
.text:0000107A BLX R3
.text:0000107C MOVS R3, #0xD0
.text:0000107E MOVS R5, R0
.text:00001080 LDR R2, [R4]
.text:00001082 ADDS R6, R7, R6
.text:00001084 STR R6, [SP,#0x28+var_28]
.text:00001086 LSLS R3, R3, #2
.text:00001088 LDR R6, [R2,R3]
.text:0000108A MOVS R0, R4
.text:0000108C MOVS R1, R5
.text:0000108E MOVS R2, #0
.text:00001090 MOVS R3, #0x10
.text:00001092 BLX R6
.text:00001094 MOVS R0, R5
.text:00001096 ADD SP, SP, #0x14
.text:00001098 POP {R4-R7,PC}
.text:00001098 ; End of function Java_com_demo_d1_app_AesKeyHandler_genAesKey
...全文
920 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
测试NULL 2016-08-04
  • 打赏
  • 举报
回复
这个目测应该是java代码反编译的啊

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧