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

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

[复制链接]
玉面飞龙之王 发表于 2020-9-19 21:57:15 | 显示全部楼层
本帖最后由 玉面飞龙之王 于 2020-9-19 22:01 编辑

seg000:004D51D9 push edi
;edi 为数据段基址
;参数 1 压栈
seg000:004D51DA push ecx
;ecx 为栈区变量 v_38 的地址,这里可能用作缓冲区基址,也可能指向具体变量
;参数 0 压栈
seg000:004D51DB call sub_4D524A
分析函数 sub_4D524A(实现部分)
seg000:004D524A sub_4D524A proc near ; CODE XREF:
sub_4D51AA+31p
seg000:004D524A
seg000:004D524A arg_0 = dword ptr 8
;arg_0: 缓冲区基址,也可能指向具体变量
seg000:004D524A arg_4 = dword ptr 0Ch
;arg_4: 数据段基址
seg000:004D524A arg_8 = dword ptr 10h
;arg_8: 字符串表/某特定字符串 基址
seg000:004D524A
seg000:004D524A push ebp
seg000:004D524B mov ebp, esp
seg000:004D524D push ebx
seg000:004D524E push esi
seg000:004D524F push edi
seg000:004D5250 mov eax, [ebp+arg_4]
;eax = arg_4
seg000:004D5253 mov ebx, [ebp+arg_0]
;ebx = arg_0
seg000:004D5256 mov edi, [ebp+arg_8]
;edi = arg_8
seg000:004D5259 mov edx, [eax+20h]
seg000:004D525C mov ecx, [edx]
seg000:004D525E mov [ebx], ecx
;[ebx] =[ [eax+20h]]
seg000:004D5260 mov eax, [ebp+arg_4]
;eax = arg_4
seg000:004D5263 mov edx, [eax+20h]
seg000:004D5266 add edx, 4
seg000:004D5269 mov ecx, [edx]
seg000:004D526B mov [ebx+4], ecx
;[ebx+4] =[ [eax+20h]+4]
;由于出现了 ebx + 4 的字样,可见,arg_0 是被当作缓冲区基址来使用的。现在可以确定 arg_0
;为缓冲区基址,而不是某特定变量地址。
;类似地,[eax+20h]极可能是一个缓冲区地址,而 eax 为 arg_4,数据段基址。
快速回复 返回顶部 返回列表