无忧启动论坛

标题: 有没有判断MBR/PBR是nt5.x还是nt6.x或以上的命令行工具? [打印本页]

作者: liuzhaoyzz    时间: 2020-5-6 18:18
标题: 有没有判断MBR/PBR是nt5.x还是nt6.x或以上的命令行工具?
本帖最后由 liuzhaoyzz 于 2023-5-17 11:31 编辑

       bootice可以判断磁盘MBR/PBR是nt5.x或者是nt6.x,但是不支持命令行,而且bootice的源代码很多都丢失了,有没有判断MBR/PBR是nt5.x还是nt6.x或以上的命令行工具?

有没有高手能用c/c++写一个?
比如执行MBRPBRtype c:返回MBR:NT6 PBR:NT6这种。


感谢5大的ChkMbrPbr,分享个示例代码:
@echo off
for /f "tokens=2,4 delims=: " %%i in ('ChkMbrPbr_x86.exe -ChkMbrPbr C:') do set "MBR=%%i" & set "PBR=%%j"
echo MBR="%MBR%" PBR="%PBR%"
pause


@echo off
for /f "tokens=2,4 delims=: " %%i in ('ChkMbrPbr_x86_1ʼ.exe  C:') do set "MBR=%%i" & set "PBR=%%j"
echo MBR="%MBR%" PBR="%PBR%"
pause




ChkMbrPbr20200519.rar

1.69 MB, 下载次数: 55, 下载积分: 无忧币 -2

ChkMbrPbr20201120.rar

2.57 MB, 下载次数: 68, 下载积分: 无忧币 -2

ChkMbrPbr_x86-2021-03-31.rar

2.35 MB, 下载次数: 17, 下载积分: 无忧币 -2


作者: wintoflash    时间: 2020-5-6 18:30
linux下有个开源的ms-sys可以看一下。

作者: liuzhaoyzz    时间: 2020-5-6 19:27
本帖最后由 liuzhaoyzz 于 2020-5-6 19:29 编辑
wintoflash 发表于 2020-5-6 18:30
linux下有个开源的ms-sys可以看一下。


为啥牛逼的命令行工具都只有linux版本的?我是个门外汉啊!
作者: 窄口牛    时间: 2020-5-6 20:09
因为win不需要,直接自己验证。
作者: liuzhaoyzz    时间: 2020-5-7 06:53
本帖最后由 liuzhaoyzz 于 2020-5-7 06:54 编辑
527104427 发表于 2020-5-7 00:48
用PECMD做了一个,不知是否你想要的结果:

5大一出手,就知有没有!5大牛逼啊!
我测试了下,MBR/GPT硬盘上运行都不出错,而且判断MBR/PBR很准确,感谢感谢!满足需求,膜拜5大!


5大可否分享源代码?只是好奇。

作者: liuzhaoyzz    时间: 2020-5-7 11:44
本帖最后由 liuzhaoyzz 于 2020-5-7 13:45 编辑
527104427 发表于 2020-5-7 11:09
没什么人玩PECMD,太没意思了。搞不懂为啥这么强大的工具没人用。

       感谢5大分享!pecmd的确很强大,博大精深,学起来太难了,脚本说明太复杂,一般人哪里搞得懂啊。
作者: plusv    时间: 2020-5-7 14:44
527104427 发表于 2020-5-7 11:09
没什么人玩PECMD,太没意思了。搞不懂为啥这么强大的工具没人用。

MPress 容易報毒,
建議用 UPX 比較通用.



PECMD 容易報毒.



作者: liuzhaoyzz    时间: 2020-5-7 14:54
plusv 发表于 2020-5-7 14:44
MPress 容易報毒,
建議用 UPX 比較通用.

       那些弱智的杀软,对于加了个壳的软件都喜欢报病毒,斗不过杀软的,就是用upx,一样会报病毒的,没用的。要想不报病毒,除非利用c语言或者汇编写一个出来。@plusv
作者: plusv    时间: 2020-5-7 23:42
liuzhaoyzz 发表于 2020-5-7 14:54
那些弱智的杀软,对于加了个壳的软件都喜欢报病毒,斗不过杀软的,就是用upx,一样会报病毒的,没 ...

这也不一定,
我遇过 ASM/C/Delphi 没壳也会报毒,
而 AutoIT/易语言/PECMD 则一定报毒.

有趣的是
加壳 -> 报毒
加壳 -> 混淆 -> 不报毒

有趣的是
壳 A -> 报毒
脱壳 A -> 换壳 B -> 不报毒

