无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: mdyblog
打印 上一主题 下一主题

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

    [复制链接]
15211#
发表于 2020-4-7 23:53:02 | 只看该作者
527104427 发表于 2020-4-7 17:18
请教老大,
ENVI ?&a=WinVer   //0x600011DB1
  1. ENVI ?&a=WinVer
  2. ENVI-make &b=&a@0;*(2*3)
  3. ENVI-make &c=&a@(0+(2*3));*(2*4)
  4. ENVI-make &d=&a@(0+(2*3)+(2*4));*(2*4)
  5. MESS. <%&a%><%&b%><%&c%><%&d%>
复制代码


实际好像没啥意义
回复

使用道具 举报

15212#
发表于 2020-4-8 13:02:34 | 只看该作者
mdyblog 发表于 2020-4-6 08:10
PE变量 的内存操作, 直接用SET, 不要用 ENVI

ENVI^ ENVIMODE=1

老大,报告BUG:

FIND --menu    变量名,窗口ID                              //查询窗口的MENU标识
FIND --menu#0  变量名,MENU标识                            //查询MENU的子MENU标识
FIND --menu#序号  变量名,MENU标识                         //查询指定序号子MENU信息 序号>=1



上面3条命令均无效。示例代码:

CALL @A
_SUB A,W435H184,新窗口1,
    ENVI &thisWid=%&__WinID%
    TIME &Timer1,0, CALL D
    ITEM &ITEM1,L178T87W120H30,右键菜单,TEAM ENVI @&Timer1=1| CALL @--popmenu B,
_END

_SUB B
    MENU MENU1,ABCD,
    MENU MENU2,EFGH,
    MENU -bar -sub C,EFGH
_END

_SUB C
    MENU MENU3,IJKL,
    MENU MENU4,MNOP,
_END

_SUB D
    FIND --forpid:%&__PID% --class:#32768 --wid* &E,
    IFEX $%&E%>0,
    {
        FIND --menu &F,%&E%
        FIND --menu#0 &G,%&F%
        FIND --menu#3 &H,%&F%
        MESS. MENU窗口ID:[%&E%]   MENU标识:[%&F%]   子MENU标识:[%&G%]   第3项子MENU信息:[%&H%]       //MENU窗口ID:[6097848]   MENU标识:[0]   子MENU标识:[0]   第3项子MENU信息:[0]
    }
_END










点评

这个是用来找 窗口 内置 的菜单的。 就是固定在窗口上的那种。 弹出菜单实际不属于窗口。  详情 回复 发表于 2020-4-13 09:41
回复

使用道具 举报

15213#
发表于 2020-4-8 13:09:37 | 只看该作者
谢谢 分享
回复

使用道具 举报

15214#
发表于 2020-4-9 18:04:40 | 只看该作者
新版PECMD由于监控了桌面壁纸,
在进入PE后,手动在一个图片上右键,设置为壁纸后,会被PECMD还原

点评

手动设置后,同步 修改下 PECMD桌面注册表项, 或WALL命令在执行一次。  详情 回复 发表于 2020-4-13 09:38
回复

使用道具 举报

15215#
发表于 2020-4-11 07:59:43 | 只看该作者
本帖最后由 sunsea 于 2020-4-11 08:04 编辑
lxl1638 发表于 2012-1-22 19:55
有意思,望继续完善。。。。。

这个大概是2.88左右版源码修改的,也希望加入最新版的功能。

话说这个帖子的源码还有吗……时空论坛挂了……仅做研究之用不做其他任何用途……感谢……
回复

使用道具 举报

15216#
 楼主| 发表于 2020-4-13 09:38:40 | 只看该作者
红毛樱木 发表于 2020-4-9 18:04
新版PECMD由于监控了桌面壁纸,
在进入PE后,手动在一个图片上右键,设置为壁纸后,会被PECMD还原

手动设置后,同步 修改下 PECMD桌面注册表项, 或WALL命令 再执行一次。
回复

使用道具 举报

15217#
 楼主| 发表于 2020-4-13 09:41:01 | 只看该作者
527104427 发表于 2020-4-8 13:02
老大,报告BUG:

FIND --menu    变量名,窗口ID                              //查询窗口的MENU标识
...

这个是用来找 窗口 内置 的菜单的。 就是固定在窗口上的那种。
弹出菜单实际不属于窗口。

点评

哦,这样啊。再请教一个问题,能不能用envi @@style 的方式将一个窗口的关闭按钮给禁止掉?  详情 回复 发表于 2020-4-13 10:04
回复

使用道具 举报

