实用恶意软件分析-实验5.1问题11函数sub_100036C3

问题描述 投票:1回答:1

只想问一个关于sub_100036C3的问题,因为我没有得到book中给出的详细答案。

简介:

第107页。问题11.导出PSLIST的作用是什么?

第498页。答案:sub_100036C3函数检查是否操作系统版本是Windows Vista / 7或XP / 2003/2000。

反汇编代码:

disassembled code

我们看到说明:

cmp [ebp+VersionInformation.dwMajorVersion], 5
jb short loc_100036FA

dwMajorVersion对于XP / 2003/2000为5。

dwMajorVersion对于Windows Vista / 7为6。

但是在反汇编的代码中,仅当dwMajorversion为> = 5时,jb short loc_100036FA才会跳转到loc_100036FA,并且仅当dwMajorVersion <5时才跳转(如果低于,则跳转)。

因此,我认为它不能用于在XP和Vista / 7之间进行选择,因为5和6都用红色箭头表示。

请,有人可以解释,我是对的还是我犯了什么错误?

winapi assembly disassembly malware ida
1个回答
-1
投票

[cmp通过从第二个参数减去第一个参数,即5 - VersionInformation.dwMajorVersion进行比较。

[jb如果CF(传送标志)= 1,则跳转。因此,如果dwMajorVersion > 5,则将跳转,即版本是Vista或更高版本。

© www.soinside.com 2019 - 2024. All rights reserved.