无忧启动论坛

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

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

    [复制链接]
14551#
发表于 2019-11-27 01:48:32 | 只看该作者
本帖最后由 求道者 于 2019-11-27 02:00 编辑
红毛樱木 发表于 2019-11-27 01:39
搞半天你用不带bom的utf-8编码,不带bom的非ANSI编码都是流氓代码。

我玩cmd和bat很少,对转意这个词 ...
  1. LINK %Desktop%\理顺盘符,%MyName%,TEAM SHOW -check *F:0 | DISK -check  ,,,4,U:,0x1
复制代码

就是这个
实际上LINK的参数部分是
  1. TEAM SHOW -check *F:0 | DISK -check  ,,,4,U:,0x1
复制代码

但这里面有很多
  1. ,
复制代码
结果你就知道了吧……
PECMD的帮助里没有转义相关的资料
唯一一个靠谱的只是针对变量
一般来说一个正常的语法处理这样一个路径就是
  1. /home/user/桌面/新建文件夹\ \(1\)
复制代码
人类更容易理解的路径就是
  1. /home/user/桌面/新建文件夹 (1)/
复制代码
两者是相等的
当空格和括号前面被填了\符号之后
空格就失去了分隔的的特殊效果
括号好像是分组,加了\之后就没有特殊功能了
\就是linux Shell脚本语言里定义的转义符

转义符在脚本语言里挺常见的吧……

另外
  1. /home/user/新建文件夹\*/
复制代码
为什么*号会被转义

你懂得

\本身能否转义?
能!
  1. /home/user/桌面/\\新建文件夹\*/
复制代码
这样作为路径使用时\本身就失去了转义的功能
复杂但灵活

点评

Windows风格, 好像 不适合 \转义符。 Windows用户不习惯一堆的转义符\。喜欢直观的样子。 文件名习惯用“”来对付空格。 PECMD 的方式: (1)通用的方式是用变量包装。 (2)还可"" 对付空格文件名  详情 回复 发表于 2019-11-27 05:18
这种情况目前我知道的只能变通一下,不知道有没有别的方法。 把TEAM SHOW -check *F:0 | DISK -check ,,,4,U:,0x1写成一个_sub函数,然后去call  详情 回复 发表于 2019-11-27 01:57
回复

使用道具 举报

14552#
发表于 2019-11-27 01:57:26 来自手机 | 只看该作者
求道者 发表于 2019-11-27 01:48
就是这个
实际上LINK的参数部分是
但这里面有很多结果你就知道了吧……

这种情况目前我知道的只能变通一下,不知道有没有别的方法。
把TEAM SHOW -check *F:0 | DISK -check  ,,,4,U:,0x1写成一个_sub函数,然后去call

点评

所以我觉得定义一个全局转义符势在必行啊…… 越是往后搞就越麻烦  详情 回复 发表于 2019-11-27 02:01
回复

使用道具 举报

14553#
发表于 2019-11-27 02:01:33 | 只看该作者
本帖最后由 求道者 于 2019-11-27 02:05 编辑
红毛樱木 发表于 2019-11-27 01:57
这种情况目前我知道的只能变通一下,不知道有没有别的方法。
把TEAM SHOW -check *F:0 | DISK -check  , ...

所以我觉得定义一个全局转义符势在必行啊……
越是往后搞就越麻烦
想想如果总是搞套娃一样搞这种代码
毫无疑问会增大阅读代码的难度

点评

赞同,希望pecmd2012越来越牛逼,睡觉睡觉  详情 回复 发表于 2019-11-27 02:12
回复

使用道具 举报

14554#
发表于 2019-11-27 02:12:19 来自手机 | 只看该作者
求道者 发表于 2019-11-27 02:01
所以我觉得定义一个全局转义符势在必行啊……
越是往后搞就越麻烦
想想如果总是搞套娃一样搞这种代码

赞同,希望pecmd2012越来越牛逼,睡觉睡觉
回复

使用道具 举报

14555#
 楼主| 发表于 2019-11-27 05:18:38 | 只看该作者
求道者 发表于 2019-11-27 01:48
就是这个
实际上LINK的参数部分是
但这里面有很多结果你就知道了吧……

Windows风格, 好像 不适合 \转义符。 Windows用户不习惯一堆的转义符\。喜欢直观的样子。
文件名习惯用“”来对付空格。


PECMD 的方式:
(1)通用的方式是用变量包装

(2)还可"" 对付空格文件名


一般来说, 分隔符 只看表面上书写的, 而不看展开的。 (除非命令需要,如REGI,那也是在字面失效后 才尝试)




