首页
社区
课程
招聘
[讨论]CreateFile的bug能否用来反调试
发表于: 2008-9-1 16:06 5036

[讨论]CreateFile的bug能否用来反调试

2008-9-1 16:06
5036
代码及关键注释如下:

.386
.model flat, stdcall
option casemap :none

include                f:\masm32\include\windows.inc
include                f:\masm32\include\kernel32.inc
includelib        f:\masm32\lib\kernel32.lib
include                f:\masm32\include\user32.inc
includelib        f:\masm32\lib\user32.lib

.data
szFileName        db        'ntdll.dll',0
szTitle                db        'Title',0
szText_1        db        'No found Debugger!',0
szText_2        db        'Found Debugger!',0

szPath        db        MAX_PATH        dup (0)

.code

start:
        push        ebp
        mov        ebp,esp
;/////////////////////////////////////
        ;xor        eax,eax
        mov        ecx,4d
        lahf
        shr        eax,8d       
        shr        eax,7d        ;TF
        add        ecx,eax
        sub        esp,ecx        ;ecx为4*n+1时CreateFile调用失败
;/////////////////////////////////////
        invoke        GetModuleHandle,offset szFileName
        invoke        GetModuleFileName,eax,addr szPath,MAX_PATH
        invoke        CreateFile,addr szPath,GENERIC_READ,FILE_SHARE_READ\
                         ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_ARCHIVE,NULL
        .if        eax != INVALID_HANDLE_VALUE
                push eax
                invoke        MessageBox,0,offset szText_1,offset szTitle,0
                pop        eax
                invoke        CloseHandle,eax
                jmp        @@end
        .endif
        inc        esp
        invoke        MessageBox,0,offset szText_2,offset szTitle,0
        @@end:
        leave
        ret
end start

CreateFile的这种特性是在一次无意中发现的 好像分配缓冲区的大小满足4*n 就没问题
请问这种方法能不能用来反调试呢?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 1126
活跃值: (156)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
2
不知道你打算怎么用?很多API调用的栈必须Align4,否则失败.
2008-9-1 16:18
0
雪    币: 213
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
感谢DiKeN的回答 个人感觉这个还是要配合TF才能起作用
2008-9-1 16:39
0
游客
登录 | 注册 方可回帖
返回
//