[原创]调用 api 实例(检索磁盘分区表中每个条目的扩展信息)(drive_layout_information_ex)
2023-7-8 984

 

 

此处内容隐藏,回复后可见!立即回复  回复后请刷新页面!刷新

最后于 2023-7-17 被527104427编辑 ,原因:
收藏
点赞 1
道具卡
分享
https://www.123pan.com/s/NflRVv-Cm5Sh
最新回复 (24)
  • avatar image
    anson4 2023-8-6

    感谢分享!

    单机计算
  • avatar image
    anson4 2023-8-6

    我近日在尝试检索Win10系统驱动库中的第三方驱动时,遇到了一个困难,请 5 大出手解救一下。
    具体需求: 解读驱动相关的注册表值“Version”的数据,转换成可读的字符串,拆分出该数据包含的驱动类名、版本号和日期。

    有网友说过读取改注册表值的数据后,用 OLE32.DLL 的某个 API 可以处理。

    注册表值“Version”的位置举例如下图:

    image.webp

    单机计算
  • avatar image
    爱心会员VIP会员
    527104427 2023-8-6
    楼主   4
    anson4 我近日在尝试检索Win10系统驱动库中的第三方驱动时,遇到了一个困难,请 5 大出手解救一下。具体需求: 解读驱动相关的注册表值“Version”的数据,转换成 ...

    具体哪个api能问出来吗?不然那么多怎么找

    https://www.123pan.com/s/NflRVv-Cm5Sh
  • avatar image
    anson4 2023-8-6

    问到了,是 StringFromCLSID

    单机计算
  • avatar image
    123 2023-8-6

    感谢分享

    123
  • avatar image
    anson4 2023-8-6

    我不会操作,但了解到以下信息:

    注册表值 Version 的数据读取出来的 16 进制数据,拆分成 6 段,每段 8 个字节。

    第 5 段是版本,第 4 段是日期,第 2 第 3 段是类名,类名可以用 OLE32.DLL 的 StringFromCLSID 转换,第 2 第 6 段不知道是什么。

    单机计算
  • avatar image
    anson4 2023-8-6

    驱动的类名比如是 HIDClass

    单机计算
  • avatar image
    anson4 2023-8-6

    API不会用,直接PECMD硬干,最后剩下日期没转换成功。

    单机计算
  • avatar image
    爱心会员VIP会员
    527104427 2023-8-6
    楼主   10
    anson4 驱动的类名比如是 HIDClass

    1.webp

     

    set^ EnviMode=1
    set^ ForceLocal=1
    set$ nl=0d 0a
    
    regi --init @HKEY_LOCAL_MACHINE\SYSTEM\DriverDatabase\DriverPackages\usbstor.inf_amd64_a7a83e505860ff91\\Version,a
    set$# b=%a%
    getf# -bin b,8#16,c
    set$# d=*8 0
    call $--qd --ret:ret Ole32.dll,StringFromCLSID,*c,*d
    set?ptr d=e
    set-make f=%e%
    set?longlong b=g:(3*8)
    date *utc:%g% h
    mess.
    \ %ret%
    \%nl%%f%
    \%nl%%h%
    https://www.123pan.com/s/NflRVv-Cm5Sh
  • avatar image
    爱心会员VIP会员
    527104427 2023-8-6
    楼主   11
    anson4 API不会用,直接PECMD硬干,最后剩下日期没转换成功。

    再来个版本号:

     

    2.webp

     

     

    set^ EnviMode=1
    set^ ForceLocal=1
    set$ nl=0d 0a
    
    regi --init @HKEY_LOCAL_MACHINE\SYSTEM\DriverDatabase\DriverPackages\usbstor.inf_amd64_a7a83e505860ff91\\Version,a
    set$# b=%a%
    getf# -bin b,8#16,c
    set$# d=*8 0
    call $--qd --ret:ret Ole32.dll,StringFromCLSID,*c,*d
    set?ptr d=e
    set-make f=%e%
    set?longlong b=g:(3*8)
    date *utc:%g% h
    set?wchar b=i:(4*8+6)
    set?wchar b=j:(4*8+4)
    set?wchar b=k:(4*8+2)
    set?wchar b=l:(4*8+0)
    calc i=%i%
    calc j=%j%
    calc k=%k%
    calc l=%l%
    mess.
    \ %ret%
    \%nl%%f%
    \%nl%%h%
    \%nl%%i%.%j%.%k%.%l%
    
    https://www.123pan.com/s/NflRVv-Cm5Sh
  • avatar image
    anson4 2023-8-6

    谢谢 5 大!

    ENVI 的用法真是变化多端,套好了蛙要看看能不能弄明白。

    单机计算
  • avatar image
    爱心会员VIP会员
    527104427 2023-8-6
    楼主   13
    anson4 谢谢 5 大! ENVI 的用法真是变化多端,套好了蛙要看看能不能弄明白。

    这个没人带一下真不好学。我也是研究了好久,积累的知识多了,一下子就通了。

    https://www.123pan.com/s/NflRVv-Cm5Sh
  • avatar image
    anson4 2023-8-6

    是啊,尤其是调用API最难,还经常涉及到ENVI的各种用法,比如各种数据类型的用法等,PECMD的帮助文档又不好理解。

    我很喜欢这个板块,希望能从中多学一些东西,可每次都是停留在套娃上,跨越不了-_-。

    单机计算
  • avatar image
    123 2023-8-7
    527104427 再来个版本号:       set^ EnviMode=1 set^ ForceLocal=1 set$ nl=0d 0a ...

    set$# d=*8 0是什么意思,设置的指针变量吗

    set?longlong b=g:(3*8)是从第25字节开始读8个字节吗

    5大要不然加个注释

    在我电脑运行不知道为什么只有日期和版本的信息,前两行信息为空

    最后于 2023-8-7 被123编辑 ,原因:
    123
  • avatar image
    爱心会员VIP会员
    527104427 2023-8-7
    楼主   16
    123 set$# d=*8 0是什么意思,设置的指针变量吗 set?longlong b=g:(3*8)是从第25字节开始读8个字节吗 5大要不然加个注释 在我电脑运行不知道为什么只有日期和版本的信息 ...

    你这两个解读都对。一般翻看PECMD说明+微软文档,都能明白。

    调用api,要不就返回成功 (0),要不就返回失败 (其它数字)。不可能空的吧,除非你是没有这个DLL。系统阉割太厉害了吧?

    https://www.123pan.com/s/NflRVv-Cm5Sh
  • avatar image
    123 2023-8-7
    527104427 你这两个解读都对。一般翻看PECMD说明+微软文档,都能明白。 调用api,要不就返回成功 (0),要不就返回失败 (其它数字)。不可能空的吧,除非你是没有这个DLL。系统阉割太厉害了吧?

    破案了pecmd的bug,换成最新版可以了

    *8 0是人为分配的地址吗,还是什么,看pecmd帮助没明白

    那getf也是从第9个字节开始读16个字节吗

    123
  • avatar image
    爱心会员VIP会员
    527104427 2023-8-7
    楼主   18
    123 破案了pecmd的bug,换成最新版可以了 *8 0是人为分配的地址吗,还是什么,看pecmd帮助没明白 那getf也是从第9个字节开始读16个字节吗

     

    用vc跑一下就知道了

    11.webp

     

    1.webp

     

     

    定义为常量不放心的话,就用PECMD内置的变量%ptrlen%

    2.webp

     

    getf解读正确。

     

     

     

    https://www.123pan.com/s/NflRVv-Cm5Sh
  • avatar image
    123 2023-8-7
    527104427   用vc跑一下就知道了       定义为常量不放心的话,就用PECMD内置的变量%ptrlen% & ...

    明白了,谢谢

    123
  • avatar image
    anson4 2023-8-7

    谢谢解读!

    单机计算
  • avatar image
    anson4 2023-8-9

    请教5大一个问题,关于CALC,下面两种写法等效吗?

    CALC &&DisplaySel=%&DisplaySel%+1

    CALC &&DisplaySel=%&DisplaySel% + 1

    第二种写法,在PECMD的示例中似乎不少见,但实际使用中我发现这种写法偶尔失效,改成第一种就正常了,感觉很奇怪。

    单机计算
  • avatar image
    爱心会员VIP会员
    527104427 2023-8-9
    楼主   22
    anson4 请教5大一个问题,关于CALC,下面两种写法等效吗? CALC &&DisplaySel=%&DisplaySel%+1 CALC &&DisplaySel ...

    http://bbs.wuyou.net/forum.php?mod=redirect&goto=findpost&ptid=205402&pid=4608098&fromuid=378114

     

    第二种写法才是正确的。运算符前后要有空格,不然可能会出问题。

     

    https://www.123pan.com/s/NflRVv-Cm5Sh
  • avatar image
    anson4 2023-8-9

    好的,谢谢!

    单机计算
  • avatar image
    pda8888 2023-8-22

    dos时代的菜鸟贡献了很牛B的分区脚本。

    学习至上
  • avatar image
    jonyzhr 2023-9-7

    这个代买可以,收藏了

    WINST
返回