SET &ARG=TEAM SHOW -check *F:0
LINK %Desktop%\理顺盘符,%MyName%,%&ARG%


单行形式:
TEAM~ SET &ARG=TEAM SHOW -check *F:0 | DISK -check  ,,,4,U:,0x1~ LINK %Desktop%\理顺盘符,%MyName%,%&ARG%


效果:


点评

不是不适应,实际上哪怕是cmd批处理,处理路径也是用转义。 倒不如统一用转义,变量也不特殊处理,都视为特殊字符,转义后就变成普通字符。 有了转义,写脚本还能不会用? 人不能被尿憋死。 如果\用的少或者pe  详情 回复 发表于 2019-11-27 09:58
回复

使用道具 举报

14556#
发表于 2019-11-27 09:58:22 来自手机 | 只看该作者
本帖最后由 求道者 于 2019-11-27 10:00 编辑
mdyblog 发表于 2019-11-27 05:18
Windows风格, 好像 不适合 \转义符。 Windows用户不习惯一堆的转义符\。喜欢直观的样子。
文件名习惯用 ...

  1. reg add "HKLM\SOFTWARE\Classes\7-Zip.001" /f /ve /t REG_SZ /d "001 Archive"
  2. reg add "HKLM\SOFTWARE\Classes\7-Zip.001\DefaultIcon" /f /ve /t REG_SZ /d "%TP%\7z.dll,9"
  3. reg add "HKLM\SOFTWARE\Classes\7-Zip.001\shell" /f /ve /t REG_SZ /d ""
  4. reg add "HKLM\SOFTWARE\Classes\7-Zip.001\shell\open" /f /ve /t REG_SZ /d ""
  5. reg add "HKLM\SOFTWARE\Classes\7-Zip.001\shell\open\command" /f /ve /t REG_SZ /d ""%TP%\7zFM.exe" "%%1""
复制代码

不是不适应,实际上哪怕是cmd批处理,处理路径也是用转义。
倒不如统一用转义,变量也不特殊处理,都视为特殊字符,转义后就变成普通字符。
有了转义,写脚本还能不会用?
人不能被尿憋死。
如果\用的少或者pecmd根本没定义\的用处
那就\做转义符吧。
转义符一定会用到的。
套娃代码实在没意思。
回复

使用道具 举报

14557#
发表于 2019-11-27 15:19:24 | 只看该作者
红毛樱木 发表于 2019-11-18 09:45
反馈,继续接上楼的WAIT -sys -cmd问题。(暂不确定是我的PE问题还是所有PE都有这问题)
演示PE打包地址。ht ...

字体发虚,是因为你调整了大小,导致锯齿严重
回复

使用道具 举报

14558#
发表于 2019-11-27 16:07:29 | 只看该作者
  1. ENVI^ ENVIMODE=1
  2. ENVI-int &&a=168
  3. ENVI-int &&b=999
  4. ENVI$ &&PX=*8 0
  5. ENVI-ptr &&psetPacket=%&&PXaddr%
  6. ENVI-make &&PX=&&a@0;$4
  7. //MESS. %&error%<%&&PX%>
  8. ENVI?int &&PX=&&a1:0
  9. //MESS. %&error%<%&&a1%><a1>
  10. ENVI-make &&PX=&&b@4;4
  11. //MESS. %&error%<%&&PX%>
  12. ENVI?int &&PX=&&b1:4
  13. //MESS. %&error%<%&&b1%><b1>
  14. MESS. <a1:%&a1%><b1:%&b1%>
复制代码

&b1取不出来值,M大帮看下

回复

使用道具 举报

14559#
发表于 2019-11-27 21:19:01 | 只看该作者
出关了啊!希望弄一下pint功能,能不能直接弄成调用系统右键实现PINT功能,不然升级系统后PINT就有各种失效。

点评

现在的远离就是 右键。 只是没有 真的 右键点击。  详情 回复 发表于 2019-11-28 02:56
回复

使用道具 举报

14560#
 楼主| 发表于 2019-11-28 02:53:41 | 只看该作者