15218#
发表于 2020-4-13 10:04:47 | 只看该作者
本帖最后由 527104427 于 2020-4-13 11:50 编辑
mdyblog 发表于 2020-4-13 09:41
这个是用来找 窗口 内置 的菜单的。 就是固定在窗口上的那种。
弹出菜单实际不属于窗口。

哦,这样啊。再请教一个问题,能不能用envi @@style 的方式将一个窗口的关闭按钮给禁止掉?https://docs.microsoft.com/en-us/windows/win32/winmsg/window-class-styles

在这里找到了一个CS_NOCLOSE: 0x0200,不知道怎么用

点评

将一个窗口的关闭按钮给禁止掉 不是 通过style, 而是通过系统菜单。 TEAM ENVI^ ENVIMODE=1| ENVI^ FORCELOCAL=1 WIN1 _SUB WIN1,W287H254,禁止关闭测试, ITEM ITEM1,L111T62W60H30,禁止关闭, Enable  详情 回复 发表于 2020-4-13 13:10
回复

使用道具 举报

15219#
 楼主| 发表于 2020-4-13 13:10:27 | 只看该作者
527104427 发表于 2020-4-13 10:04
哦,这样啊。再请教一个问题,能不能用envi @@style 的方式将一个窗口的关闭按钮给禁止掉?https://docs. ...

将一个窗口的关闭按钮给禁止掉 不是 通过style, 而是通过系统菜单。


TEAM ENVI^ ENVIMODE=1| ENVI^ FORCELOCAL=1
WIN1

_SUB WIN1,W287H254,禁止关闭测试,
    ITEM ITEM1,L111T62W60H30,禁止关闭, EnableClose 0,
    ITEM ITEM2,L111T129W60H30,允许关闭,EnableClose 1,
_END

// EnableClose 0/1  [hWinID]
_SUB EnableClose
    IFEX #%~2>0, SET &__WinID=%~2
    SET &SC_CLOSE=0xF060
    SET &MF_GRAYED=0x00000001
    SET &MF_BYCOMMAND=0x00000000
    IFEX #%1>0, SET &En=%MF_BYCOMMAND%!  CALC #&&En=%MF_GRAYED% | %MF_BYCOMMAND%
    CALL $--ret:&&hmenu user32.dll,GetSystemMenu,#%__WinID%,#0
    CALL $user32.dll,EnableMenuItem,#%hmenu%,#%SC_CLOSE%,#%En%%
_END


点评

请问 WAIT $handle 这个用法有示例吗?没试出来怎么用的。  详情 回复 发表于 2020-4-14 22:42
多谢老大!  详情 回复 发表于 2020-4-13 15:04
回复

使用道具 举报

15220#
发表于 2020-4-13 15:04:34 | 只看该作者
mdyblog 发表于 2020-4-13 13:10
将一个窗口的关闭按钮给禁止掉 不是 通过style, 而是通过系统菜单。

多谢老大!
回复

使用道具 举报

15221#
发表于 2020-4-14 22:42:08 | 只看该作者
mdyblog 发表于 2020-4-13 13:10
将一个窗口的关闭按钮给禁止掉 不是 通过style, 而是通过系统菜单。

请问  WAIT  $handle  这个用法有示例吗?没试出来怎么用的。

点评

1:PID exec -pid:&pid calc wait *%&pid% mess. %&pid% 2:TID thread mess sub-thread wait *=%&&__LastTID% mess. %&&__LastTID%  详情 回复 发表于 2020-4-16 17:03
可能是窗口号之类的。  详情 回复 发表于 2020-4-14 23:22
回复

使用道具 举报

15222#
发表于 2020-4-14 23:22:57 | 只看该作者
527104427 发表于 2020-4-14 22:42
请问  WAIT  $handle  这个用法有示例吗?没试出来怎么用的。

可能是窗口号之类的。

点评

测试过窗口号无效才来问的  详情 回复 发表于 2020-4-14 23:30
回复

使用道具 举报

15223#
发表于 2020-4-14 23:30:56 | 只看该作者
红毛樱木 发表于 2020-4-14 23:22
可能是窗口号之类的。

测试过窗口号无效才来问的
回复

使用道具 举报

15224#
 楼主| 发表于 2020-4-16 17:03:41 | 只看该作者
本帖最后由 mdyblog 于 2020-4-16 17:35 编辑
527104427 发表于 2020-4-14 22:42
请问  WAIT  $handle  这个用法有示例吗?没试出来怎么用的。

1:*PID
exec  -pid:&pid calc
wait  *%&pid%
mess. %&pid%



2:*=TID
thread  mess.-x:10 sub-thread
wait  *=%&&__LastTID%
mess.-x:400 %&&__LastTID%



