跳转至

动态API解析

攻击者可能会混淆然后动态解析其恶意软件调用的API函数,以隐藏恶意功能并阻碍防御分析。恶意软件通常使用操作系统提供的各种Native API函数来执行各种任务,例如涉及进程、文件和其他系统工件的任务。 恶意软件调用的API函数可能会在负载文件中留下静态工件,例如字符串。防御分析师还可能通过导入地址表(IAT)或其他帮助动态链接调用代码到提供函数的共享模块的结构来揭示二进制文件可能执行的函数。(引用: Huntress API哈希)(引用: IRED API哈希) 为了避免静态或其他防御分析,攻击者可能使用动态API解析来隐藏恶意软件的特征和功能。类似于软件打包,动态API解析可能会更改文件签名并混淆恶意API函数调用,直到它们在运行时被解析和调用。 可以使用各种方法来混淆恶意软件对API函数的调用。例如,函数名称的哈希通常存储在恶意软件中,而不是字面字符串。恶意软件可以使用这些哈希(或其他标识符)手动复制链接和加载过程,使用GetProcAddress()LoadLibrary()等函数。这些哈希/标识符还可以通过加密或其他字符串操作技巧进一步混淆(需要在执行期间进行各种形式的反混淆/解码文件或信息)。(引用: BlackHat API打包器)(引用: Drakonia HInvoke)(引用: Huntress API哈希)