红毛樱木 发表于 2019-11-27 16:07
&b1取不出来值,M大帮看下



  1. ENVI^ ENVIMODE=1
  2. ENVI-int &&a=0x41
  3. //ENVI-int &&a=168
  4. //创建一个整数
  5. ENVI-int &&b=0x33
  6. //ENVI-int &&b=999
  7. ENVI$ &&PX=*8 0
  8. ENVI-ptr &&psetPacket=%&&PXaddr%
  9.   MESS. %&error%<%&&psetPacket%> [=psetPacket]
  10. //// %&&PXaddr% 为0 ,  psetPacket为0


  11. ENVI-make &&PX=&a@0;$4
  12.   MESS. %&error%<%&&PX%>[=PX]
  13. // 用 &&a的前4字符为模版, 重新创建 &PX
  14. // 还是A

  15. ENVI?int &&PX=&&a1:0
  16.   MESS. %&error%<%&&a1%>[=a1]
  17. //PX 开头提取整数,到a1
  18. //还是A

  19. ENVI-make &&PX=&&b@4;4
  20.   MESS. %&error%<%&&PX%>[PX]

  21. // 用 &&a的跳过4字节,取4字符为模版, 重新创建 &PX
  22. // 为0,空串



  23. ENVI?int &&PX=&&b1:4
  24. //MESS. %&error%<%&&b1%><b1>
  25. MESS. <a1:%&a1%><b1:%&b1%>
  26. // 用 &&b1的跳过4字节,取4字符为模版, 重新创建 &PX
  27. // 为0,空串
复制代码

点评

我是想创建长度为8的结构体,前面4为&a的值,后面4为&b的值  详情 回复 发表于 2019-11-28 07:29
回复

使用道具 举报

14561#
 楼主| 发表于 2019-11-28 02:56:11 | 只看该作者
本帖最后由 mdyblog 于 2019-11-28 22:05 编辑
hhh333 发表于 2019-11-27 21:19
出关了啊!希望弄一下pint功能,能不能直接弄成调用系统右键实现PINT功能,不然升级系统后PINT就有各种失效 ...

现在的原理就是 右键。
只是没有 真的 右键点击。

点评

那哪么弄呢,这个PINT真有点麻烦  详情 回复 发表于 2019-11-28 08:45
回复

使用道具 举报

14562#
发表于 2019-11-28 07:29:43 来自手机 | 只看该作者
本帖最后由 红毛樱木 于 2019-11-28 08:47 编辑
mdyblog 发表于 2019-11-28 02:53

我是想创建长度为8的结构体,前面4为&a的值,后面4为&b的值。换成ENVI-mkdummy也不行

点评

那么下面这句是错误的ENVI-make &&PX=&a@0;$4[/backcolor] MESS. %&error%[=PX][/backcolor] // 用 &&a的前4字符为模版, 重新创建 &PX[/backcolor] a只有4字节, 创建的PX只有4字节。没有8字节。 修  详情 回复 发表于 2019-11-28 12:08
回复

使用道具 举报

14563#
发表于 2019-11-28 08:45:56 | 只看该作者
mdyblog 发表于 2019-11-28 02:56
现在的远离就是 右键。
只是没有 真的 右键点击。

那哪么弄呢,这个PINT真有点麻烦

点评

猫捉老鼠 的 游戏。 针对 MS-WIn 做了一个PINT设计。 delay ms_delay :LOOP MS 又加了限制。 delay ms_delay 再针对新 MS-WIn 做了一个PINT设计。 delay pecmd_delay goto :LOOP  详情 回复 发表于 2019-11-28 12:12
回复

使用道具 举报

14564#
 楼主| 发表于 2019-11-28 12:08:14 | 只看该作者
红毛樱木 发表于 2019-11-28 07:29
我是想创建长度为8的结构体,前面4为&a的值,后面4为&b的值。换成ENVI-mkdummy也不行

那么下面这句是错误的ENVI-make &&PX=&a@0;$4
  MESS. %&error%<%&&PX%>[=PX]
// 用 &&a的前4字符为模版, 重新创建 &PX


a只有4字节, 创建的PX只有4字节。没有8字节。


修改后:

  1. ENVI^ ENVIMODE=1
  2. ENVI-int &&a=0x41
  3. //ENVI-int &&a=168
  4. //创建一个整数
  5. ENVI-int &&b=0x33
  6. //ENVI-int &&b=999

  7. //8字节的结构体
  8. ENVI$ &&PX=*4 0


  9. ENVI?int &&a=&&a1:0
  10.   MESS. %&error%<%&&a1%>[=a1]
  11. //0<65>[=a1]
  12. //a 开头提取整数,到a1
  13. //还是A(0x41)

  14. ENVI-long  &&PX=%a1%:0
  15. //a1 保存到开头4字节
  16. //A

  17. //DBG
  18. ENVI?int640 &&PX=&&x:0
  19.   MESS. %&error%<%&x%>[=PX] new val --1
  20. //0<0x0000000000000041>[=PX] new val --1

  21. ENVI?int &&b=&&b1:0
  22.   MESS. %&error%<%&&b1%>[=b1]
  23. //0<51>[=b1]
  24. //b 开头提取整数,到b1
  25. //还是3

  26. ENVI-long  &&PX=%b1%:4
  27. //b1 保存到偏移4的4字节
  28. //3


  29. //DBG
  30. ENVI?int640 &&PX=&&x:0
  31.   MESS. %&error%<%&x%>[=PX] new val 64 --2
  32. //0<0x0000003300000041>[=PX] new val 64 --2
