无忧启动论坛

标题: 分享迷你 1 KB EXE 文件,判断当前系统是 BIOS 还是 UEFI 启动 [打印本页]

作者: plusv    时间: 2020-1-15 12:56
标题: 分享迷你 1 KB EXE 文件,判断当前系统是 BIOS 还是 UEFI 启动
本帖最后由 plusv 于 2020-4-14 08:17 编辑

分享迷你 2 KB EXE 文件,判断当前系统是 BIOS 还是 UEFI 启动

_
更新 1
做了简单的 EXE 文件减肥

减肥 2,560-1,888=672 Bytes (27%)
需要的自行下载
BootModeCheck_1KB.rar
_
更新 2
将 EXE 段合并,文件减肥

减肥 2,560-1,088=1,472 Bytes (58%)
需要的自行下载
BootModeCheck_1088_Bytes.rar



_
更新 :
加 Secure Boot -> Enabled/Disabled/None 三种.

我 10 余年的老 PC,
VMWare 不能装新版,
因为 CPU 不支持,
所以无法测试 Enabled,
给其它网友测试.

需要的自行下载
BootModeCheck_Update_2.rar





_
更新 :
Bug 修正

我 10 餘年的老 PC,
VMWare 不能裝新版,
因為 CPU 不支持,
所以無法測試 Enabled,
給其它網友測試.

需要的自行下載
BootModeCheck_Update_3.rar



_
更新 :
由于之前手边没有实机测试,
无法知道是哪出错,
找了实机 Debug 一下,
程序没取得权限的问题,
用汇编麻烦,
改用 Delphi 编程,
在一台小 NoteBook 实机测试过.

需要的自行下载
BootModeCheck_Update_4.rar







BootModeCheck.rar

699 Bytes, 下载次数: 185

BootModeCheck_1KB.rar

702 Bytes, 下载次数: 292

更新_1_减肥版

BootModeCheck_1088_Bytes.rar

638 Bytes, 下载次数: 209

更新_2_减肥版


作者: foxfirefox    时间: 2020-1-15 13:08
不正确。。
作者: sghihor    时间: 2020-1-15 13:08
谢大大分享~
作者: plusv    时间: 2020-1-15 13:13
foxfirefox 发表于 2020-1-15 13:08
不正确。。

我使用
实机 Windows 7 X64 BIOS
VMWare UEFI Windows 10

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=417337
http://wuyou.net/forum.php?mod=viewthread&tid=412368

得到相同的结果.
作者: guies    时间: 2020-1-15 13:31
  1. bcdedit | find "winload.efi" >nul && set mbr=efi || set mbr=exe
复制代码


作者: plusv    时间: 2020-1-15 13:35
guies 发表于 2020-1-15 13:31

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=417337
liuzhaoyzz>
温馨提示:bcdedit检查winload、wmic、msinfo32、powershell 、C:\Windows\Panther\setupact.log文件检测、注册表 HKLM\System\CurrentControlSet\Control\PEFirmwareType 检测什么的都不靠谱



作者: liuzhaoyzz    时间: 2020-1-15 13:37
楼主是动态编译的吗?用VC哪个版本编译的?这么小!压缩过吗?        
作者: plusv    时间: 2020-1-15 13:40
本帖最后由 plusv 于 2020-1-15 16:45 编辑
liuzhaoyzz 发表于 2020-1-15 13:37
楼主是动态编译的吗?用VC哪个版本编译的?这么小!压缩过吗?

这是汇编,
没压缩过.

可以再小,
懒的搞了.
作者: liuzhaoyzz    时间: 2020-1-15 13:44
本帖最后由 liuzhaoyzz 于 2020-1-15 13:45 编辑
plusv 发表于 2020-1-15 13:40
这是汇编,
没压缩过.

玩c语言的,在论坛已经很牛逼了,懂得汇编的,都是牛人了!


作者: xman00    时间: 2020-1-15 13:51
不错,很强大
作者: fxmmm    时间: 2020-1-15 14:11
在WIN10X64运行闪退
作者: plusv    时间: 2020-1-15 14:14
fxmmm 发表于 2020-1-15 14:11
在WIN10X64运行闪退

我在 VMWare UEFI Windows 10 X64 (PE) 测正常.
作者: sghihor    时间: 2020-1-15 14:14
fxmmm 发表于 2020-1-15 14:11
在WIN10X64运行闪退

拖CMD里
作者: plusv    时间: 2020-1-15 14:23
sghihor 发表于 2020-1-15 14:14
拖CMD里

