无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: liuzhaoyzz
打印 上一主题 下一主题

请问下有没有办法用批处理或者命令行小程序确定系统引导分区?

    [复制链接]
164#
 楼主| 发表于 2021-1-10 10:01:56 | 只看该作者
本帖最后由 liuzhaoyzz 于 2021-1-10 15:25 编辑
CodeHz 发表于 2021-1-9 23:21
那么大概就是这个了,有问题明天修(
附上32位/64位兼容batch(主要提供给仅64位支持的pe用)

感谢大神,大神辛苦了!
早上起来测试了几个环境,应该没问题,晚点详细测试下,现在有事要出去。
您的批处理判断操作系统位数有问题,某些环境下会出错。

smart.rar

570 Bytes, 下载次数: 13, 下载积分: 无忧币 -2

回复

使用道具 举报

163#
发表于 2021-1-9 23:21:31 | 只看该作者
本帖最后由 CodeHz 于 2021-1-9 23:24 编辑

smart.zip (9.26 KB, 下载次数: 17)
那么大概就是这个了,有问题明天修(
附上32位/64位兼容batch(主要提供给仅64位支持的pe用)
  1. @echo off
  2. setlocal enableextensions enabledelayedexpansion
  3. 2>nul call :set_arch_%PROCESSOR_ARCHITECTURE%
  4. if errorlevel 1 (goto :unsupported_arch) else (goto :start)
  5. exit /b
  6. :set_arch_AMD64
  7. set ARCH=x86_64
  8. exit /b
  9. :set_arch_x86
  10. set ARCH=i386
  11. exit /b
  12. :unsupported_arch
  13. echo Unsupported architecture: %PROCESSOR_ARCHITECTURE%
  14. exit /b
  15. :start
  16. smartmountfirmware-%ARCH% %*
  17. endlocal
复制代码

用法:smartmountfirmware mount即可获得一个盘符smartmountfirmware unmount即可取消挂载
smartmountfirmware dump用于调试目的

不想要调试输出可以用 2<nul smartmountfirmware mount 的方式去掉
也可以在批处理里拿到输出
for /f usebackq %%i in (`2^<nul smartmountfirmware mount`) do set DRIVE=%%i
回复

使用道具 举报

162#
 楼主| 发表于 2021-1-9 22:07:59 | 只看该作者
CodeHz 发表于 2021-1-9 21:54
我记得64位还是要保留一下的,因为有的pe只有64位,没有WoW支持,这样32位的直接就运行不了了(
所以最起 ...

        32位64位如果都有最好了。一般情况下,还是32位的通用性更好。
回复

使用道具 举报

161#
 楼主| 发表于 2021-1-9 21:58:49 | 只看该作者
detectfirmware-i386 2>nul 这个( 用 for in 就能提取了
如果提取不到呢?批处理再找空盘,然后再调用mountfirmware-i386.exe Z:?
就不能简单点吗?找空盘、调用mountfirmware-i386.exe Z:都可以放在程序内部一起搞定即可。
我只是要个盘符啊!就只要一个字母而已,难道就这么难吗?

回复

使用道具 举报

160#
发表于 2021-1-9 21:54:12 | 只看该作者
我记得64位还是要保留一下的,因为有的pe只有64位,没有WoW支持,这样32位的直接就运行不了了(
所以最起码还得加个批处理
回复

使用道具 举报

159#
 楼主| 发表于 2021-1-9 21:50:29 | 只看该作者
527104427 发表于 2021-1-9 21:36
detectfirmware-i386 2>nul  就只返回盘符,没有就为空

不是这个意思。。。mountfirmware-i386.exe 2>nul没有返回有用的信息。
[?] usage: mountfirmware-i386.exe ?: [/D]
回复

使用道具 举报

158#
 楼主| 发表于 2021-1-9 21:29:32 | 只看该作者
本帖最后由 liuzhaoyzz 于 2021-1-9 21:32 编辑
CodeHz 发表于 2021-1-9 20:20
所以我觉定加一个程序检测启动磁盘(特殊字符的驱动器不会被检测到)
用法见图,批处理可以通过判断erro ...

恳请大神把程序搞成三合一的。否则批处理就需要做大量的工作:
1、执行detectfirmware-i386→ devicename: \Device\HarddiskVolume1, devicename: \Device\HarddiskVolume1→看到后面 devicename: \Device\HarddiskVolume1没有盘符。
2、遍历26个字母查找空盘,以Z:为例。
3、执行mountfirmware-i386.exe Z:把启动分区盘符赋值为Z:。
4、执行mountfirmware-i386.exe Z: /D恢复现场。
第1步里面,批处理不容易判断\Device\HarddiskVolume1在后面有没有盘符,这个是变量。detectfirmware-i386也没有给个关键字让批处理便于搜索\Device\HarddiskVolume1倒底有没有盘符
第1步~第3步完全可以在程序内部搞定,然后一个命令就足够了。但是如果让批处理搞定,都是一片片的代码,太复杂了!友情大神看下nttwqz和5大的程序返回值,只是需要一个盘符,非常简单啊。当然您的程序里面中间返回值非常好,建议保留。







回复

使用道具 举报

157#
发表于 2021-1-9 21:04:02 | 只看该作者
liuzhaoyzz 发表于 2021-1-9 20:55
大神,是不是把问题搞得太复杂了。你把大部分的工作都交给了批处理了。
能不能把这三个程序合成一个程序 ...

因为分开好修改啊(
比如需求变了,不又得重写一个了吗(
然后现在不是测试能不能用吗,如果都写在一起,其中几个步骤出错了,又得重新写一个对吧*
回复

使用道具 举报

156#
发表于 2021-1-9 21:01:31 | 只看该作者
527104427 发表于 2021-1-9 20:56
请教一下这个编译环境的用法:
我是先执行了install.bat,再把detectfirmware.tjs拷到同目录,
这时无 ...

其实不用安装,只需要复制tjs.exe的路径(全部文件解压后的),然后在那几个tjs文件的目录下(cd进去)执行 <tjs的路径> xxx.tjs 即可编译运行。。
(因为install的方法只能同时用一个架构的,双击运行的时候工作目录是不对的,我这里刚好引用到了当前目录的文件,所以就出错了)
回复

使用道具 举报

155#
 楼主| 发表于 2021-1-9 20:55:43 | 只看该作者
本帖最后由 liuzhaoyzz 于 2021-1-9 21:04 编辑
CodeHz 发表于 2021-1-9 20:20
所以我觉定加一个程序检测启动磁盘(特殊字符的驱动器不会被检测到)
用法见图,批处理可以通过判断erro ...

大神,是不是把问题搞得太复杂了。你把大部分的工作都交给了批处理了。
能不能把这三个程序合成一个程序findbootdevice?
1、看下firmware-i386.exe→ FirmwareBootDevice→ [+] mountpoints→[-] mount point: \DosDevices\是否是空白的,如果\DosDevices\不是空白,比如G:,直接作为findbootdevice的返回值G:告知用户即可,任务完成。
2、如果\DosDevices\是空白,在26个字母中查找空白盘符,以z:为例,用mountfirmware z:挂载启动分区,并用Z:作为findbootdevice的返回值告知用户即可。26个字母盘符已经足够用了啊,谁能有26个分区盘符?
3、用户侧可以用findbootdevice z: /D这样子的命令删除启动盘符,恢复现场,当然用户侧不删除启动盘符也行,看他自己的需求。
上面的1 2 3您的程序里面都已经实现了啊,为啥要把大量的工作交给批处理?
我想要的是执行
1、findbootdevice,返回g:或者z:
2、findbootdevice z: /D恢复原状



回复

使用道具 举报

154#
发表于 2021-1-9 20:20:28 | 只看该作者
liuzhaoyzz 发表于 2021-1-9 19:54
explorer自身不能提权挺麻烦的,论坛里面有采用第三方的文件管理器解决问题的,有点绕弯,但 ...

所以我觉定加一个程序检测启动磁盘(特殊字符的驱动器不会被检测到)
用法见图,批处理可以通过判断errorlevel确定有没有找到,(我不确定能不能在各种不同情况下工作,请测试一遍,不行的话大概就检测不了了,这里面情况比较复杂,我选择了一个理论上能用的方法)


boot.zip (42.24 KB, 下载次数: 12)

回复

使用道具 举报

153#
 楼主| 发表于 2021-1-9 19:54:54 来自手机 | 只看该作者
本帖最后由 liuzhaoyzz 于 2021-1-9 19:56 编辑
CodeHz 发表于 2021-1-9 19:28
主要是explorer自身不能提权,nsudo也不行(结束explorer的方法在我这也没法提权,它仍然会自己降低到普 ...


        
explorer自身不能提权挺麻烦的,论坛里面有采用第三方的文件管理器解决问题的,有点绕弯,但是也是没有办法的办法。

其实我的需求很简单,就是需要返回启动分区的盘符,无论这个启动分区是MBR/GPT,无论分区格式是FAT32/NTFS/ESP,程序只需要告诉我这个启动分区的盘符倒底是什么就行了,如果原来有盘符就直接告诉我,如果没有盘符就分配个盘符告诉我,并且提供个参数卸载程序分配的盘符,用于恢复现场,原来没有分配盘符的删除盘符之后恢复用户原来的原状。当然你的两个程序里面输出的结果很多很详细,这是非常好的!用于定位问题很方便。
回复

使用道具 举报

152#
发表于 2021-1-9 19:28:46 | 只看该作者
liuzhaoyzz 发表于 2021-1-9 19:21
大神能否回复下我在楼上的第二个问题,我这边没有普通管理员的测试环境,我这边读写都正常。Nsud ...

主要是explorer自身不能提权,nsudo也不行(结束explorer的方法在我这也没法提权,它仍然会自己降低到普通用户的权限)

重复挂载这个我到时候看看,我觉得应该是可以解决的)
回复

使用道具 举报

151#
 楼主| 发表于 2021-1-9 19:21:17 | 只看该作者
本帖最后由 liuzhaoyzz 于 2021-1-9 19:23 编辑
CodeHz 发表于 2021-1-9 18:49
是的,我懒得写大小写转换了,反正就一个参数)

        大神能否回复下我在楼上的第二个问题,我这边没有普通管理员的测试环境,我这边读写都正常。Nsudo能否搞定mountfirmware挂载ESP分区后的的写入权限问题?以管理员身份运行mountfirmware.exe z:能否搞定ESP分区的写入权限问题?

另外,mountfirmware.exe能否直接规避盘符重复挂载的问题,比如说如果启动分区已经有了一个盘符G:了,用户已经很明确地知道这个G:盘就是启动盘,mountfirmware.exe z:会让用户迷惑,引导分区不是G:盘吗,怎么变成了Z:盘了?这个问题用批处理结合firmware-i386.exe→ FirmwareBootDevice→ [+] mountpoints→[-] mount point: \DosDevices\是否是空白的,可以规避,但我总感觉如果mountfirmware.exe提前判断下,更好。
回复

使用道具 举报

150#
发表于 2021-1-9 18:49:24 | 只看该作者
liuzhaoyzz 发表于 2021-1-9 18:45
mountfirmware z: /D原来必须用大写的字母D才行啊?小写的号不行。

[+] open Registry

是的,我懒得写大小写转换了,反正就一个参数)

点评

大神能否回复下我在楼上的第二个问题,我这边没有普通管理员的测试环境,我这边读写都正常。Nsudo能否搞定mountfirmware挂载ESP分区后的的写入权限问题?以管理员身份运行mountfirmware.exe z:能否搞定ESP分  详情 回复 发表于 2021-1-9 19:21
回复

使用道具 举报

149#
 楼主| 发表于 2021-1-9 18:45:15 | 只看该作者
本帖最后由 liuzhaoyzz 于 2021-1-9 18:52 编辑
CodeHz 发表于 2021-1-9 18:36
mountfirmware z: /D 就是卸载了 (注意大小写
而且你可以通过%errorlevel% 判断执行结果,0就是挂载(或 ...

mountfirmware z: /D原来必须用大写的字母D才行啊?小写的号不行。

[+] open Registry
[+] query FirmwareBootDevice
[-] arcname: multi(0)disk(0)rdisk(0)partition(1)
[+] resolve arcname
[-] devicename: \Device\Harddisk2\Partition1
[-] invalid argument: /d



手动查看这个问题,正常系统是没法没法看到的(理论上应该是可以找到已经挂载的盘符的,但是我这边研究了下好像不同挂载方式的造成的结果都不太一样,适配起来挺麻烦的。。。
我这边的电脑都是以内置超级管理员身份登陆的,用mountfirmware z:命令分配的盘符,读写没有任何问题,根本不需要重启explorer.exe(其他人可能存在读写权限的问题),内置超级管理员身份和administrators组的管理员还是有很大的区别的。这个是微软explorer自动降权的限制,要想突破这个限制,估计只有提权了吧,我不知道Nsudo能否搞定这个,这个似乎不是mountfirmware应该考虑的,如果能够搞定当然最好;如果比较难搞,或者吃力不讨好,不如交给用户,让用于右击以管理员身份运行mountfirmware.exe应该就可以解决问题吧?还是必须要重启下explorer?

点评

是的,我懒得写大小写转换了,反正就一个参数)  详情 回复 发表于 2021-1-9 18:49
回复

使用道具 举报

148#
发表于 2021-1-9 18:36:08 | 只看该作者
本帖最后由 CodeHz 于 2021-1-9 18:43 编辑
liuzhaoyzz 发表于 2021-1-9 18:27
1、我还是更喜欢用普通A-Z:字母作为盘符,因为这样子的话,可以在资源管理器中看到盘符,检查文件是否拷 ...

mountfirmware z: /D 就是卸载了 (注意大小写
而且你可以通过%errorlevel% 判断执行结果,0就是挂载(或者卸载)成功,1就是失败,其他数字就是别的奇怪的错误
我建议是在脚本里用!:这种,确保不会冲突(
然后手动挂载的时候再选一个盘符搞就可以了
手动查看这个问题,正常系统是没法没法看到的(理论上应该是可以找到已经挂载的盘符的,但是我这边研究了下好像不同挂载方式的造成的结果都不太一样,适配起来挺麻烦的。。。

点评

mountfirmware z: /D原来必须用大写的字母D才行啊?小写的号不行。 [+] open Registry [+] query FirmwareBootDevice [-] arcname: multi(0)disk(0)rdisk(0)partition(1) [+] resolve arcname [-] devic  详情 回复 发表于 2021-1-9 18:45
回复

使用道具 举报

147#
 楼主| 发表于 2021-1-9 18:27:24 | 只看该作者
本帖最后由 liuzhaoyzz 于 2021-1-9 18:33 编辑
CodeHz 发表于 2021-1-9 17:33
不用判断啊,你用一些正常方式弄不出的盘符就好了,反正就是复制文件,copy什么的都支持直接复制到!:这样 ...

1、我还是更喜欢用普通A-Z:字母作为盘符,因为这样子的话,可以在资源管理器中看到盘符,检查文件是否拷贝进去,也可以用bootice打开其中的BCD看下文件是否正常,如果你不愿意判断,批处理判断盘符是否存在,也是很简单的事情。
2、现在的用法,是不是直接用mountfirmware z:分配个未占用的盘符,然后这个盘符就是启动盘盘符?这个mountfirmware z:能否提供个卸载盘符的参数?
(1)如果是UEFI从某个ESP分区启动的,需要先用mountfirmware z:分配个盘符,这个返回值就是Z:盘,如果ESP分区之前用bootice或者findesp分配了盘符G:,Z:盘和G:盘是重复的,会造成迷惑,而且findesp -unmount没法卸载mountfirmware z:分配的这个Z:盘的盘符。如果提供了卸载mountfirmware 分配盘符就不会有困扰了。
(2)如果是BIOS/UEFI从某个FAT32分区启动的,返回值可能是系统提前分配好的G:盘;也可能根本就没有盘符,用mountfirmware z:分配个盘符,拷贝文件没问题,问题是Z:盘和G:盘是重复的,内容是完全一样的,会造成迷惑,如果提供了卸载mountfirmware 分配盘符就不会有困扰了。为什么不用!:这样子的特殊符号作为盘符,上面一条说过了,需要在我的电脑里面查看文件。




点评

mountfirmware z: /d 就是卸载了 而且你可以通过%errorlevel% 判断执行结果,0就是挂载(或者卸载)成功,1就是失败,其他数字就是别的奇怪的错误 我建议是在脚本里用!:这种,确保不会冲突( 然后手动挂载的时候  详情 回复 发表于 2021-1-9 18:36
回复

使用道具 举报

146#
发表于 2021-1-9 17:33:36 来自手机 | 只看该作者
liuzhaoyzz 发表于 2021-1-9 17:12
mountfirmware-i386 z:确实可行,这个程序很不错,如果能够判断下盘符是否存在更好。
想请问下,mountfi ...

不用判断啊,你用一些正常方式弄不出的盘符就好了,反正就是复制文件,copy什么的都支持直接复制到!:这样的分区
显示不出是因为这个方法创建的不是持久挂载,重启就没了的(和subst一样

点评

1、我还是更喜欢用普通A-Z:字母作为盘符,因为这样子的话,可以在资源管理器中看到盘符,检查文件是否拷贝进去,也可以用bootice打开其中的BCD看下文件是否正常,如果你不愿意判断,批处理判断盘符是否存在,也是很  详情 回复 发表于 2021-1-9 18:27
回复

使用道具 举报

145#
 楼主| 发表于 2021-1-9 17:12:46 | 只看该作者
CodeHz 发表于 2021-1-9 15:39
于是我也试图使用mountvol的方法挂载esp分区,确实可以挂载成功

我也同时尝试了非特权挂载,发现挂载是 ...

mountfirmware-i386 z:确实可行,这个程序很不错,如果能够判断下盘符是否存在更好。
想请问下,mountfirmware-i386 z:之后,为什么firmware-i386.exe→ FirmwareBootDevice→ [+] mountpoints还是空白的?

点评

不用判断啊,你用一些正常方式弄不出的盘符就好了,反正就是复制文件,copy什么的都支持直接复制到!:这样的分区 显示不出是因为这个方法创建的不是持久挂载,重启就没了的(和subst一样  详情 回复 发表于 2021-1-9 17:33
回复

使用道具 举报

144#
发表于 2021-1-9 15:39:30 | 只看该作者
于是我也试图使用mountvol的方法挂载esp分区,确实可以挂载成功

我也同时尝试了非特权挂载,发现挂载是没问题的,唯一的问题是explorer还是访问不到(


源码和构建出来的东西在这里
boot.zip (36.96 KB, 下载次数: 8)

小提示:为了防止名字冲突,你可以使用26个字母以外的符号作为名字,只要满足 X: 的格式,冒号不能省略(我也没做检查),最多一个字符(但是可以为特殊字符包括!#%这些和其他unicode符号),测试中cmd和其他程序都能正常访问,explorer就算了)

点评

mountfirmware-i386 z:确实可行,这个程序很不错,如果能够判断下盘符是否存在更好。 想请问下,mountfirmware-i386 z:之后,为什么firmware-i386.exe→ FirmwareBootDevice→ [+] mountpoints还是空白的?  详情 回复 发表于 2021-1-9 17:12
回复

使用道具 举报

143#
发表于 2021-1-9 13:24:31 | 只看该作者
liuzhaoyzz 发表于 2021-1-9 11:35
你那边mountvol z: /s之后,对于ESP分区,firmware.exe→FirmwareBootDevice→mountpoints下面 ...

没有,看了一眼,mountvol挂载esp分区用到的是另一个方法,不走mountmgr的流程。。。
回复

使用道具 举报

142#
 楼主| 发表于 2021-1-9 11:35:47 来自手机 | 只看该作者
本帖最后由 liuzhaoyzz 于 2021-1-9 11:37 编辑
CodeHz 发表于 2021-1-9 11:30
只是不能用explorer复制文件而已,反正提权以后的批处理是可以访问的)


        你那边mountvol z: /s之后,对于ESP分区,firmware.exe→FirmwareBootDevice→mountpoints下面有盘符了吗?

点评

没有,看了一眼,mountvol挂载esp分区用到的是另一个方法,不走mountmgr的流程。。。  详情 回复 发表于 2021-1-9 13:24
回复

使用道具 举报

141#
发表于 2021-1-9 11:30:42 来自手机 | 只看该作者
liuzhaoyzz 发表于 2021-1-9 10:49
权限问题如果你能够解决当然是最好的了,如果不能解决,给ESP分配个盘符也行,剩下的问题再想办 ...

只是不能用explorer复制文件而已,反正提权以后的批处理是可以访问的)

点评

你那边mountvol z: /s之后,firmware.exe,mountpoints下面有盘符了吗?  详情 回复 发表于 2021-1-9 11:35
回复

使用道具 举报

140#
 楼主| 发表于 2021-1-9 10:49:37 来自手机 | 只看该作者
CodeHz 发表于 2021-1-9 09:51
另外看了一眼文档,好像是可以在没有guid挂载点的情况下强行挂载的,不过我看还是会受到mountvol一样的管理 ...

        权限问题如果你能够解决当然是最好的了,如果不能解决,给ESP分配个盘符也行,剩下的问题再想办法吧。

点评

只是不能用explorer复制文件而已,反正提权以后的批处理是可以访问的)  详情 回复 发表于 2021-1-9 11:30
回复

使用道具 举报

139#
 楼主| 发表于 2021-1-9 10:48:12 来自手机 | 只看该作者
本帖最后由 liuzhaoyzz 于 2021-1-9 10:55 编辑
CodeHz 发表于 2021-1-9 09:41
所以是 mountvol z: /s 成功了也没有挂载点吗,这就有点奇怪了。。有没有可以复现的镜像(另外这东西是不 ...


       我确认了,mountvol z: /s 成功了没有挂载点,我的电脑里面已经有ESP的盘符了 。

重现问题的镜像?我搞了个GPT分区的物理硬盘,从这个物理硬盘的ESP分区bootmgfw.efi引导→BCD→加载某个WIN10.VHD以UEFI启动WIN10,你只要有个GPT分区的硬盘,外加随便安装个系统到vhd即可,不需要我的vhd啊。

或者从虚拟机里面应该也能够重现环境吧。虚拟机里面用GPT分区,然后装个系统到VHD中。
回复

使用道具 举报

138#
发表于 2021-1-9 09:51:32 | 只看该作者
另外看了一眼文档,好像是可以在没有guid挂载点的情况下强行挂载的,不过我看还是会受到mountvol一样的管理员权限限定问题(((esp分区的保护似乎硬编码在内核里https://docs.microsoft.com/en-us ... untmgr_create_point

点评

权限问题如果你能够解决当然是最好的了,如果不能解决,给ESP分配个盘符也行,剩下的问题再想办法吧。  详情 回复 发表于 2021-1-9 10:49
回复

使用道具 举报

137#
发表于 2021-1-9 09:41:55 来自手机 | 只看该作者
liuzhaoyzz 发表于 2021-1-9 09:19
早上起来看到了这个消息,CodeHz大神幸苦了!
结果是对的,不过有点小问题。
对于从ESP分区UEFI启动WIN ...

所以是 mountvol z: /s 成功了也没有挂载点吗,这就有点奇怪了。。有没有可以复现的镜像(另外这东西是不依赖bcdedit的,基本上是个win就能跑

点评

我确认了,mountvol z: /s 成功了没有挂载点,我的电脑里面已经有ESP的盘符了 。  详情 回复 发表于 2021-1-9 10:48
回复

使用道具 举报

136#
 楼主| 发表于 2021-1-9 09:19:09 | 只看该作者
本帖最后由 liuzhaoyzz 于 2021-1-9 09:38 编辑
CodeHz 发表于 2021-1-8 22:58
你看楼主在用我的程序时的输出,可以看出这里并没有对应关系
我使用的方法是读取Nt内核对象\ArcName\mul ...

早上起来看到了这个消息,CodeHz大神幸苦了!
结果是对的,不过有点小问题。
对于从ESP分区UEFI启动WIN10的情况,firmware-i386.exe程序没有自动挂载盘符,如果我用bootice或者findESP程序挂载个盘符,或者用微软的mountvol z: /s ,firmware-i386.exe还是没有mount,mountpoints下面是空的。

我要向这个启动的ESP分区拷贝文件,必须要给他一个盘符。这个ESP是用于启动的ESP,不是其他硬盘的ESP,是特定的ESP分区。



另外想请问下,这个firmware-i386.exe不依赖于bcdedit吧?如果bcdedit不能运行的情况,firmware-i386.exe能否正常出结果?是否有管理员要求?能否通杀XP WIN7 8 10,我不想事先先判断操作系统版本,再运行firmware-i386.exe。

esp没有挂载.jpg (43.08 KB, 下载次数: 130)

esp没有挂载.jpg

点评

所以是 mountvol z: /s 成功了也没有挂载点吗,这就有点奇怪了。。有没有可以复现的镜像(  详情 回复 发表于 2021-1-9 09:41
回复

使用道具 举报

135#
发表于 2021-1-8 23:28:57 来自手机 | 只看该作者
527104427 发表于 2021-1-8 23:04
到底还是得用API,多谢解答。

有一说一,其实只要用少数几个nt开头的api就能拿到大量系统信息,建议把NtQuerySystemInformation解析好后加入pecmd(
再加上Nt对象的操作函数(就是前面截图所示的winobj.exe看到的),也可以获得大量系统信息,主要这里就是枚举对象和解析符号链接

点评

我试着跟M大提一下,看他有无兴趣  详情 回复 发表于 2021-1-8 23:48
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-5-23 17:00

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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