ida中 识别md5 ,先右键转为hex 或者按h
_DWORD *__fastcall MD5Init(_DWORD *result)
{
*result = 0;
result[1] = 0;
result[2] = 1732584193;
result[3] = -271733879;
result[4] = -1732584194;
result[5] = 271733878;
return result;
}
在ida中当然也可以使用搜索
search imdate-value 搜索立即数 0x67452301; 这是上面的init中的state一个数···
v2 = __ROR4__((v66 & ~v99 | v83 & v99) + v133 + v116 - 0x28955B88, 25);
__ROR4__ 是循环右移
鼠标右键 invert sign可以改正一些纠正一下负号 3 + 0x242070DB
数值类型转换
int __fastcall MD5Final(unsigned int *a1, unsigned __int8 *a2)
{
unsigned int v3; // [sp+8h] [bp-28h]
unsigned int v4; // [sp+10h] [bp-20h]
unsigned __int8 v7[8]; // [sp+1Ch] [bp-14h] BYREF
v4 = (*a1 >> 3) & 0x3F;
if ( v4 > 0x37 )
v3 = 120 - v4;
else
v3 = 56 - v4;
MD5Encode(v7, a1, 8u);
MD5Update(a1, PADDING, v3);
MD5Update(a1,