我在 VMWare UEFI Windows 10 X64 (PE) 拖 CMD 里 测正常.
作者: 新空气    时间: 2020-1-15 14:46
收藏了,可以偷个懒
作者: 某某某啊    时间: 2020-1-15 15:40
感谢分享
作者: 某某某啊    时间: 2020-1-15 15:41
学习了
作者: sd3166    时间: 2020-1-15 16:01
强大。辛苦了老大
作者: nttwqz    时间: 2020-1-15 20:37
本帖最后由 nttwqz 于 2020-1-15 20:41 编辑
plusv 发表于 2020-1-15 13:40
这是汇编,
没压缩过.

汇编。。。
8.1非管理员权限运行测试亦正常

作者: ahxx    时间: 2020-1-15 22:51
感谢分享,已下载
作者: ahxx    时间: 2020-1-15 22:56
win10-1903-x64教育版测试正确
作者: zandrawoo    时间: 2020-1-16 06:09
其实就是 GetFirmwareEnvironmentVariableA 的win32 api,判断一下返回值就完了,用任何语言也是几句了事.
若不想Stdoutput(cmd控制台)输出,可自行改写....

作者: plusv    时间: 2020-1-16 08:21
zandrawoo 发表于 2020-1-16 06:09
其实就是 GetFirmwareEnvironmentVariableA 的win32 api,判断一下返回值就完了,用任何语言也是几句了事.
...

主要功能是用在/批处理/PE/非 GUI.
作者: 创新科技2015    时间: 2020-1-16 08:26
        很给力!
作者: 2011npwjm    时间: 2020-1-16 08:47
谢谢楼主的分享
作者: plusv    时间: 2020-1-16 12:11
更新_减肥 1 KB 版.
作者: nttwqz    时间: 2020-1-16 13:05
plusv 发表于 2020-1-16 12:11
更新_减肥 1 KB 版.

这体积几乎可以忽略不计
作者: liuzhaoyzz    时间: 2020-1-16 13:29
plusv 发表于 2020-1-16 12:11
更新_减肥 1 KB 版.

无论是1KB,还是2KB,windows里面显示都是占用体积4KB。簇是4KB的。

作者: bfgxp    时间: 2020-1-16 13:36
纯64位pe能运行吗?
作者: 指南针    时间: 2020-1-16 13:41
本帖最后由 指南针 于 2020-1-16 13:42 编辑

那么,希望再添加个功能,能否输出当前机器
是否支持EFI启动?
是否是安全启动?

作者: plusv    时间: 2020-1-16 17:41
本帖最后由 plusv 于 2020-1-16 17:43 编辑
bfgxp 发表于 2020-1-16 13:36
纯64位pe能运行吗?

实机 Windows 7 X64 BIOS
VMWare UEFI Windows 10 X64 PE
OK.

应该可以.

作者: plusv    时间: 2020-1-16 17:44
更新 2
将 EXE 段合并,文件减肥
作者: hilsonma    时间: 2020-2-6 18:28
liuzhaoyzz 发表于 2020-1-16 13:29
无论是1KB,还是2KB,windows里面显示都是占用体积4KB。簇是4KB的。

都搞汇编了,估计有这样的习惯,算法优化,体积优化。不管是不是省空间,更何况,小文件多了也会省空间的,你会发现,有的小文件占4KB,有的小文件占0KB。
作者: plusv    时间: 2020-2-15 07:30
更新 :
加 Secure Boot -> Enabled/Disabled/None 三种.
作者: 窄口牛    时间: 2020-2-15 07:37
本帖最后由 窄口牛 于 2020-2-15 08:11 编辑

我来测试下。记错了,我这没有白名单菜单,之前的机器有,就能开启。
作者: adef    时间: 2020-2-15 11:13
plusv 发表于 2020-2-15 07:30
更新 :
加 Secure Boot -> Enabled/Disabled/None 三种.

貌似有点问题。




作者: plusv    时间: 2020-2-15 13:16
adef 发表于 2020-2-15 11:13
貌似有点问题。

感谢测试.

已修正.
作者: plusv    时间: 2020-2-15 13:16
_
更新 :
Bug 修正
作者: adef    时间: 2020-2-15 13:40
plusv 发表于 2020-2-15 13:16
_
更新 :
Bug 修正

貌似还是有点问题


作者: plusv    时间: 2020-2-15 14:17
本帖最后由 plusv 于 2020-2-15 14:25 编辑
adef 发表于 2020-2-15 13:40
貌似还是有点问题

