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

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

[复制链接]
玉面飞龙之王 发表于 2020-9-22 13:52:21 | 显示全部楼层
HMODULE hMod = LoadLibraryA( ModuleName );
PVOID func_Initiate = NULL;
If( !hMod )return 0;
func_Initate = GetProcAddress( hMod,”Initiate);
If( !func_Initiate )return 0;
If(*((DWORD (*)(PVOID))func_Initiate)( DataBase ))
return 1;
return 0;
}
分析函数 sub_004D51AA
;在函数 sub_4D53BE 分析完成后,我们可以确定 v_140 所在的大小为 0x106 的缓冲区(由注
;册表初始化)的含义,即:前两个字节是一个 WORD ,后面是一个指出模块名称的字符串。
seg000:004D5215 mov ebx, eax
seg000:004D5217
seg000:004D5217 loc_4D5217: ; CODE XREF:
sub_4D51AA+4Dj
seg000:004D5217 ; sub_4D51AA+57j
seg000:004D5217 test bl, bl
seg000:004D5219 jnz short loc_4D5242
;如果函数 CheckAndCallInitiate 返回 1,则控制传递给 OEP 执行原始程序。
分析函数 sub_004D53F6(调用部分)
seg000:004D521B push edi
;edi :数据段基址
;参数 2 压栈
seg000:004D521C lea eax, [ebp+var_38]
seg000:004D521F push eax
;eax:函数地址表基址
;参数 1 压栈
seg000:004D5220 lea edx, [ebp+var_13E]
seg000:004D5226 push edx
;edx: 缓冲区指针,用于字符串,可能用于输入或者输出,目前无法确定
;参数 0 压栈
seg000:004D5227 call sub_4D53F6
分析函数 sub_004D53F6(实现部分)
seg000:004D53F6 sub_4D53F6 proc near ; CODE XREF:
sub_4D51AA+7Dp
seg000:004D53F6
seg000:004D53F6 var_2914 = byte ptr-2914h
seg000:004D53F6 var_114 = byte ptr-114h
seg000:004D53F6 var_10 = byte ptr-10h

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