复制代码





点评

这样为啥不行,还得中间得来个&&a1中转?  详情 回复 发表于 2019-11-28 17:25
谢谢,原来是应该用ENVI-才对呀  详情 回复 发表于 2019-11-28 13:11
回复

使用道具 举报

14565#
 楼主| 发表于 2019-11-28 12:12:03 | 只看该作者
本帖最后由 mdyblog 于 2019-11-28 22:04 编辑
hhh333 发表于 2019-11-28 08:45
那哪么弄呢,这个PINT真有点麻烦

猫捉老鼠 的 游戏。

针对 MS-WIn 做了一个PINT设计。



:LOOP
delay  ms_delay
MS 又加了限制。

再针对新 MS-WIn 做了一个PINT设计。
goto :LOOP

=====================
现在具体什么问题?


点评

tips好像还是可以用。pint真的是不能用。  详情 回复 发表于 2019-11-28 18:14
在1903系统中PINT不成功  详情 回复 发表于 2019-11-28 15:26
不仅仅是PINT,连TIPS都无效了  详情 回复 发表于 2019-11-28 13:59
现在PINT在新win10内核PE里都无效了  详情 回复 发表于 2019-11-28 13:11
回复

使用道具 举报

14566#
发表于 2019-11-28 13:11:05 | 只看该作者
mdyblog 发表于 2019-11-28 12:08
那么下面这句是错误的ENVI-make &&PX=&a@0;$4
  MESS. %&error%[=PX]
// 用 & ...

谢谢,原来是应该用ENVI-才对呀

点评

还得中间得来个&&a1中转? --------------------- a里面是2进制 不可书写的数。 需要 先 读出来。 2进制, 内存拷贝就行了。 2行搞定: //  详情 回复 发表于 2019-11-28 22:09
回复

使用道具 举报

14567#
发表于 2019-11-28 13:11:29 | 只看该作者
mdyblog 发表于 2019-11-28 12:12
猫捉老鼠 的 游戏。

针对 MS-WIn 做了一个PINT设计。

现在PINT在新win10内核PE里都无效了
回复

使用道具 举报

14568#
发表于 2019-11-28 13:59:35 | 只看该作者
mdyblog 发表于 2019-11-28 12:12
猫捉老鼠 的 游戏。

针对 MS-WIn 做了一个PINT设计。

不仅仅是PINT,连TIPS都无效了
回复

使用道具 举报

14569#
发表于 2019-11-28 15:26:35 | 只看该作者
mdyblog 发表于 2019-11-28 12:12
猫捉老鼠 的 游戏。

针对 MS-WIn 做了一个PINT设计。

在1903系统中PINT不成功

点评

那我下个 1903 试试。  详情 回复 发表于 2019-11-29 01:12
回复

使用道具 举报

14570#
发表于 2019-11-28 17:25:19 | 只看该作者
mdyblog 发表于 2019-11-28 12:08
那么下面这句是错误的ENVI-make &&PX=&a@0;$4
  MESS. %&error%[=PX]
// 用 & ...
  1. ENVI^ ENVIMODE=1
  2. ENVI-int &&a=0x41
  3. ENVI$ &&PX=*4 0
  4. ENVI-long  &&PX=%&&a%:0
  5. ENVI?int640 &&PX=&&x:0
  6. MESS. %&error%<%&x%>[=PX] new val --1
复制代码
这样为啥不行,还得中间得来个&&a1中转?
回复

使用道具 举报

14571#
发表于 2019-11-28 18:14:47 | 只看该作者
mdyblog 发表于 2019-11-28 12:12
猫捉老鼠 的 游戏。

针对 MS-WIn 做了一个PINT设计。

tips好像还是可以用。pint真的是不能用。
回复

使用道具 举报

14572#
发表于 2019-11-28 22:08:30 | 只看该作者
请教:

DLL路径可以是*[文件名]#资源号

CALL中调用的DLL内置于PECMD.EXE,应该放到什么资源上?

点评

随便什么资源号上, 对应即可。  详情 回复 发表于 2019-11-29 01:11
回复

使用道具 举报

14573#
 楼主| 发表于 2019-11-28 22:09:58 | 只看该作者
红毛樱木 发表于 2019-11-28 13:11
谢谢,原来是应该用ENVI-才对呀