3:*$hpid (PID的handle, exec -hpid:&&hpid 得到)

exec -hpid:&hpid calc
wait  *$%&hpid%
mess.  %&hpid%

//hpid 主要用来 复杂的进程同步,此时需要一个句柄(Handle); 而WAIT也是进程同步中的一种。 //一般 不要用,直接用PID就好了。



点评

哦,原来是EXE的句柄,我还以为是窗口的句柄呢。 另外请教:KILL *pid 可以杀进程,不知道有没有办法杀掉某一个线程呢?  详情 回复 发表于 2020-4-16 17:37
回复

使用道具 举报

15225#
发表于 2020-4-16 17:30:31 | 只看该作者
谢谢分享
回复

使用道具 举报

15226#
发表于 2020-4-16 17:37:57 | 只看该作者
mdyblog 发表于 2020-4-16 17:03
1:*PID
exec  -pid:&pid calc
wait  *%&pid%

哦,原来是EXE的句柄,我还以为是窗口的句柄呢。
另外请教:KILL *pid  可以杀程,不知道有没有办法杀掉某一个线程呢?

点评

PECMD程序, 不要杀线程, 会导致线程资源 不会释放, 会导致 逻辑混乱。 一般是通知 线程, 让线程自己友好退出。 线程自己友好退出, 就不会出幺蛾子。  详情 回复 发表于 2020-4-16 17:53
回复

使用道具 举报

15227#
 楼主| 发表于 2020-4-16 17:53:52 | 只看该作者
527104427 发表于 2020-4-16 17:37
哦,原来是EXE的句柄,我还以为是窗口的句柄呢。
另外请教:KILL *pid  可以杀进程,不知道有没有办法杀 ...

PECMD程序, 不要杀线程, 会导致线程资源 不会释放, 会导致 逻辑混乱。
一般是通知 线程, 让线程自己友好退出。
线程自己友好退出, 就不会出幺蛾子。

点评

具体如何通知呢? 如果不是PECMD程序,而是WINDOWS的其它程序,可以杀它的线程不?  详情 回复 发表于 2020-4-16 18:00
具体如何通知呢? 如果不是PECMD程序,而是WINDOWS的其它程序,可以杀它的线程不?  详情 回复 发表于 2020-4-16 17:59
具体如何通知呢? 如果不是PECMD程序,而是WINDOWS的其它程序,可以杀它的线程不?  详情 回复 发表于 2020-4-16 17:59
具体如何通知呢? 如果不是PECMD程序,而是WINDOWS的其它程序,可以杀它的线程不?  详情 回复 发表于 2020-4-16 17:59
具体如何通知呢? 如果不是PECMD程序,而是WINDOWS的其它程序,可以杀它的线程不?  详情 回复 发表于 2020-4-16 17:59
回复

使用道具 举报

15228#
发表于 2020-4-16 17:59:15 | 只看该作者
mdyblog 发表于 2020-4-16 17:53
PECMD程序, 不要杀线程, 会导致线程资源 不会释放, 会导致 逻辑混乱。
一般是通知 线程, 让线程自己 ...

具体如何通知呢?
如果不是PECMD程序,而是WINDOWS的其它程序,可以杀它的线程不?

点评

这个API https://docs.microsoft.com/zh-cn/windows/win32/api/processthreadsapi/nf-processthreadsapi-terminatethread?redirectedfrom=MSDN 建议不要用.  详情 回复 发表于 2020-4-16 21:02
https://blog.csdn.net/zzandyc/article/details/70158298 强制杀线程有API可以直接干,不过确实像m说的那种,弊端多多。  详情 回复 发表于 2020-4-16 19:51
回复

使用道具 举报

15229#
发表于 2020-4-16 19:51:53 来自手机 | 只看该作者
527104427 发表于 2020-4-16 17:59
具体如何通知呢?
如果不是PECMD程序,而是WINDOWS的其它程序,可以杀它的线程不?

https://blog.csdn.net/zzandyc/article/details/70158298
强制杀线程有API可以直接干,不过确实像m说的那种,弊端多多。
回复

使用道具 举报

15230#
 楼主| 发表于 2020-4-16 21:02:19 | 只看该作者
本帖最后由 mdyblog 于 2020-4-16 21:15 编辑
527104427 发表于 2020-4-16 17:59
具体如何通知呢?
如果不是PECMD程序,而是WINDOWS的其它程序,可以杀它的线程不?

这个API
https://docs.microsoft.com/zh-cn ... redirectedfrom=MSDN

建议不要用.



thread+ mess-x:10 SUB_THREAD_WILL_BE_KILLED
KILLTID %&&__LastTID%