以程序来说,
逻辑性应该是正确的

假如 返回值 = ERROR_INVALID_FUNCTION -> Secure Boot=None
    否则假如 返回值 = ERROR_SUCCESS -> Secure Boot=Enabled
        否则 -> Secure Boot=Disabled

C:\masm32\include\Windows.inc

ERROR_SUCCESS                        equ 0
ERROR_INVALID_FUNCTION               equ 1

不知跟 X86 EXE 有无关系 ?

作者: adef    时间: 2020-2-15 14:59
plusv 发表于 2020-2-15 14:17
以程序来说,
逻辑性应该是正确的

貌似和32位、64位exe没关系,sb32.exe就是32位的,sb64.exe是64位的。

作者: plusv    时间: 2020-2-15 15:29
adef 发表于 2020-2-15 14:59
貌似和32位、64位exe没关系,sb32.exe就是32位的,sb64.exe是64位的。

那就不明白是哪出错了.
作者: wintoflash    时间: 2020-2-15 15:46
确实不能判断是否安全启动


作者: plusv    时间: 2020-2-15 16:14
有没人帮忙测一下

TEST.rar

735 Bytes, 下载次数: 9


作者: adef    时间: 2020-2-15 16:26
plusv 发表于 2020-2-15 16:14
有没人帮忙测一下



作者: plusv    时间: 2020-2-15 16:35
有没人帮忙测一下 Delphi

BootModeCheck_Delphi.rar

11.94 KB, 下载次数: 3


作者: adef    时间: 2020-2-15 16:40
plusv 发表于 2020-2-15 16:35
有没人帮忙测一下 Delphi



作者: plusv    时间: 2020-2-15 17:00
adef 发表于 2020-2-15 16:40

本想是 汇编 问题,
换个 Delphi 测试,
看来不是语言的问题.

本想只是个 Call 很快搞完,
顺手加个 Call,
想不到遇到问题.

有空再来研究,
先放下.

作者: plusv    时间: 2020-2-15 17:03
我 10 余年的老 PC,
VMWare 不能装新版,
因为 CPU 不支持,
所以无法测试 Enabled,
无法 Debug 真麻烦.
作者: 窄口牛    时间: 2020-2-15 17:17
让他们哪位给你个服务器远程用用,我这也只有2003的服务器。
作者: plusv    时间: 2020-2-15 17:23
窄口牛 发表于 2020-2-15 17:17
让他们哪位给你个服务器远程用用,我这也只有2003的服务器。

老 PC 真是福如东海寿如山,
等它寿终正寝才能换.

作者: Anson4    时间: 2020-2-17 11:35
感谢分享!
作者: plusv    时间: 2020-3-5 10:42
本帖最后由 plusv 于 2020-3-5 10:46 编辑

更新 :
由于之前手边没有实机测试,
无法知道是哪出错,
找了实机 Debug 一下,
程序没取得权限的问题,
用汇编麻烦,
改用 Delphi 编程,
在一台小 NoteBook 实机测试过.

需要的自行下载
BootModeCheck_Update_4.rar

请到 1F 下载.


作者: liuzhaoyzz    时间: 2020-3-6 15:31
本帖最后由 liuzhaoyzz 于 2020-3-6 15:45 编辑

     BootModeCheck_Update_4.rar, BIOS/UEFI启动判断是对的,secureboot判断也是对的。WIN7 WIN10还有PE都没问题。  
作者: ksafei    时间: 2020-3-6 16:29
本帖最后由 ksafei 于 2020-3-6 16:34 编辑

顺便用笔记本测试了下新版b4,secureboot是开的win10_LTSC下显示为Disabled,判断不正确
作者: plusv    时间: 2020-3-6 17:45
liuzhaoyzz 发表于 2020-3-6 15:31
BootModeCheck_Update_4.rar, BIOS/UEFI启动判断是对的,secureboot判断也是对的。WIN7 WIN10还有PE ...

我的程序 与 wintoflash 大牛 程序,
共同运行都得到相同的结果.

[求助] 怎么判断当前系统 是否为UEFI安全启动
http://bbs.wuyou.net/forum.php?m ... p;extra=&page=2
作者: plusv    时间: 2020-3-6 17:46
ksafei 发表于 2020-3-6 16:29
顺便用笔记本测试了下新版b4,secureboot是开的win10_LTSC下显示为Disabled,判断不正确

我的程序 与 wintoflash 大牛 程序,
共同运行都得到相同的结果.

