无忧启动论坛

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

[更新376#2825]PECMD2012.1.80.13_Win32_64.多窗口多线程.裸机系统2.3.3.1+18M酷M...

    [复制链接]
17191#
发表于 2022-6-5 11:14:42 | 只看该作者
回复

使用道具 举报

17192#
发表于 2022-6-5 11:15:54 | 只看该作者
527104427 发表于 2022-6-5 11:13
你好

请给我提供pecmd.exe的版本,从69到81,包括x64架构。

他哪来这么小的,400多kb

点评

猜不到,或许他不是这个意思。也许英语跟我一样蹩脚吧  详情 回复 发表于 2022-6-5 11:17
回复

使用道具 举报

17193#
发表于 2022-6-5 11:17:19 | 只看该作者
826773297 发表于 2022-6-5 11:15
他哪来这么小的,400多kb

猜不到,或许他不是这个意思。也许英语跟我一样蹩脚吧
回复

使用道具 举报

17194#
 楼主| 发表于 2022-6-5 11:40:19 | 只看该作者
SharkyEXE 发表于 2022-6-5 00:44
Hello

Give me, please, pecmd.exe version from 69 to 81 include, x64 architecture

PECMD2012.1.88.05.88Stable-220527F测试.7z\精简PECMD\
这相当于旧版。 比较小

点评

swin貌似不能自适应DPI: #code=950T936 envi^ EnviMode=1 envi^ ForceLocal=1 call GetDpiPercent call @Page1 _sub Page1,w347 h297,,,,,, %ScaleCMD% swin swin1:Win1:-SwinMain1,l0 t0 w347 h205,,  详情 回复 发表于 2022-6-5 12:39
回复

使用道具 举报

17195#
发表于 2022-6-5 12:39:46 | 只看该作者
mdyblog 发表于 2022-6-5 11:40
PECMD2012.1.88.05.88Stable-220527F测试.7z\精简PECMD\
这相当于旧版。 比较小

swin貌似不能自适应DPI:

#code=950T936
envi^ EnviMode=1
envi^ ForceLocal=1

call GetDpiPercent
call @Page1

_sub Page1,w347 h297,,,,,, %ScaleCMD%
        swin swin1:Win1:-SwinMain1,l0 t0 w347 h205,,
_end

_sub Win1,w347 h205,,,,:0xFFFFFF,, %ScaleCMD%
_end

_sub GetDpiPercent *
        call $user32.dll,SetProcessDPIAware
        call $--ret:hdc user32.dll,GetDC,#0
        call $--ret:LogPixels Gdi32.dll,GetDeviceCaps,#%hdc%,#90
        set ScaleCMD=-scalef:%LogPixels% -scale:%LogPixels%
_end








点评

5大这个问题解决了吗,我也遇到了这个问题  详情 回复 发表于 2022-7-19 21:37
5大,麻烦看看这个 http://bbs.wuyou.net/forum.php?mod=viewthread&tid=426828 能否更新下siso  详情 回复 发表于 2022-6-10 11:15
swin -:Win1:-SwinMain1 这样好像可以,不过层级不一样了。。。  详情 回复 发表于 2022-6-5 14:48
回复

使用道具 举报

17196#
发表于 2022-6-5 14:48:01 | 只看该作者
527104427 发表于 2022-6-5 12:39
swin貌似不能自适应DPI:

#code=950T936

swin -:Win1:-SwinMain1
这样好像可以,不过层级不一样了。。。
回复

使用道具 举报

17197#
发表于 2022-6-5 14:59:48 | 只看该作者
本帖最后由 SharkyEXE 于 2022-6-5 15:11 编辑

mdyblog

Hello

I found pecmd.exe 1201.88.5.66 x64 architecture, size 884 KB, without UPX or mpress compression






Your last version pecmd.exe x64 architecture without compression UPX or mpress PECMD2012.1.88.05.88 Stable-220527F test.7z - very, very fat



Снимок6.jpg (627.1 KB, 下载次数: 77)

Снимок6.jpg

Снимок3.jpg (625.42 KB, 下载次数: 83)

Снимок3.jpg

点评

讲内置的巨大HELP 删除。 RCDATA\301  详情 回复 发表于 2022-6-5 17:08
回复

使用道具 举报

17198#
发表于 2022-6-5 16:35:40 | 只看该作者
如何判断文件夹是否被占用
回复

使用道具 举报

17199#
 楼主| 发表于 2022-6-5 17:08:22 | 只看该作者
本帖最后由 mdyblog 于 2022-6-5 17:09 编辑

将内置的巨大HELP 删除。
RCDATA\301

然后, 删除INDATA\下不必须的资源。
回复

使用道具 举报

17200#
发表于 2022-6-5 18:01:25 | 只看该作者
本帖最后由 SharkyEXE 于 2022-6-5 18:02 编辑

mdyblog
Hello

I use restorator 2007, i maximum delete



Size 1,15 Megabyte

I write , pecmd.exe 1201.88.5.66 x64 architecture, size 884 KB, without UPX or mpress compression

I have pecmd.exe x64 architecture without UPX or mpress compression size < 884 KB

If you make pecmd.exe x64 architecture without UPX or mpress compression size < 884 KB - please, attach this

Thank You!
回复

使用道具 举报

17201#
发表于 2022-6-5 20:01:57 | 只看该作者
问一下m大,pecmd能否隐藏任务栏的控制中心图标,这个图标找了很久没找到注册表
回复

使用道具 举报

17202#
发表于 2022-6-5 21:18:34 | 只看该作者
pecmd能否获取smbios信息

点评

GetSystemFirmwareTablehttps://docs.microsoft.com/zh-cn/windows/win32/api/sysinfoapi/nf-sysinfoapi-getsystemfirmwaretable  详情 回复 发表于 2022-6-6 01:24
回复

使用道具 举报

17203#
发表于 2022-6-6 01:24:31 | 只看该作者

点评

这是c吧,我是问pecmd能否实现  详情 回复 发表于 2022-6-6 08:39
回复

使用道具 举报

17204#
发表于 2022-6-6 08:39:59 | 只看该作者
红毛樱木 发表于 2022-6-6 01:24
GetSystemFirmwareTable
https://docs.microsoft.com/zh-cn/windows/win32/api/sysinfoapi/nf-sysinfoap ...

这是c吧,我是问pecmd能否实现

点评

&pFirmwareTableBuffer就是原始数据,自己拆数据吧。  详情 回复 发表于 2022-6-8 19:30
c的api,直接用pecmd的call $dll  详情 回复 发表于 2022-6-6 08:45
回复

使用道具 举报

17205#
发表于 2022-6-6 08:45:13 来自手机 | 只看该作者
826773297 发表于 2022-6-6 08:39
这是c吧,我是问pecmd能否实现

c的api,直接用pecmd的call $dll
回复

使用道具 举报

17206#
 楼主| 发表于 2022-6-8 05:24:11 | 只看该作者
mdyblog 发表于 2022-6-4 15:15
FORX *off  %&D%\*.sys,&FS,,*

//*off  返回变化部分

FORX *off  %&D%\*.sys,&FS,,*
MESS。 %&FS%
这条命令 是用来 得到 文件列表  

点评

发现bug,现在点击 item 会触发两次命令: [attachimg]503034[/attachimg]  详情 回复 发表于 2022-6-13 22:18
回复

使用道具 举报

17207#
发表于 2022-6-8 07:38:59 | 只看该作者
mdyblog 发表于 2022-6-8 05:24
FORX *off  %&D%\*.sys,&FS,,*
MESS。 %&FS%
这条命令 是用来 得到 文件列表

ok
回复

使用道具 举报

17208#
发表于 2022-6-8 19:30:22 | 只看该作者
本帖最后由 红毛樱木 于 2022-6-9 21:53 编辑
826773297 发表于 2022-6-6 08:39
这是c吧,我是问pecmd能否实现
  1. //转换RSMB为DWORD----开始
  2. CODE *,RSMB,*-ANSI,&FirmwareTableProviderSignatureHex
  3. SED -ex &FirmwareTableProviderSignature=0, 0x,,&FirmwareTableProviderSignatureHex
  4. //转换RSMB为DWORD----结束

  5. //第四个参数传入0,则返回获取RSMB结构长度
  6. CALL $--qd --ret:&GetSystemFirmwareTableRet Kernel32.dll,GetSystemFirmwareTable,#%&FirmwareTableProviderSignature%,#0,#0,#0

  7. //判断API是否成功
  8. IFEX #%&GetSystemFirmwareTableRet%=0,EXIT

  9. //设置RSMB长度
  10. ENVI &BufferSize=%&GetSystemFirmwareTableRet%

  11. //申请%&BufferSize%长度的&pFirmwareTableBuffer变量内存空间
  12. SET$# pFirmwareTableBuffer=*%&BufferSize% 0

  13. //获取&pFirmwareTableBuffer数据
  14. CALL $--qd --ret:&GetSystemFirmwareTableRet Kernel32.DLL,GetSystemFirmwareTable,#%&FirmwareTableProviderSignature%,#0,*&pFirmwareTableBuffer,#%&BufferSize%
复制代码


&pFirmwareTableBuffer就是原始数据,自己拆数据吧。(需要出演示代码怎么拆数据的,随时关注这一楼吧,说不定哪天比较闲的时候就拆一下更新了,其实这里的数据有很多C或者C++现成的开源代码示例,只是PECMD2012是脚本语言大家都玩的比较少罢了也没人愿意费劲折腾)

写入一个文件,用winhex查看:
  1. IFEX %&CurDir%\SMBIOSTableData.Bin,FILE %&CurDir%\SMBIOSTableData.Bin
  2. GETF -bin &pFirmwareTableBuffer,0#%&GetSystemFirmwareTableRet%,&SMBIOSTableDataTemp
  3. PUTF %&CurDir%\SMBIOSTableData.Bin,0#,%&SMBIOSTableDataTemp%
复制代码



附件里是3.3版的规范,最新的应该比这个版本高,对着看下先。

DSP0134_3.3.0.pdf (1.5 MB, 下载次数: 22)


---------------------------------------------------
下面这段是演示代码之拆了BIOS_vendor的数据,其他的自己对着慢慢研究吧,具体要参考上面的PDF资料。
注意:请使用网盘中最新的PECMD才可以,2022.06.09更新的PECMD。
  1. ENVI^ ENVIMODE=1
  2. ENVI$ &NL=0d 0a
  3. //转换RSMB为DWORD----开始
  4. CODE *,RSMB,*-ANSI,&FirmwareTableProviderSignatureHex
  5. SED -ex &FirmwareTableProviderSignature=0, 0x,,&FirmwareTableProviderSignatureHex
  6. //转换RSMB为DWORD----结束

  7. //第四个参数传入0,则返回获取RSMB结构长度
  8. CALL $--qd --ret:&GetSystemFirmwareTableRet Kernel32.dll,GetSystemFirmwareTable,#%&FirmwareTableProviderSignature%,#0,#0,#0

  9. //判断API是否成功
  10. IFEX #%&GetSystemFirmwareTableRet%=0,EXIT

  11. //设置RSMB长度
  12. ENVI &BufferSize=%&GetSystemFirmwareTableRet%

  13. //申请%&BufferSize%长度的&pFirmwareTableBuffer变量内存空间
  14. SET$# pFirmwareTableBuffer=*%&BufferSize% 0

  15. //获取&pFirmwareTableBuffer数据
  16. CALL $--qd --ret:&GetSystemFirmwareTableRet Kernel32.DLL,GetSystemFirmwareTable,#%&FirmwareTableProviderSignature%,#0,*&pFirmwareTableBuffer,#%&BufferSize%
  17. //MESS. %&GetSystemFirmwareTableRet%

  18. //SET?数据类型 源PE变量名或地址=变量名:偏移字节数      //取PE对象中指定类型2进制数据。
  19. SET?char pFirmwareTableBuffer=&&Used20CallingMethod:0
  20. CALC &Used20CallingMethod=%&Used20CallingMethod%  //16进制转10进制
  21. SET?char pFirmwareTableBuffer=&&SMBIOSMajorVersion:1
  22. CALC &SMBIOSMajorVersion=%&SMBIOSMajorVersion%
  23. SET?char pFirmwareTableBuffer=&&SMBIOSMinorVersion:2
  24. CALC &SMBIOSMinorVersion=%&SMBIOSMinorVersion%
  25. SET?char pFirmwareTableBuffer=&&DmiRevision:3
  26. CALC &DmiRevision=%&DmiRevision%
  27. SET?int pFirmwareTableBuffer=&&SMBIOSTableDataLength:4

  28. ENVI &&SMBIOS_Version=%&SMBIOSMajorVersion%.%&SMBIOSMinorVersion%
  29. //MESS. Used20CallingMethod:%&Used20CallingMethod%%&NL%SMBIOS版本号:%&SMBIOSMajorVersion%.%&SMBIOSMinorVersion%%&NL%DmiRevision:%&DmiRevision%%&NL%SMBIOS数据长度:%&SMBIOSTableDataLength%

  30. //把数据写入到一个文件中,方便用Winhex查看对比。
  31. IFEX %&CurDir%\SMBIOSTableData.Bin,FILE %&CurDir%\SMBIOSTableData.Bin
  32. GETF -bin &pFirmwareTableBuffer,(1 + 1 + 1 + 1 + 4)#%&SMBIOSTableDataLength%,&SMBIOSTableDataTemp
  33. PUTF %&CurDir%\SMBIOSTableData.Bin,0#,%&SMBIOSTableDataTemp%

  34. //SET-make  PE变量名=[地址|&PE变量名[@[$]偏移]][;[*][[$]字节数]]  //创建PE变量。*为char串
  35. SET-make &SMBIOSTableData=&pFirmwareTableBuffer@(1 + 1 + 1 + 1 + 4);*%&SMBIOSTableDataLength%  //获取实际的SMBIOSTableData数据

  36. SET$# &type=*1 0    //申请1个字节的内存空间,定义一个变量,作为类型变量
  37. SET$# &data_offset=*1 0    //申请1个字节的内存空间,定义一个变量,作为类型长度
  38. ENVI &&Type_Start=0      //定义一个变量,作为当前类型的起始位置值的标记
  39. CODE *ANSI,0x00 0x00,**ANSI,&&TypeKeyWords
  40. CODE *ANSI,0x00,**ANSI,&&CharKeyWords
  41. LOOP #%&Type_Start%>=0,
  42. {*
  43.     //SET-zero  PE变量名=[[$]数值][@[$]偏移]][;[$]数量]  //清除变量的内存,默认0  $:加宽,可多次
  44.     SET-zero type=
  45.     SET-zero data_offset=
  46.     SET?char SMBIOSTableData=&type:%&Type_Start%
  47.     ENVI &&Type_Start_Last=%&Type_Start%
  48.     SET?char SMBIOSTableData=&data_offset:(%&Type_Start% + 1)
  49.     GETF -find &SMBIOSTableData,(%&data_offset% + %&Type_Start%)###0#1#0,&&Type_End,*&&TypeKeyWords
  50.     IFEX $%&Type_End%=-1,EXIT LOOP
  51.     CALC &&Type_Start=%&Type_End% + 2   //尾部加上两个字节的0x00 0x00
  52.     IFEX [ #%&type%=0 & $%&SMBIOS_Version%>=2.0 ],
  53.     {*
  54.         //BIOS Information (Type 0) //这里演示只分析这一段数据
  55.         CALC &BIOS_INFO_Len=%&Type_Start% - %&data_offset% - %&Type_Start_Last%

  56.         //厂商字符串位置
  57.         GETF &SMBIOSTableData,(%&Type_Start_Last% + 1 + 1 + 2)#1,&&BIOS_vendor_CharNum
  58.         GETF -find &SMBIOSTableData,(%&Type_Start_Last% + %&data_offset%)#%&BIOS_INFO_Len%##0#1#0,*&&BIOS_INFO_CharKeyWords,*&&CharKeyWords
  59.         CALL Get_Split_Dmi_Info &BIOS_vendor_CharNum &BIOS_INFO_CharKeyWords &&BIOS_vendor
  60.         MESS. %&BIOS_vendor%
  61.         EXIT LOOP
  62.     }
  63. }

  64. _SUB Get_Split_Dmi_Info
  65.     LOGS
  66.     ^ENVI &&End_CharNum=%%%1%%
  67.     IFEX $%&End_CharNum%=0,
  68.     {*
  69.        EXIT
  70.     }
  71.     ^ENVI &&This_CharKeyWords=%%%2%%
  72.     CALC &&Start_CharNum=%&End_CharNum% - 1
  73.     MSTR * &&Start,&&End=<%&Start_CharNum%><%&CharNum%>&&This_CharKeyWords
  74.     IFEX $%&Start_CharNum%=0,CALC &&Start=%&Type_Start_Last%+%&data_offset%  - 1
  75.     GETF &SMBIOSTableData,(%&Start%+1)#(%&End% - %&Start% - 1),&&This_Info
  76.     CODE ***ANSI,&&This_Info,**UNI,&&This_Info
  77.     MSTR * -trim &This_Info=&This_Info
  78.     ENVI-ret %3=%&This_Info%
  79. _END

  80. EXIT FILE
  81. 结构体
  82. struct RawSMBIOSData
  83. {
  84.     BYTE    Used20CallingMethod;    //1b
  85.     BYTE    SMBIOSMajorVersion;     //1b
  86.     BYTE    SMBIOSMinorVersion;     //1b
  87.     BYTE    DmiRevision;            //1b
  88.     DWORD    Length;                //4b
  89.     BYTE    SMBIOSTableData[];      //Length b
  90. };
复制代码


点评

嗯,就是要用第三方打开,不知道m大有没有什么高招  详情 回复 发表于 2022-6-9 10:52

评分

参与人数 1无忧币 +5 收起 理由
Anson4 + 5 赞一个!

查看全部评分

回复

使用道具 举报

17209#
发表于 2022-6-9 10:52:05 | 只看该作者
红毛樱木 发表于 2022-6-8 19:30
&pFirmwareTableBuffer就是原始数据,自己拆数据吧。(需要出演示代码怎么拆数据的,随时关注这一楼 ...

嗯,就是要用第三方打开,不知道m大有没有什么高招
回复

使用道具 举报

17210#
发表于 2022-6-9 10:54:13 | 只看该作者
有第三方可以实现,我只是想看看pecmd不依赖第三方的情况下能不能做到,能不能写出来都无所谓

点评

PECMD肯定是能做到的,只是可惜我也不会。 关于这方便的实例好像有点少,而且没有备注说明,不是码农很难看明白。  详情 回复 发表于 2022-6-9 15:09
回复

使用道具 举报

17211#
发表于 2022-6-9 15:09:53 | 只看该作者
826773297 发表于 2022-6-9 10:54
有第三方可以实现,我只是想看看pecmd不依赖第三方的情况下能不能做到,能不能写出来都无所谓

PECMD肯定是能做到的,只是可惜我也不会。
关于这方便的实例好像有点少,而且没有备注说明,不是码农很难看明白。
回复

使用道具 举报

17212#
发表于 2022-6-10 11:15:36 | 只看该作者
527104427 发表于 2022-6-5 12:39
swin貌似不能自适应DPI:

#code=950T936

5大,麻烦看看这个
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=426828

能否更新下siso

点评

SISO年久失修了,可以自己换下里面的bootmgr试下,用fbinsttool编辑的。  详情 回复 发表于 2022-6-13 22:17
回复

使用道具 举报

17213#
发表于 2022-6-13 22:17:19 | 只看该作者
2012zhd 发表于 2022-6-10 11:15
5大,麻烦看看这个
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=426828

SISO年久失修了,可以自己换下里面的bootmgr试下,用fbinsttool编辑的。

点评

5大,不会弄啊,麻烦更新下。  详情 回复 发表于 2022-6-13 22:50
感谢5大。  详情 回复 发表于 2022-6-13 22:26
回复

使用道具 举报

17214#
发表于 2022-6-13 22:18:25 | 只看该作者
本帖最后由 527104427 于 2022-6-13 22:21 编辑
mdyblog 发表于 2022-6-8 05:24
FORX *off  %&D%\*.sys,&FS,,*
MESS。 %&FS%
这条命令 是用来 得到 文件列表


发现bug,现在点击 item 会触发两次命令:




还有一个问题,就是鼠标放到输入框,字体颜色就会变黑色,即设置edit字体颜色的命令也失效了。


点评

PECMD2012.1.88.05.89Stable-220609C测试.7z EDIT 也支持动态颜色(4个值)  详情 回复 发表于 2022-6-14 10:49
item命令刚定位到出版本具体版本号了。 PECMD2012.1.88.05.87Stable-220418B测试----正常 PECMD2012.1.88.05.87Stable-220418C测试----不正常 EDIT没代码不知道怎么测  详情 回复 发表于 2022-6-14 00:22
回复

使用道具 举报

17215#
发表于 2022-6-13 22:26:20 | 只看该作者
527104427 发表于 2022-6-13 22:17
SISO年久失修了,可以自己换下里面的bootmgr试下,用fbinsttool编辑的。

感谢5大。
回复

使用道具 举报

17216#
发表于 2022-6-13 22:50:26 | 只看该作者
527104427 发表于 2022-6-13 22:17
SISO年久失修了,可以自己换下里面的bootmgr试下,用fbinsttool编辑的。

5大,不会弄啊,麻烦更新下。

点评

没测试,你看看行不:  详情 回复 发表于 2022-6-13 23:46
回复

使用道具 举报

17217#
发表于 2022-6-13 23:46:13 | 只看该作者
2012zhd 发表于 2022-6-13 22:50
5大,不会弄啊,麻烦更新下。


没测试,你看看行不:

SISO.part1.rar (3 MB, 下载次数: 6)
SISO.part2.rar (1.28 MB, 下载次数: 6)



点评

感谢5大,我试试。  详情 回复 发表于 2022-6-13 23:49

评分

参与人数 1无忧币 +5 收起 理由
freesoft00 + 5

查看全部评分

回复

使用道具 举报

17218#
发表于 2022-6-13 23:49:30 | 只看该作者
527104427 发表于 2022-6-13 23:46
没测试,你看看行不:

感谢5大,我试试。
回复

使用道具 举报

17219#
发表于 2022-6-14 00:22:28 | 只看该作者
本帖最后由 红毛樱木 于 2022-6-14 01:00 编辑
527104427 发表于 2022-6-13 22:18
发现bug,现在点击 item 会触发两次命令:

item命令刚定位到出版本具体版本号了。
PECMD2012.1.88.05.87Stable-220418B测试----正常
PECMD2012.1.88.05.87Stable-220418C测试----不正常
--------------------------------------------
EDIT命令也定位到了。PECMD2012.1.88.05.86Stable-220331E----正常
PECMD2012.1.88.05.86Stable-220408----不正常
EDIT测试代码
  1. CALL @MAIN
  2. _sub main,w800h600,test
  3.     EDIT Edit1,L32T244W240H24,C:\Windows,ENVI @Label1=%Edit1%,0x224,0xFCFCFF#0xABACDA
  4. _end
复制代码


-----------------------------------
以上测试是我电脑里保存的版本测试的。


回复

使用道具 举报

17220#
发表于 2022-6-14 02:02:10 | 只看该作者
我原来以为PECMD是个微软工具,原来是大神开发的。赞。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-27 19:06

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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