_SUB KILLTID  // TID
  set &tid=%~1  
  CALL$ --ret:&&htid  Kernel32.dll,OpenThread,#0x0001,#0,#%&tid%
  mess-x:300  WILL KILL  %&tid%/%htid%

  CALL$  Kernel32.dll,TerminateThread,#%&htid%,#0
  MESS-x:600 KILLED ??
_END


点评

好的。 ※查询程序/系统位数:ENVI ?字符串名,数字名=PEBIT,[程序或System32目录] //返回x86/x64/ia64 这个能否加上ARM和ARM64的查询?包里有两个示范文件:  详情 回复 发表于 2020-4-16 21:32
回复

使用道具 举报

15231#
发表于 2020-4-16 21:32:11 | 只看该作者

好的。
※查询程序/系统位数:ENVI ?字符串名,数字名=PEBIT,[程序或System32目录]   //返回x86/x64/ia64

这个能否加上ARM和ARM64的查询?包里有两个示范文件:
ARM.7z (65.68 KB, 下载次数: 0)













点评

PECMD在ARM上能运行吗?  详情 回复 发表于 2020-4-16 21:47
回复

使用道具 举报

15232#
 楼主| 发表于 2020-4-16 21:47:46 | 只看该作者
527104427 发表于 2020-4-16 21:32
好的。
※查询程序/系统位数:ENVI ?字符串名,数字名=PEBIT,[程序或System32目录]   //返回x86/x64/ia64 ...

PECMD在ARM上能运行吗?

点评

有考虑支持arm平台吗?  详情 回复 发表于 2020-4-16 22:24
不能  详情 回复 发表于 2020-4-16 22:08
回复

使用道具 举报

15233#
发表于 2020-4-16 22:08:22 | 只看该作者
本帖最后由 527104427 于 2020-4-16 22:10 编辑
mdyblog 发表于 2020-4-16 21:47
PECMD在ARM上能运行吗?

不能。我的意思是在win32/64下查询arm文件的位宽
回复

使用道具 举报

15234#
发表于 2020-4-16 22:24:15 来自手机 | 只看该作者
mdyblog 发表于 2020-4-16 21:47
PECMD在ARM上能运行吗?

有考虑支持arm平台吗?
回复

使用道具 举报

15235#
发表于 2020-4-17 10:15:25 | 只看该作者
老大,帖子首页的百度云好像被和谐了,您不忙的时候看看:


点评

真奇怪。 PECMD 怎么也会被和谐!!!!  详情 回复 发表于 2020-4-17 21:22
回复

使用道具 举报

15236#
发表于 2020-4-17 11:55:19 | 只看该作者
谢谢分享了
回复

使用道具 举报

15237#
 楼主| 发表于 2020-4-17 21:22:45 | 只看该作者
Mushroom 发表于 2020-4-17 10:15
老大,帖子首页的百度云好像被和谐了,您不忙的时候看看:

真奇怪。 PECMD 怎么也会被和谐!!!!

点评

老大能提供一下最新的 CLI 版吗?  详情 回复 发表于 2020-4-19 15:38
这不知道是不是BUG: MESS= OK #OK*2000 2秒后不会自动关闭。  详情 回复 发表于 2020-4-18 19:41
回复

使用道具 举报

15238#
发表于 2020-4-18 19:41:16 | 只看该作者
mdyblog 发表于 2020-4-17 21:22
真奇怪。 PECMD 怎么也会被和谐!!!!

这不知道是不是BUG:
MESS= OK #OK*2000
2秒后不会自动关闭。

点评

而且我发现 MESS= 的弹窗窗口和普通的MESS都不一样了。  详情 回复 发表于 2020-4-18 19:57
回复

使用道具 举报

15239#
发表于 2020-4-18 19:57:43 | 只看该作者
527104427 发表于 2020-4-18 19:41
这不知道是不是BUG:
MESS= OK #OK*2000
2秒后不会自动关闭。

而且我发现
MESS=
的弹窗窗口和普通的MESS都不一样了。


点评

MESS= 的窗口风格比较正规,我喜欢  详情 回复 发表于 2020-4-18 20:07
回复

使用道具 举报

15240#
发表于 2020-4-18 20:07:14 | 只看该作者
红毛樱木 发表于 2020-4-18 19:57
而且我发现
MESS=
的弹窗窗口和普通的MESS都不一样了。

MESS=  的窗口风格比较正规,我喜欢

点评

但是 MESS-raw窗口是MESS原始的那样的。 MESS-raw OK #OK*2000  详情 回复 发表于 2020-4-18 20:14
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2026-1-21 06:39

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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