Quantcast
Channel: 看雪安全论坛
Viewing all articles
Browse latest Browse all 9556

技术专题 【原创】【原创】调戏:纯应用层的Anti本地调试器(2)

$
0
0
本文是一个开胃用的(最近论坛不少抛砖的,就是玉石不出啊)。核心内容是怎么搞死SOD的Anti Anti Attach功能。

上一篇Anti中调戏了OD的附加和硬件断点,但是对于SOD而言,反附加还是太苍白,于是突然想起多年前,曾经被大神们使用的一个技巧,于是特来调戏一番SOD。当SOD中开启神秘功能 Anti Anti Attach时,OD附加后暂停的EIP代码中,如果用OD单步 F7会看到如下的一段代码:


附件 84634

这里不难看到一个native级的api,作为一个常年混迹于黑暗世界的调戏师立刻就心生歹意。
如果在这Native API上做个文章,比如取出其返回地址进行一番计较,会不会十分精彩呢。

代码:

#include "stdafx.h"
#include <winternl.h>
#include "inlinehook.h"

DWORD GetModuleImageSize(PVOID lphModule);
typedef void (__stdcall *_RtlExitUserThread)(NTSTATUS ExitStatus);

_RtlExitUserThread OldRtlExitUserThread = NULL;
DWORD ntdllBase = 0;
DWORD ntdllSize = 0;
void __stdcall OnRtlExitUserThread(NTSTATUS ExitStatus)
{
        void* __ebp = &__ebp + 2;
        DWORD Eip = *(DWORD *)((DWORD)__ebp+4);
        if (Eip>ntdllBase&&Eip<ntdllBase+ntdllSize)
        {
                OldRtlExitUserThread(ExitStatus);
        }
        else
        {
                TerminateProcess(GetCurrentProcess(),0);
        }
        return ;
}

DWORD WINAPI AAAAThread(LPVOID lparam)
{
        BYTE g_backcode[10]={0};
        ntdllBase = (DWORD)GetModuleHandle(TEXT("ntdll.dll"));
        ntdllSize = GetModuleImageSize((PVOID)ntdllBase);
        PVOID pfnRtlExitUserThread = (PVOID)GetProcAddress(GetModuleHandle(TEXT("ntdll.dll")),"RtlExitUserThread");
        InlineHook((void *)pfnRtlExitUserThread,(void *)OnRtlExitUserThread,(void **)&OldRtlExitUserThread);
        RtlCopyMemory((void *)g_backcode,pfnRtlExitUserThread,10);
        while(1)
        {
                if (memcmp(pfnRtlExitUserThread,g_backcode,10)!=0)
                {
                        TerminateProcess(GetCurrentProcess(),0);
                }
                //!!
                Sleep(5000);
        }
        return 0;
}
void InitAAAA()
{
        ::CreateThread(NULL,0,AAAAThread,NULL,0,NULL);
}

编译运行,用OD(SOD全开模式!)附加后,正常,按F9直接退出。显示如图:
附件 84635

开胃菜到这里结束了。
主菜请等下一篇。

PS:
IGS游戏安全技术培训
QQ群:48715131
欢迎有兴趣研究各类游戏安全相关技术的人员加入。

上传的图像
文件类型: png 图片1.png (4.7 KB)
文件类型: png 图片2.png (6.1 KB)

Viewing all articles
Browse latest Browse all 9556

Trending Articles