[分享] HashGenerator文件指纹v3.6中文绿色版(批量获取文件MD5、SHA1、文件大小、修改时间... [复制链接]
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=420124
Microsoft Visual C++ ver 5.0/6.0 -> 报毒

DiskGenius 加肥壳 VMP -> 不报毒




作者: liuzhaoyzz    时间: 2020-5-9 16:27
plusv 发表于 2020-5-7 23:42
这也不一定,
我遇过 ASM/C/Delphi 没壳也会报毒,
而 AutoIT/易语言/PECMD 则一定报毒.

        为了测试ChkMbrPbr_x86.exe会不会被360报毒,我亲自下载了360安全卫士,目的就是为了测试。我从来不用任何杀软。
我不怕病毒,我怕的是发给别人这个程序被杀掉,结果试了下,真的被360认为是病毒,360真的是程序员的噩梦!运行360我好怕怕,我怕我电脑里面的文件被他咔嚓了,我的C盘是RAMOS,重启就恢复,360安装在C盘,重启就恢复了,方便测试。哈哈!
bootice也被认为是病毒,bootice是vc写的啊,为啥也报病毒,upx压缩了吧。

QQ拼音截图20200509161955.png (67.34 KB, 下载次数: 217)

QQ拼音截图20200509161955.png

作者: plusv    时间: 2020-5-9 18:41
本帖最后由 plusv 于 2020-5-9 18:47 编辑
liuzhaoyzz 发表于 2020-5-9 16:27
为了测试ChkMbrPbr_x86.exe会不会被360报毒,我亲自下载了360安全卫士,目的就是为了测试。我从 ...

UPX 壳,通常不会报毒,
我 PC 中的 Symantec EndPoint Protection 对 BootICE 没报毒.

另外对 ChkMbrPbr_x86.exe 做了处理,你试看看
ChkMbrPbr.exe 原版 MPress 壳
ChkMbrPbr_UnPack.exe 脱壳
ChkMbrPbr_ASPack.exe 换 ASPack 壳



ChkMbrPbr_Test.rar

1.14 MB, 下载次数: 44, 下载积分: 无忧币 -2


作者: 窄口牛    时间: 2020-5-9 19:35
bootice不会被报,除非是那种二合一,然后判断不是用的批处理,而是打包成exe的批处理,才会被报毒。
作者: plusv    时间: 2020-5-9 20:18
527104427 发表于 2020-5-9 19:20
要换壳,还是建议用pecmd重新编译。
脱壳之后应该要修正一下资源才好重新加壳吧,也不知道这样折腾来折 ...

PECMD 没在使用,所以没研究.

截图有 3 种运行结果,应该没问题.
作者: plusv    时间: 2020-5-9 20:25
窄口牛 发表于 2020-5-9 19:35
bootice不会被报,除非是那种二合一,然后判断不是用的批处理,而是打包成exe的批处理,才会被报毒。

我通常使用 VirusTotal.

台湾通常使用老外防毒软件,
大陆有没有类似 VirusTotal 网站,
但是是大陆常用或知名的防毒软件扫瞄.


作者: nttwqz    时间: 2020-5-9 20:57
liuzhaoyzz 发表于 2020-5-9 16:27
为了测试ChkMbrPbr_x86.exe会不会被360报毒,我亲自下载了360安全卫士,目的就是为了测试。我从 ...

360让我的技术水平提高到了新的层次:

我已经会用纯批处理写木马好多年 ^_^

作者: liuzhaoyzz    时间: 2020-5-9 22:36
plusv 发表于 2020-5-9 18:41
UPX 壳,通常不会报毒,
我 PC 中的 Symantec EndPoint Protection 对 BootICE 没报毒.


       明天抽空试试,现在手机上的。我估计没啥用,斗不过弱智杀软的吧,即使换壳啥的。我想起来了,我有次帮同事做系统,发给他的bootice就被360咔嚓掉了。我觉得5大说的对,换壳可能会搞坏数据吧。
作者: liuzhaoyzz    时间: 2020-5-9 22:38
本帖最后由 liuzhaoyzz 于 2020-5-9 22:44 编辑
窄口牛 发表于 2020-5-9 19:35
bootice不会被报,除非是那种二合一,然后判断不是用的批处理,而是打包成exe的批处理,才会被报毒。


        bootice真的会被报毒的啊,就是p大原版1.3.4x86。不是什么cmd转exe那种。 不相信的话,你用360安全卫士扫描bootice那个目录看看。
作者: liuzhaoyzz    时间: 2020-5-9 22:41
nttwqz 发表于 2020-5-9 20:57
360让我的技术水平提高到了新的层次:

我已经会用纯批处理写木马好多年 ^_^


       知道360的厉害了吧?毁天灭地!腾讯电脑管家比360安全卫士更加过分!

有些程序运行的时候释放出cmd文件,极容易被360报毒。

作者: liuzhaoyzz    时间: 2020-5-10 10:43
本帖最后由 liuzhaoyzz 于 2020-5-10 10:45 编辑
plusv 发表于 2020-5-9 18:41
UPX 壳,通常不会报毒,
我 PC 中的 Symantec EndPoint Protection 对 BootICE 没报毒.

试了下,你修改的几个文件全部被360报毒。如果发给别人,早就被咔嚓掉了。事实证明,跟弱智的杀软斗,是不可能斗得过的。

发现在64位系统中,360对于32位的程序,只要是加了壳的,就容易报病毒。好弱智。360真的是智商鉴定师。



全部报毒.jpg (80.68 KB, 下载次数: 203)

全部报毒.jpg

作者: plusv    时间: 2020-5-10 13:58
liuzhaoyzz 发表于 2020-5-10 10:43
试了下,你修改的几个文件全部被360报毒。如果发给别人,早就被咔嚓掉了。事实证明,跟弱智的杀软斗,是 ...

Symantec EndPoint Protection 换成 ASPack 壳就不报毒,
而脱壳文件却也报毒.

符合我前面所说的

有趣的是
壳 A -> 报毒
脱壳 A -> 换壳 B -> 不报毒
       
不过我觉的追根究底,
源头还是 AutoIT/易语言/PECMD 则一定报毒.

作者: 窄口牛    时间: 2020-5-11 18:03

我的为啥不报?
多引擎也有数字啊

作者: liuzhaoyzz    时间: 2020-5-11 18:29
窄口牛 发表于 2020-5-11 18:03
我的为啥不报?
多引擎也有数字啊

       我说的是360安全卫士啊,不是在线扫描,在线扫描可靠度还可以。
作者: 窄口牛    时间: 2020-5-12 09:25
360木马查杀扫描日志
开始时间: 2020-5-12 09:23:15
扫描用时: 00:00:40
扫描类型: 自定义扫描
扫描引擎:360云查杀引擎(本地木马库)  360启发式引擎  QEX脚本查杀引擎
扫描文件数: 2
系统关键位置文件: 0
系统内存运行模块: 0
压缩包文件: 0
安全的文件数: 2
发现安全威胁: 0
已处理安全威胁: 0


扫描选项
扫描后自动关机: 否
扫描模式: 速度最快
管理员:是


扫描内容
C:\Users\Administrator\Desktop\BOOTICEx64.exe
C:\Users\Administrator\Desktop\BOOTICEx86.exe


白名单设置


扫描结果
未发现安全威胁

作者: liuzhaoyzz    时间: 2020-5-12 09:37
窄口牛 发表于 2020-5-12 09:25
360木马查杀扫描日志
开始时间: 2020-5-12 09:23:15
扫描用时: 00:00:40

你用的是360杀毒扫描的吗?我说的是360安全卫士啊。
作者: 窄口牛    时间: 2020-5-12 09:38
安全卫士,刚下载安装的,热乎的
作者: liuzhaoyzz    时间: 2020-5-13 07:46
窄口牛 发表于 2020-5-12 09:38
安全卫士,刚下载安装的,热乎的

我想了又想,只有一个原因可以解释这个现象:答主人品较好!
作者: 窄口牛    时间: 2020-5-13 08:48
有可能是我没让它联网所致,只有云病毒库才会报。
作者: microlaf    时间: 2020-5-17 16:21
plusv 发表于 2020-5-7 23:42
这也不一定,
我遇过 ASM/C/Delphi 没壳也会报毒,
而 AutoIT/易语言/PECMD 则一定报毒.
DiskGenius 加肥壳 VMP -> 不报毒

想来diskgenius是交了数字税的
作者: tjxachina    时间: 2020-5-17 22:02
感谢5大分享!pecmd的确很强大,博大精深,学起来太难了,脚本说明太复杂,一般人哪里搞得懂啊。
作者: 江南一根葱    时间: 2020-7-15 19:39
本帖最后由 江南一根葱 于 2020-7-15 19:41 编辑

我是网上抄的,再加自己的主观臆断 delphi代码
  1. //nt5nt6判断函数
  2. function GetOSVersion:String;
  3. var OSVersion:TOSVersionInfo;
  4. begin
  5. OSVersion.dwOSVersionInfoSize:=SizeOf(OSVersion);
  6. GetVersionEx(OSVersion);
  7. case OSVersion.dwPlatformId of
  8. VER_PLATFORM_WIN32_WINDOWS: Result:='WIN';
  9. VER_PLATFORM_WIN32_NT:      Result:='NT';
  10. else                        Result:='WIN32';
  11. end;
  12. Result:=Result+IntToStr(OSVersion.dwMajorVersion)+'.'+IntToStr(OSVersion.dwMinorVersion);
  13. end;
复制代码
  1. //调用函数--(此处省略了一些判断uefi的函数声明和过程)
复制代码
GetFirmwareEnvironmentVariableA('','{00000000-0000-0000-0000-000000000000}', nil,0);
if (GetLastError = ERROR_INVALID_FUNCTION) and (ntver <> ('NT5.0')) and (ntver <> ('NT5.1')) then
begin
xx.Lines.Add('当前启动环境:LEGACY BIOS 6.X') ;
legacybios.checked :=true;
rbuefi.checked :=false;
rbnt5.checked :=false;
end
else
if (ntver = ('NT5.0')) or (ntver = ('NT5.1')) then
begin
xx.Lines.Add('当前启动环境:LEGACY BIOS 5.X');
rbnt5.checked :=true;
legacybios.checked :=false;
rbuefi.checked :=false;
end


作者: 807979023    时间: 2020-7-24 10:10
本帖最后由 807979023 于 2020-7-24 10:16 编辑

五大分享的工具没看见,哪位上传1个?

作者: liuzhaoyzz    时间: 2020-11-17 11:02
江南一根葱 发表于 2020-7-15 19:39
我是网上抄的,再加自己的主观臆断 delphi代码
GetFirmwareEnvironmentVariableA('','{00000000-0000-0000 ...

        不好意思,这么久了没注意到你的回复!
能否编译为exe文件?分享上来,谢谢!要静态编译哦!

作者: liuzhaoyzz    时间: 2020-11-17 11:22
807979023 发表于 2020-7-24 10:10
五大分享的工具没看见,哪位上传1个?

        不好意思,才看到你的帖子,我在一楼分享了5大的程序。
作者: 807979023    时间: 2020-11-17 13:08
liuzhaoyzz 发表于 2020-11-17 11:22
不好意思,才看到你的帖子,我在一楼分享了5大的程序。

谢谢!
作者: liuzhaoyzz    时间: 2020-12-2 14:38
本帖最后由 liuzhaoyzz 于 2020-12-4 08:10 编辑

        有没有大神用c/c++写一个判断MBR/PBR是nt5.x还是nt6.x或以上的命令行工具?5大pecmd写的,没有加壳的版本,一会被360安全卫士咔嚓掉,mdyblog大神有免杀版pecmd,用这个免杀版pecmd内嵌脚本会不会好点?360一会又不报风险,我自己的确不用360(仅仅用于测试),但是发给别人就被咔嚓掉很郁闷。       一楼有5大pecmd源代码。另外5大能否解释下这些代码的原理?从代码看不懂原理。

ChkMbrPbr原理
1、GETF \\.\PhysicalDrive%&disk%,0#440,&BootCode读取磁盘0扇区440字节长度到变量bootcode
2、CODE *,NTLDR,**-ANSI,&NT5PbrStr把NTLDR用ANSI编码保存在变量NT5PbrStr中。
3、GETF -find %&drv%,0#512#5#0#1#512,&NT5PbrRet,*&NT5PbrStr
读取磁盘0扇区512字节→5字节?偏移0→1号块?偏移512,查找NT5PbrStr(即NTLDR),查找结果保存在到变量NT5PbrRet。
[大位置[#大长度[#子长度[#子偏移[#块大小[#块内偏移]]]]]],
4、如果没找到NTLDR,就查找BOOTMGR,
GETF -find %&drv%,0#512#7#0#1#512,&NT6PbrRet,*&NT6PbrStr
读取磁盘0扇区512字节→7字节?偏移0→1号块?偏移512,查找NT6PbrStr(即BOOTMGR),查找结果保存在到变量NT6PbrRet。
5、查找NT5Mbr,NT6Mbr变量,如果找到就分别赋值为PrintMBR=MBR:NT5,PrintMBR=MBR:NT6
6、查找NT5PbrRet,NT6PbrRet变量,如果找到就分别赋值为PrintPBR=PBR:NT5,PrintPBR=PBR:NT6




作者: liuzhaoyzz    时间: 2021-2-26 14:56
本帖最后由 liuzhaoyzz 于 2021-2-26 15:01 编辑
527104427 发表于 2021-2-26 14:28
咦,我怎么没发现这里还有一个提问!

你这个解释很详细,很棒,就是这个意思。

这个解释没有必要了,当时想要让人用c/c++之类的语言实现的原因是,pecmd总是报病毒,360的装机率很高的,pecmd写的程序不可能只给我们这样子的人使用,还需要给很多其他的人使用,如果被杀掉很尴尬,而且对于批处理这种流程化的脚本来说,会影响后续的处理判断。后来发现了用原版没有精简的pecmd_cli原始版本为蓝本,内嵌脚本编译之后,360就不报病毒了,所以没有必要再重新用c/c++写程序了。




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