恶意软件反调试分析的对抗技术

 在本文中,我们会介绍恶意软件如何利用一个打包的Exe原始入口点来欺骗结构化异常处理程序(SEH)。

[[255108]]

在此,我们会拿一个名为sample.exe的恶意软件样本进行具体讲解,首先将其加载到ExeInfo,进行打包。

注意入口点是28E8,此外,我们开始调试它的时候,为了确保不被ASLR检查到并避免稍后出现的动态加载,看看DLL的特点,就可以看到这个DLL不能移动。

现在将该sample.exe示例加载到OllyDBG中,它向我们提供了一个信号,即代码可以被压缩,以下是我们之前看到的。

一旦样本加载到OllyDBG中,它将开始在Unpacker代码中运行,由于手动逐步执行此代码将需要很多时间,所以我们会很可能错过OEP,下面就分析一下我们已经执行的这几行代码。

有一些指向SHE结构的FS寄存器,在进一步了解之前,需要了解Windows是如何找到FS寄存器地址的。FS寄存器指向线程信息块(TIB),其包含有关当前正在运行的线程的信息,并且指向SHE链的起点的指针位于TIB的偏移量0x00处。

现在,我们来看看结构异常处理程序。

单个SEH记录由堆栈上的两个元素组成,此过程称为_Exception_Registration。构成SEH记录的两个要素是:

1.SEH处理函数;

2.PTR到下一个SEH记录;

这样才能形成SEH链结构。

一旦代码被加载,它将519870复制到EAX并将其推到堆栈的顶部。

我们可以看看堆栈的顶部这个推送的ESP指向14FF80。

根据SEH的上述说明,这是处理程序函数代码,但仍然需要由下一行代码PUSH DWORD PTR FS:[0]完成的FS来指出。把指针指向SEH链的堆栈顶部,将完成SEH记录。此时寄存器的当前状态如下所示。

有了MOV DWORD PTR FS:[0], ESP的说明,代码通过将ESP(指向记录的顶部)移动到FS:[0]来将新创建的记录指定到SEH链的顶端。执行此语句后,我们可以看到堆栈状态SEH记录的两个元素。

我们也可以在VEH/SEH链中创建新的记录。

但是,自从下一行代码XOR EAX,EAX将0放入EAX后,样本代码应该执行这个SEH处理程序代码。

然后它试图将它写入一个只读位置来导致异常,第一个处理程序会捕获此异常,然后执行解包程序代码。

此外,在执行最后一条语句时,将跳转到519870(记住这是我们之前提交给EAX寄存器的地址,并且是SEH处理函数SEH记录的一部分)。

这是隐藏打包程序代码的一种智能技术,但是我们的分析还没有完成,因为我们仍然需要找到OEP,从二进制文件中解压缩代码并重新构建它是很困难的。

为此,我们将尝试通过在打开代码之前查找打包程序通常使用的一些常见模式:

  • 一个是在解码器代码中寻找EAX跳转的模式,通常是跳转到未打包的代码;
  • 一个是打包机通常在打包代码之前清理堆栈;

因此我们应该按照这个顺序查看:清理堆栈→JMP EAX。

一旦进入519870(SEH处理程序代码)中,我们可以通过每个指令,也可以沿着创建SEH记录设置一个断点。

下面就让我们采用沿着创建SEH记录设置一个断点的办法。

由于SEH被创建到系统上,所以当创建结构时,我们将一个断点放在堆栈的顶部。

然后运行样本,它需要用到下面这部分代码。

这与我们正在寻找的模式相匹配,让我们来执行JMP eax,然后看看这个代码将会带给我们的惊喜,如下图所示。

由于代码28E8看起来更简洁,我们来转一下这个代码。

另外,我们还需要检查这个转储代码是否执行,在执行检查之前,请先建立导入地址表。

现在,我们来分析Process Hacker中exe是否正在运行。一旦exe启动,它会给出错误的警告。

有趣的是,这只是为了纠正错误信息,因为即使在点击ok之后,我们也可以看到进程中的黑客进程正在运行并产生一个进程。

通过本文的分析,你可以看到恶意软件的开发者是如何包装代码并阻止分析的。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/122793.html<

(0)
运维的头像运维
上一篇2025-02-22 12:28
下一篇 2025-02-22 12:29

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注