看使用 GetStartupInfo 检查自己是否被"调试"

STARTUPINFO 结构 GetStartupInfo VOID GetStartupInfo (LPSTARTUPINFO lpStartupInfo )函数功能描述:该函数返回进程在启动时被指定的 STARTUPINFO 结构 参数:    lpStartupInfo      用来存放要获取的 ST 阅读详情

在看雪浏览时看到的一篇dummy大牛写的文章,他是那么说的:在使用 CreateProcess 创建进程时,需要传递 
STARTUPINFO 的结构的指针,
而常常我们并不会一个一个设置其结构的值,
连把其他不用的值清0都会忽略,
而 ollydbg 也这样做了,
我们可以使用 GetStartupInfo 检查启动信息,
如果很多值为"不可理解"的,那么就说明自己不是由 explorer 来创建的.(explorer.exe 使用 shell32 中 ShellExecute 的来运行程序, ShellExecute 会清不用的值)

还有一点 ollydbg 会向 STARTUPINFO 中的     dwFlags 设置 STARTF_FORCEOFFFEEDBACK,而 explorer 不会.

procedure Anti();
var
  si: STARTUPINFO;
begin
  GetStartupInfo(si);
  if
    (si.dwX <> 0) or
    (si.dwY <> 0) or
    (si.dwXCountChars <> 0) or
    (si.dwYCountChars <> 0) or
    (si.dwFillAttribute <> 0) or
    (si.dwXSize <> 0) or
    (si.dwYSize <> 0) or
    (si.dwFlags and STARTF_FORCEOFFFEEDBACK = 1) then
  begin
    asm
      popad
            add esp, 2
    end
  end
  else
  begin
    MessageBox(0, '没有发现调试器. 原理GetStartupInfo', nil, 0);
  end;
end;

 

