-
-
[旧帖] [求助]一个算法的汇编代码,求帮忙看下哪里错了 0.00雪花
-
发表于: 2013-6-9 14:17 1410
-
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算法,可是我这样得出的结果总是和实际结果不一致,求大神帮忙看下哪里理解错了
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
赞赏
他的文章
看原图
赞赏
雪币:
留言: