" /> " />

目 录CONTENT

文章目录

GetTickCount 函数 成为了 勒索软件 破解 新的突破口

Octal
2025-05-17 / 0 评论 / 0 点赞 / 9 阅读 / 0 字 / 正在检测是否收录...

勒索病毒分析和思路

@视频来源于“epcdiy"——抖音

GetTickCount 函数 (sysinfoapi.h)

检索自系统启动以来已用过的毫秒数,最长为 49.7 天。

语法

DWORD GetTickCount();

言论

GetTickCount 函数的分辨率限制为系统计时器的分辨率,通常范围为 10 毫秒到 16 毫秒。 GetTickCount 函数的解析不受 GetSystemTimeAdjustment 函数所做的调整的影响。

已用时间存储为 DWORD 值。 因此,如果系统连续运行 49.7 天,时间将环绕到零。 若要避免此问题,请使用 GetTickCount64 函数。 否则,在比较时间时检查溢出条件。

如果需要更高分辨率的计时器,请使用 多媒体计时器高分辨率计时器

若要获取计算机启动后经过的时间,请检索注册表项中性能数据中的系统 Up Time 计数器 HKEY_PERFORMANCE_DATA。 返回的值是一个 8 字节值。 有关详细信息,请参阅 性能计数器

若要获取系统自启动以来在工作状态下花费的时间,请使用 QueryUnbiasedInterruptTime 函数。

注释QueryUnbiasedInterruptTime 函数在 Windows 的调试(“checked”)生成时生成不同的结果,因为中断时间计数和时钟周期计数在大约 49 天内进行高级。 这有助于识别在系统长时间运行之前可能不会发生的 bug。

返回值

返回值是自系统启动以来经过的毫秒数。


例子

// calculate a 't' value that will linearly interpolate from 0 to 1 and back every 20 seconds
DWORD currentTime = GetTickCount();
if ( m_startTime == 0 )
{
    m_startTime = currentTime;
}
float t = 2 * (( currentTime - m_startTime) % 20000) / 20000.0f;
if (t > 1.0f)
{
    t = 2 - t;
}

要求

要求


最低受支持的客户端

Windows 2000 Professional [桌面应用 |UWP 应用]

最低受支持的服务器

Windows 2000 Server [仅限桌面应用]

目标平台

Windows

标头

sysinfoapi.h (包括 Windows.h)

Library

Kernel32.lib

DLL

Kernel32.dll

相关链接

Win32 API 文档

0

评论区