首页
社区
课程
招聘
[旧帖] [求助]一个算法的汇编代码,求帮忙看下哪里错了 0.00雪花
发表于: 2013-6-9 14:17 1412

[旧帖] [求助]一个算法的汇编代码,求帮忙看下哪里错了 0.00雪花

2013-6-9 14:17
1412
EXPORT Java_com_xxx_utils_JNIUtils_xxx
Java_com_xxx_utils_JNIUtils_xxxx
 
var_104= -0x104
var_A0= -0xA0
var_48= -0x48
var_34= -0x34
var_2C= -0x2C
var_28= -0x28
 
STMFD   SP!, {R4-R11,LR}
LDR     R8, =($_GLOBAL_OFFSET_TABLE_ - 0x2A24)
LDR     R11, =(__stack_chk_guard_ptr - 0x8104)
SUB     SP, SP, #0xE4
ADD     R8, PC, R8
LDR     R3, [R8,R11]
ADD     R4, SP, #0x108+var_A0
MOV     R6, R2
LDR     R3, [R3]
MOV     R10, R0
MOV     R0, R4
STR     R3, [SP,#0x108+var_2C]
BL      MD5Init
LDR     R3, [R10]
MOV     R1, R6
MOV     R2, #0
MOV     R0, R10
MOV     LR, PC
LDR     PC, [R3,#0x2A4]
LDR     R1, =(asc_79E8 - 0x2A70)
MOV     R6, R0
MOV     R2, #2
MOV     R0, R4
ADD     R1, PC, R1      ; "~@"
BL      MD5Update
MOV     R0, R6          ; s
BL      strlen
MOV     R1, R6
MOV     R2, R0
MOV     R0, R4
BL      MD5Update
LDR     R1, =(asc_79F0 - 0x2AA0)
ADD     R5, SP, #0x108+var_48
MOV     R2, #2
MOV     R0, R4
ADD     R1, PC, R1      ; "^@"
BL      MD5Update
ADD     R9, SP, #0x108+var_104
MOV     R0, R4
MOV     R1, R5
BL      MD5Final
MOV     R0, R9          ; s
MOV     R1, #0          ; c
MOV     R2, #0x64       ; n
BL      memset
LDR     R6, =(a02x - 0x2AD8)
ADD     R7, R5, #9
MOV     R4, R9
SUB     R5, R5, #1
ADD     R6, PC, R6      ; "%02x"


以上代码为一个加密函数的汇编实现,函数传入字符串,输出16进制形式的MD5密文

我对这段汇编代码的理解为:
假设输入字符串为A

1、A+~@ 进行MD5加密,得出结果B

2、B进行MD5加密,得出结果C

3、C+^@ 进行MD5加密,得出D

4、D的16进制形式即是最终结果。

其中的MD5算法是标准32位MD5算法,可是我这样得出的结果总是和实际结果不一致,求大神帮忙看下哪里理解错了

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

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