专业丰富的破解论坛技术交流,提供软件安全,病毒分析,脱壳破解,安卓破解,加密解密等,由无数热衷于软件爱好者共同维护
 
发新帖
查看: 735|回复: 0

[技术文章] 十五节 逆向病毒分析(实战)

[复制链接]
玉面飞龙之王 发表于 2020-9-22 13:38:24 | 显示全部楼层
本帖最后由 玉面飞龙之王 于 2020-9-22 13:40 编辑

seg000:004D53B2 loc_4D53B2: ; CODE XREF:
sub_4D5356+34j
seg000:004D53B2 mov eax, ebx
;return ebx
seg000:004D53B4 pop edi
seg000:004D53B5 pop esi
seg000:004D53B6 pop ebx
seg000:004D53B7 pop ecx
seg000:004D53B8 pop ecx
seg000:004D53B9 pop ebp
seg000:004D53BA retn 0Ch
seg000:004D53BA sub_4D5356 endp
现在,函数 sub_4D5356 分析完成了,显然此函数的功能是读取注册表特定的键值,成功返回 1,并将读取到的数据写入参数指定的缓冲区中,失败返回 0。笔者在 idb 文件中将此函数重命名为 CheckReg。下面以一段伪码结束此函数的分析。
DWORD CheckReg( OUT LPBYTE buffer )
{
HANDLE hKey;
DWORD Result ,cbBufSize = 0x106;
Result = RegOpenKeyExA( HKEY_CURRENT_USER,
”Software\Microsoft\Windows\CurrentVersion\Explorer”
,0,KEY_READ,&hKey );
If( Result )return 0;
Result =
! RegQueryValueKeyEx( hKey,”PINF”
,0,NULL,buffer,&cbBufSize );
RegCloseKey( hKey );
return Result;
}
分析函数 sub_004D51AA
seg000:004D51F5 test al, al
seg000:004D51F7 jz short loc_4D5217
;如果 sub_4D5356A 的返回值为 0,则控制传递给 4D5217
seg000:004D51F9 cmp [ebp+var_140], 7
seg000:004D5201 jb short loc_4D5217
;查看IDA v_140 的类型描述,为 word 型。可见,v_140 占用了大小为 0x106 字节的
;缓冲区前两个字节。而且被用作个无符号数。结合以上的分析,该 0x106 字节的缓冲区
;所代表的数据类型很可能是 REG_BINARY
;如果 v_140 小于 7,则同样跳转到 4D5217。这里的 7 代表什么含义呢?到函数 4D51AA 分
;析完成的时候再对此进行说明。分析函数 sub_004D53BE(调用部分)

快速回复 返回顶部 返回列表