基于STARTUPINFO的反调试与反反调试 一、反调试      为了保护自己的程序,现在很多程序都加入了反调试,那么,有什么简单的方法来进行调试检测么? 在程序启动后,会有一个STARTUPINFO的结构体变量,来保存程序启动的信息,我们通过其中参数的改变来检测程序是正常运行还是在调试器中运行的。 在一般情况下,程序是由explorer.exe调用的(如果对此有疑问,你可以安装一个hips来了解下,例如:2012/4/17 星期二 阅读详情

相关推荐

vb6.0 GetStartupInfo反调试.rar

vb6.0 GetStartupInfo反调试,发现调试器后,弹出警告,软件防破解技术中,或许可以应用到GetStartupInfo反调试相关功能。

GetStartupInfo

现在不必掌握此结构中每个字段的具体意思,只要清楚系统创建进程的过程即可。一个进程可以调用GetStartupInfo函数来取得父进程创建自己时使用的STARTUPINFO结构。事实上,Windows 系统就是通过调用这个函数来取得当前进程的创建信息,以便对新进程中主窗口的属性设置默认值。 函数定义如下: VOID GetStartupInfo(LPSTARTUPINFO lpStartupIn

rongwenbin的专栏 2406

转录因子详细介绍(motif)

转录因子详细介绍(motif) TF: transcription factor转录因子TFBS: transcription factor binding site转录因子结合位点TFBS是序列内的location,TF特异结合在这里,这个site有这种特点 1 和一些参考相关的一个位置(开始,结束,strand),这些reference可以是染色体开始,geneTSS。也可以是一段sequence 2 A SITE可以是实验证实的(已知的),也可以是一些算法(预测的) 3 例子,下面这个图是酵母

wangprince2017 3万+

使用 GetStartupInfo 检查自己是否被"调试"

在使用CreateProcess创建进程时,需要传递 STARTUPINFO的结构的指针, 而常常我们并不会一个一个设置其结构的值, 连把其他不用的值清0都会忽略, 而ollydbg也这样做了, 我们可以使用GetStartupInfo检查启动信息, 如果很多值为"不可理解"的,那么就说明自己不是由explorer来创建的.(explorer....

weixin_33985679的博客 200

icem二维非结构网格划分_ICEM CFD网格装配

正文共:718字7图 预计阅读时间:2分钟1 前言 对于一些大型的复杂的网格划分,可以将整个模型切分成多个子模型(二维几何用线切分,三维模型用面切分),然后对各个模型单独划分网格,最终装配在一起。这和机械设计的零件设计和装配设计有点相似,这个功...

weixin_39908758的博客 1625

osg3.6.5---osgEarth3.2 实现数字地球的加载

目前我在网上找得比较多的是osgearth2.10及以下的版本及加载数字地球的方法,但是我使用的是osg3.6.5和osgEarth3.。但是3.x版本和2.x版本差别很大,主要区别在于2.x有7个主要库,而3.x版本只有osgEarth这一个库。所以,特别记录一下。后面我讲他集成到qt的窗体在上传更新新的代码。1.直接上源码pro文件和cpp文件。

枫影竹韵的博客 1009

C++ 程序自动重启(windows 有源码)

C++程序自动重启

编程之道在明明德在亲民在止于至善 3488

Unity Acceleratorc与Cache Server unity的缓存服务器

文章目录1.作用概述2.用法(使用,看这个就够了)服务端下载部署Unity Acceleratorc修改http管理端口修改Editor连接端口客户端使用(设置好一次提交设置,团队拉取即可全部生效)3.测试平台切换测试资源导入测试(打开编辑器的情况下)项目启动测试(不打开编辑器的情况下)4.不同版本表现5.服务端监控6.服务端缓存7.冲突8.预警9.不同项目/不同配置-同种资源10.缓存清除 1.作用概述 编辑器模式下,导入资源,切换平台unity都会重新识别资源,大型项目很浪费时间,使用Cache Ser

euphorias的博客 3812

使用 GetStartupInfo 检查自己是否被"调试"(转自看雪论坛)

原文地址:http://bbs.pediy.com/showthread.php?t=31447 在使用CreateProcess创建进程时,需要传递STARTUPINFO的结构的指针,而常常我们并不会一个一个设置其结构的值,连把其他不用的值清0都会忽略,而ollydbg也这样做了,我们可以使用GetStartupInfo检查启动信息,如果很多值为"不可理解"的,那么就...

282

基于PLC的茶叶揉捻机自动控制系统设计【附代码】

茶叶揉捻是初茶加工过程中的一道关键工序,通过揉捻可以使鲜茶叶成条、碎茶及叶组织细胞破损等。影响茶叶成条率、碎茶率和叶组织细胞破损的主要因素包括揉捻时间、压力和揉捻桶转速。为了提高茶叶品质的稳定性和减轻工人的劳动强度,本文提出了一种基于PLC自动控制技术的茶叶揉捻机控制系统设计。📊 PLC自动化设计 | 毕业设计指导 | 工业自动化解决方案。✅ 具体问题可以私信或查看文章底部二维码。✅ 感恩科研路上每一位志同道合的伙伴!

lagougongzuoshi的博客 1344

合成生物学中试:花钱只是开始,烧钱才是常态

2026年合成生物学行业面临严峻产业化挑战:多家企业终止发酵项目或延期投产,显示从实验室到工厂的转化困境。核心问题并非基因合成成本,而是工艺放大难题——67%项目在中试阶段因工艺问题失败。AI辅助无法替代工程经验,菌株-配方-工艺的三元适配需要长期数据积累。中试成本惊人,涉及设备折旧、原料消耗和稀缺工艺人才,而行业普遍回避讨论这些工程现实,导致认知偏差。建议创业者提前布局中试,将其视为核心竞争力而非简单成本项。合成生物学的真正瓶颈在于工程化能力,这需要时间沉淀而非技术叙事。

AIexander的博客 943

GetStartupInfo检测程序处于被调试状态

  #include windows.h>#include stdio.h>#pragma comment(linker, "/subsystem:windows /entry:main")int main()...{  STARTUPINFO si;    GetStartupInfo(&si);  if (     (si.dwX != 0) ||    (si.dwY != 0) |

晏斐的Blog 1911

基于物联网设计温室水培系统(NBIOT+华为云IOT)_338

本项目设计并实现了一套基于物联网的温室水培系统。系统以STM32F103RCT6单片机为核心控制器,结合SHT30温湿度传感器、SGP30二氧化碳传感器、BH1750光照传感器及液位检测传感器等硬件,实现对温室内环境参数的实时采集。系统支持自动和手动两种控制模式,能够根据传感器数据自动控制补光灯、通风风扇、遮光卷帘、降温水帘及营养液补充电机。通过NBIoT模块,系统可将采集的数据通过MQTT协议上传至华为云IOT平台,用户可通过Android手机APP或Windows上位机进行远程监控与控制。

414

【27】软考软件设计师——数据流图(DFD)补全题满分精讲|下午15分大题深度拆解

本文是《软件设计师·50讲通关|从零基础到工程师职称》专栏第27篇,深度精讲**下午案例题第1道必考大题:数据流图(DFD)补全**,该题单题分值高达**12 ~ 15分**,是整张试卷最稳的保底得分大题。我结合多年备考复盘与真题阅卷规则,超详细拆解DFD四大核心元素标准定义、机考绘图规范、三层分层逻辑、**父图子图平衡刚性扣分规则**,升级强化版「DFD满分补全三步法」;复刻历年高频真题完整流程,拆解缺失数据流定位、实体/存储辨析、平衡改错、文字需求对照全流程,配套**阅卷满分答题话术、机考避坑细则

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 592

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Windows 32位-调试与反调试

1.加载调试符号链接文件并放入d:/symbols目录下. 0:000> .sympath srv*d:\symbols*http://msdl.microsoft.com/download/symbols Symbol search path is: srv*d:\symbols*http://msdl.microsoft.com/download/symbols Expande...

weixin_30790841的博客 289

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

GetStartupInfo 反加载篇

转:http://bbs.pediy.com/showthread.php?p=1160998#post1160998 1.Windows 加载器创建进程的时候会把StartUpInfo 的结构值设为0,而一般的可执行文件加载器创建进程的时候,则不会把StartUpInfo结构清0,利用OD...

chupu2979的博客 184

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

易语言软件反调试大法——六种反调试方法,总有一种适合“它”!

备注:写成子程序是为了方便在应用时插到代码段中,真正使用时请务必插入(最好分段插入)到程序代码中,否则几乎形同虚设。 . .版本 2 .子程序 第一法_内存分配反调试, 逻辑型 .参数 最小值, 整数型 .参数 最大值, 整数型 .局部变量 min, 整数型 .局部变量 max, 整数型 GetProcessWorkingSetSize (GetCurrentProcess (),

omg的另一个小窝.... 4551
上一篇: 基于文件流的文件隐藏技术
下一篇: 关于Hook的一些理解
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值