美文网首页
常见脱壳入口点

常见脱壳入口点

作者: 简单点的笨演员 | 来源:发表于2022-08-13 22:01 被阅读0次

    常见脱壳入口点

    Visual Studio 2013(常见程序有 x64dbg 32位):

    特征很明显,一个call后面有一条跳转到下一条指令的jmp,jmp过去的是一条 push 14 指令。下面是x32dbg.exe的DIE查壳信息与入口点汇编截图:

    编译器: EP:Microsoft Visual C/C++(2013-2017)[EXE32]
    编译器: Microsoft Visual C/C++(2013)[-]
    链接程序: Microsoft Linker(12.0*)[GUI32,signed]

    跳转到下一条指令的jmp

    Visual Studio 2017及之后(常见程序有 WPS、微信):

    VS2017 特征没有 VS2013 看起来那么明显,其实也差不多,一个call后面有一条向上跳转指令的jmp,jmp过去的也是一条 push 0x14 指令。下面是wps.exe的DIE查壳信息与入口点汇编截图:

    编译器: EP:Microsoft Visual C/C++(2017 v.15.5-6)[EXE32]
    编译器: Microsoft Visual C/C++(-)[-]
    链接程序: Microsoft Linker(14.24**)[GUI32,signed]

    也有 push 0x14 指令

    Visual Studio 2008 64bit 及之后(使用程序有 x64dbg 64位、python 64位):

    一条sub rsp,0x28指令之后接一个call,然后来一条sub rsp,0x28。两条指令的 0x28 都是固定的。下面是x64dbg.exe的DIE查壳信息(DIE查不出来编译器,DIE只有x64dbg查不出来,可以查出其他64位程序的)与入口点汇编截图:

    链接程序: Microsoft Linker(12.0*)[GUI64,signed]
    覆盖: Binary

    x64dbg 64位入口点

    Delphi(使用程序有 Resource Hacker):

    经过对各种 Delphi 版本的对比,发现只有前面3条指令是固定的。如果在 x64dbg 使用无符号来显示数据,第三条对应显示为 add esp, -0x10 。下面是ResourceHacker.exe的DIE查壳信息与入口点汇编截图:

    编译器: Embarcadero Delphi(10.3 Rio)[-]
    链接程序: Turbo Linker(2.25*,Delphi)[GUI32]
    资源[005482ac]: Binary

    关键是前面三条指令

    Borland C++(使用程序有 OllyDBG):

    一条jmp指令跳过了不常见的bound指令,还有4个dec指令和一个nop指令。下面是OllyDBG.exe的DIE查壳信息与入口点汇编截图:

    编译器: Borland C++(Builder)[-]
    链接程序: Turbo Linker(5.0)[GUI32]

    jmp跳过了bound指令

    MinGW GCC(使用程序有 MinGW-w64 ):

    自从Visual Studio 越来越好用并且有免费版之后,使用MinGW GCC 在Windows平台开发已经不常见了,所以一般是古老软件用MinGW GCC编译。下面是gcc.exe的DIE查壳信息:

    编译器: MinGW(GCC: (i686-win32-dwarf-rev3, Built by MinGW-W64 project) 12.1.0)[-]
    链接程序: GNU linker ld (GNU Binutils)(2.30)[控制台32,console]
    覆盖: BitRock installer data(-)[-]
    覆盖: Binary

    经过测试,MinGW GCC有两种入口:

    image.png image.png

    Go(使用程序有 Go 1.18 ):

    一条被 int3 上下包围的jmp指令向上跳,而且跳的跨度还不小。下面是64位的go.exe的DIE查壳信息与入口点汇编截图:

    编译器: Go(1.15.0-X.XX.X)

    一个奇怪的jmp

    附录:在x64dbg中下跟踪断点

    根据push 0x14这条特殊的指令,我们可以在x64dbg中下跟踪断点dword:[esp]==0x14,如图所示:

    相关文章

      网友评论

          本文标题:常见脱壳入口点

          本文链接:https://www.haomeiwen.com/subject/psrfgrtx.html