吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 606|回复: 6
收起左侧

[求助] OutPutDebugString

  [复制链接]
wuyingjie2022 发表于 2023-12-27 20:23
本帖最后由 苏紫方璇 于 2023-12-30 21:08 编辑

[C++] 纯文本查看 复制代码
#include <iostream>
#include <Windows.h>
int main()
{
                DWORD errorValue = 12345;
                SetLastError(errorValue);
                OutputDebugString("Test for debugger!");
                if (GetLastError() == errorValue)
                {
                        printf("没有检测到调试器");
                        getchar();
                        return TRUE;
                }
                else
                {
                        printf("检测到调试器");
                        getchar();
                        return FALSE;
                }
        return 0;
}

有没有了解  OutPutDebugString这个函数的  这个函数执行成功与执行失败会影响 Eflag标志位吗????????

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

冥界3大法王 发表于 2023-12-27 20:40
这个是输出给DebugView看调试信息的 多了反检测功能?
yes2 发表于 2023-12-27 21:19
OutputDebugString作为一个API,执行成功的话应该会SetLastError为0
sumile 发表于 2023-12-27 22:17
本帖最后由 sumile 于 2023-12-27 22:21 编辑

函数失败会改变LastError的值,反之则不改变。所以可以事先自己设置一个值,比如12345,然后调用OutputDebugString()最后再判断之前设置的值还是不是12345。如果不是12345(有改变)就说明函数执行失败,无调试器,楼主的代码写反了

以下内容出自此处
对于OutputDebugString函数,它的作用是在调试器中显示一个字符串,同时它也可以用来探测调试器的存在。使用SetLastError函数,将当前的错误码设置为一个任意值。如果进程没有被调试器附加,调用OutputDebugString函数会失败,错误码会重新设置,因此GetLastError获取的错误码应该不是我们设置的任意值。但如果进程被调试器附加,调用OutputDebugString函数会成功,这时GetLastError获取的错误码应该没改变。

忆魂丶天雷 发表于 2023-12-28 00:33
网络上的确有这个检测调试的方法,但是实际情况是大部分调试器已经默认处理了这个问题,如果是想用来检测调试建议另寻套路。
 楼主| wuyingjie2022 发表于 2023-12-28 16:02
忆魂丶天雷 发表于 2023-12-28 00:33
网络上的确有这个检测调试的方法,但是实际情况是大部分调试器已经默认处理了这个问题,如果是想用来检测调 ...

这种检测方法连vc编译器的调试器都检测不到
 楼主| wuyingjie2022 发表于 2023-12-28 16:05
yes2 发表于 2023-12-27 21:19
OutputDebugString作为一个API,执行成功的话应该会SetLastError为0

按理说这个API执行成功与不成功都会改变Eflag标志的值,可将程序拖入OD,观察这个函数应该是执行成功了,eax=设定的Eflag的值,可就是对Eflag的值没影响,所以没法检测到
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-1-10 13:21

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表