还得中间得来个&&a1中转?
---------------------
a里面是2进制 不可书写的数。
需要 先 读出来。




2进制, 内存拷贝就行了。 2行搞定:
  1. ENVI-copy  &&PX=&a;0;4;0
  2. ENVI-copy  &&PX=&b;0;4;4
复制代码


//

点评

好的,老大在帮看看CALL 调用PECMD.EXE内置DLL的格式。怎么试都试不出来  详情 回复 发表于 2019-11-28 22:33
回复

使用道具 举报

14574#
发表于 2019-11-28 22:33:49 | 只看该作者
mdyblog 发表于 2019-11-28 22:09
还得中间得来个&&a1中转?
---------------------
a里面是2进制 不可书写的数。

好的,老大在帮看看CALL 调用PECMD.EXE内置DLL的格式。怎么试都试不出来
回复

使用道具 举报

14575#
 楼主| 发表于 2019-11-29 01:11:38 | 只看该作者
红毛樱木 发表于 2019-11-28 22:08
请教:

DLL路径可以是*[文件名]#资源号

随便什么资源号上, 对应即可。

点评

内置于资源EXEDATA的100,测试不行,返回0x0000000000000000 外置的可以调用,返回0x000007FEE02E0000  详情 回复 发表于 2019-11-29 12:16
回复

使用道具 举报

14576#
 楼主| 发表于 2019-11-29 01:12:10 | 只看该作者
hhh333 发表于 2019-11-28 15:26
在1903系统中PINT不成功

那我下个 1903 试试。

点评

如何在不影响下一条命令运行的情况下 让一个程序执行并退出后LOAD一个脚本?  详情 回复 发表于 2019-11-29 14:11
回复

使用道具 举报

14577#
发表于 2019-11-29 12:16:59 | 只看该作者
mdyblog 发表于 2019-11-29 01:11
随便什么资源号上, 对应即可。

test1.7z (1.34 MB, 下载次数: 3)
x64的程序和x64的dll(x86的程序和x86的dll测试结果相同)

内置于资源EXEDATA的100,测试不行,返回0x0000000000000000<0>
  1. CALL $--ret:&&a ,-LoadLibrary,*#100
  2. MESS. %&a%<%&error%>
复制代码


外置的可以调用,返回0x000007FEE02E0000<0>
  1. CALL $--ret:&&b ,-LoadLibrary,%&CurDir%\WimEsdGapi10x64.dll
  2. MESS. %&b%<%&error%>
复制代码







点评

PECMD资源内置DLL用法.7z: https://www.lanzous.com/i7qnwkd  详情 回复 发表于 2019-11-29 21:38
回复

使用道具 举报

14578#
发表于 2019-11-29 14:11:21 | 只看该作者
本帖最后由 求道者 于 2019-11-29 14:13 编辑
mdyblog 发表于 2019-11-29 01:12
那我下个 1903 试试。

@红毛樱木

如何在不影响下一条命令运行的情况下
让一个程序执行并退出后LOAD一个脚本?
我不希望执行完这个程序后再执行之后的命令
exec似乎也没这样的参数

点评

如何在不影响下一条命令运行的情况下 让一个程序执行并退出后LOAD一个脚本? 我不希望执行完这个程序后再执行之后的命令 exec似乎也没这样的参数 ----------------------- THREAD TEAM EXEC -wait CALC.EXE|  详情 回复 发表于 2019-11-29 16:26
EXEC %&MyName% LOAD c:\test.txt 或 THREAD LOAD c:\test.txt  详情 回复 发表于 2019-11-29 14:12
回复

使用道具 举报

14579#
发表于 2019-11-29 14:12:53 | 只看该作者
求道者 发表于 2019-11-29 14:11
如何在不影响下一条命令运行的情况下
让一个程序执行并退出后LOAD一个脚本?

EXEC %&MyName% LOAD c:\test.txt

THREAD LOAD c:\test.txt

点评

THREAD的第二个命令怎么用?似乎|没用 THREAD EXEC 7z LOAD c:\test.txt 这似乎也并不行  详情 回复 发表于 2019-11-29 14:30
回复

使用道具 举报

14580#
发表于 2019-11-29 14:30:13 | 只看该作者
红毛樱木 发表于 2019-11-29 14:12
EXEC %&MyName% LOAD c:\test.txt

THREAD LOAD c:\test.txt

THREAD的第二个命令怎么用?似乎|没用
THREAD EXEC 7z.exe LOAD c:\test.txt
这似乎也并不行

点评

THREAD可以接TEAM的 THREAD TEAM CALL A| CALL B| CAL ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ  详情 回复 发表于 2019-11-29 14:43
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-6-13 18:36

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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