[求助] 怎么判断当前系统 是否为UEFI安全启动
http://bbs.wuyou.net/forum.php?m ... p;extra=&page=2

若有少数例外,
那我也无能为力了.
作者: ksafei    时间: 2020-3-6 19:41
plusv 发表于 2020-3-6 17:46
我的程序 与 wintoflash 大牛 程序,
共同运行都得到相同的结果.

可能机器特殊吧,同时运行wintoflash大和楼主的两个小程序显示结果不同:



作者: plusv    时间: 2020-3-6 20:07
本帖最后由 plusv 于 2020-3-6 20:09 编辑
ksafei 发表于 2020-3-6 19:41
可能机器特殊吧,同时运行wintoflash大和楼主的两个小程序显示结果不同:

你是下 BootModeCheck_Update_4.rar 吗 ?

55F liuzhaoyzz :
BootModeCheck_Update_4.rar, BIOS/UEFI启动判断是对的,secureboot判断也是对的。WIN7 WIN10还有PE都没问题。  


作者: ksafei    时间: 2020-3-6 20:21
plusv 发表于 2020-3-6 20:07
你是下 BootModeCheck_Update_4.rar 吗 ?

55F liuzhaoyzz :

是用BootModeCheck_Update_4.rar测试的








作者: plusv    时间: 2020-3-6 20:27
ksafei 发表于 2020-3-6 20:21
是用BootModeCheck_Update_4.rar测试的

那就很奇怪了.

我 与 55F liuzhaoyzz 大 测试都是正确的.
也與 wintoflash 大牛 程序,
共同运行都得到相同的结果.
作者: m68    时间: 2020-4-13 02:05
Win10正常启动,测试正常。如下:
wintoflash 大师的 a.exe 测试输出貌似 不正确。机器是hp win10.



作者: ksafei    时间: 2020-4-13 12:22
m68 发表于 2020-4-13 02:05
Win10正常启动,测试正常。如下:
wintoflash 大师的 a.exe 测试输出貌似 不正确。机器是hp win10.

UEFI Mode      Secure Boot=None   你确认是正确的?
作者: yigeren    时间: 2020-4-13 16:09
在一台联想一体机电脑WIN10系统测试了,好象显示是不正确的
不管是否开启了安全启动,都显示为Secure Boot =None
作者: plusv    时间: 2020-4-13 16:17
yigeren 发表于 2020-4-13 16:09
在一台联想一体机电脑WIN10系统测试了,好象显示是不正确的
不管是否开启了安全启动,都显示为Secure Boot ...

是否下载 BootModeCheck_Update_4.rar ?

为避免用户下错文件,
我将 2 及 3 删除.

作者: yigeren    时间: 2020-4-13 17:32
plusv 发表于 2020-4-13 16:17
是否下载 BootModeCheck_Update_4.rar ?

为避免用户下错文件,

就是下载的这个:BootModeCheck_Update_4.rar
下载这里wintoflash提供的就显示正确
http://wuyou.net/forum.php?mod=v ... page%3D1&page=2
作者: m68    时间: 2020-4-13 18:59
ksafei 发表于 2020-4-13 12:22
UEFI Mode      Secure Boot=None   你确认是正确的?

实机启动测试。 附 双心 大师 bootMode 在DOS管理员窗口运行结果:

作者: 9695    时间: 2020-4-13 19:22
学习了
作者: ksafei    时间: 2020-4-13 19:55
m68 发表于 2020-4-13 18:59
实机启动测试。 附 双心 大师 bootMode 在DOS管理员窗口运行结果:

没怀疑你的测试显示结果,只是疑惑你说 Secure Boot=None 是正确的,请问你电脑是BISO启动还是UEFI启动?安全启动是开、还是关呢?
作者: m68    时间: 2020-4-13 22:56
ksafei 发表于 2020-4-13 19:55
没怀疑你的测试显示结果,只是疑惑你说 Secure Boot=None 是正确的,请问你电脑是BISO启动还是UEFI启动? ...

你说的对。我机器出厂 BIOS安全启动模式 默认是 开启。  

就是 Wintoflash大师的 a.exe 运行显示的“SecureBoot: enable” 若指 BIOS这里的设置, 那就是 对的。

我起初以为“ SecureBoot” 指 windows的安全模式, 引起大家误会了,sorry!
=============================================
BIOS设置  安全启动模式:禁用 (拍照)后,又 截图:


bootmodecheck 一直用的都是第四版。



作者: ksafei    时间: 2020-4-13 23:30
m68 发表于 2020-4-13 22:56
你说的对。我机器出厂 BIOS安全启动模式 默认是 开启。  

就是 Wintoflash大师的 a.exe 运行显示的“S ...

明白了,看来Wintoflash大的程序判断比较稳定可靠,楼主的小程序兼容性还有待提高
作者: plusv    时间: 2020-4-14 08:16
ksafei 发表于 2020-4-13 23:30
明白了,看来Wintoflash大的程序判断比较稳定可靠,楼主的小程序兼容性还有待提高

>楼主的小程序兼容性还有待提高
由于我使用 10 多年老机,
没多的 PC  可测,
先下架.
作者: m68    时间: 2020-4-14 15:19
十分惋惜,其实可以配合测试,增强兼容性。

另: 我机器BIOS设置UEFI模式启动参数的界面有个“操作系统的启动管理员”, 怀疑是它把启动配置环境又封装了……仅是猜测。
作者: 889188    时间: 2020-4-14 15:43
谢谢楼主分享,先Mark一下,完美后再来..嘻嘻
作者: austere    时间: 2020-5-6 19:57
请问下楼主,这个是怎么调用的  加 Secure Boot -> Enabled/Disabled/None 三种.
是运行程序自动反馈吗?  为什么我的没有Secure Boot这个的回显呢? 还是要加参数调用?
作者: plusv    时间: 2020-5-7 23:03
austere 发表于 2020-5-6 19:57
请问下楼主,这个是怎么调用的  加 Secure Boot -> Enabled/Disabled/None 三种.
是运行程序自动反馈吗? ...

73F.

作者: austere    时间: 2020-5-8 21:00
plusv 发表于 2020-5-7 23:03
73F.

看了楼上的图片内容,他的有反馈,我测试了楼主附件中的三个压缩文件,都没有安全启动反馈,是我电脑问题吗?  附上截图~   不知道楼主给我回复的73F.是啥意思,加了任何参数都没有作用~  希望大神解答,另一个版本因为文件名相同替换了,三个版本均试过

作者: plusv    时间: 2020-5-9 14:46
本帖最后由 plusv 于 2020-5-11 01:07 编辑
austere 发表于 2020-5-8 21:00
看了楼上的图片内容,他的有反馈,我测试了楼主附件中的三个压缩文件,都没有安全启动反馈,是我电脑问题 ...

在一台小 NoteBook 实机测试过.

有网友说不准,
没多的 PC 可测,
先下架.

文件保留到 2020/5/10,
2020/5/11 删除.




作者: austere    时间: 2020-5-9 19:15
plusv 发表于 2020-5-9 14:46
在一台小 NoteBook 实机测试过.

有网友说不准,

我PC测试环境多,我可以帮你测试
作者: plusv    时间: 2020-5-9 21:00
本帖最后由 plusv 于 2020-5-11 01:06 编辑
austere 发表于 2020-5-9 19:15
我PC测试环境多,我可以帮你测试

这有另一个版本,
那时一起写的程序没发到论坛,
有兴趣的自行下载.


文件保留到 2020/5/10,
2020/5/11 删除.






作者: 蓝天vv    时间: 2020-5-9 21:13
感谢分享
作者: 2010hook    时间: 2020-5-12 01:35
本帖最后由 2010hook 于 2020-5-12 13:15 编辑

感谢分享!
建议整理输出结果,让等号右边有个空格,简化脚本编写。
“=”符号比较特殊,改为“:”好不好呢?
  1. Boot Mode: UEFI
复制代码

我自己用Hex修改好了。

作者: plusv    时间: 2020-5-12 13:50
2010hook 发表于 2020-5-12 01:35
感谢分享!
建议整理输出结果,让等号右边有个空格,简化脚本编写。
“=”符号比较特殊,改为“:”好不好 ...

这个可用

1. For
2. Set
3. Hex Editor 修改.
作者: 2010hook    时间: 2020-5-17 05:18
plusv 发表于 2020-5-12 13:50

谢谢!
请问,您有没有提权为TrustedInstaller的命令行工具?搜遍了全网都没有好用的。
作者: plusv    时间: 2020-5-17 05:47
2010hook 发表于 2020-5-17 05:18
谢谢!
请问,您有没有提权为TrustedInstaller的命令行工具?搜遍了全网都没有好用的。

报歉,
没有.
作者: huang1987    时间: 2023-11-11 23:50
谢谢分享




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3