无忧启动论坛

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

[PECMD X86 & X64 V4.0.2011.0501版] WinPE命令解释程序 & WinPE登录命令。

    [复制链接]
721#
发表于 2007-4-16 00:12:56 | 只看该作者
反应好快.
2.76的都还没来得及用.
这下就直接用2.78的了.
回复

使用道具 举报

722#
发表于 2007-4-16 05:25:11 | 只看该作者
引用 老九 原话
以下内容积分高于 50 才可浏览
==============================
在加载Logo命令时会显示这行文字,若不清除,这行文字一直会显示到最后,
可以用PECMD公开的命令(TEXT)清除,自己去研究,本人就玩这手,也留下一手给大家玩。^_^。
==============================

难得老大允许,那不妨在此献丑。小弟从代码入手(版本v.2.78):
搜索:E8 FBC0FFFF
替换:90 90909090
回复

使用道具 举报

723#
 楼主| 发表于 2007-4-16 08:10:32 | 只看该作者
原理上只需该一个字节,因为本人是用:


  1. if (条件)
  2. {
  3.      //显示那一行文字的几行命令。
  4. }
复制代码

这样的方式处理,将条件改为 false 既可。
回复

使用道具 举报

724#
发表于 2007-4-16 11:18:34 | 只看该作者
不改,放着也好呀。。。。。。。。。。。
回复

使用道具 举报

725#
发表于 2007-4-16 18:19:26 | 只看该作者
建议把logo的版本信息去掉,虽然可以用命令让它不显示,还是觉得不爽,其实大家都知道这个程序是老九做的,何必再弄个logo呢。只是个建议,呵呵。
回复

使用道具 举报

726#
发表于 2007-4-16 19:21:29 | 只看该作者
嘿嘿,我想看看是什么版本的!^_^
回复

使用道具 举报

727#
发表于 2007-4-16 21:01:24 | 只看该作者
更新好快啊,2.76才刚出又改2.78了!
回复

使用道具 举报

728#
发表于 2007-4-17 06:25:47 | 只看该作者
原帖由 lxl1638 于 2007-4-16 08:10 AM 发表
原理上只需该一个字节


我是这样分析的,不知老大认为正确否?原程序用来显示左上角字符串的子程序如下:

00405B1B /$ 55                push    ebp
00405B1C |. 8D6C24 88         lea     ebp, dword ptr [esp-78]
00405B20 |. 81EC 4C030000     sub     esp, 34C
00405B26 |. A1 04304100       mov     eax, dword ptr [413004]
..........
00405BE8 |. 33C0              xor     eax, eax
00405BEA |> 66:8B0C85 1826400>/mov     cx, word ptr [eax*4+402618]
00405BF2 |. 66:03C8           |add     cx, ax
00405BF5 |. 66:41             |inc     cx
00405BF7 |. 66:894C45 D4      |mov     word ptr [ebp+eax*2-2C], cx
00405BFC |. 40                |inc     eax
00405BFD |. 83F8 28           |cmp     eax, 28
00405C00 |.^7C E8             \jl      short 00405BEA


  上面的内存单元[402618]内容如下:
  00402618  1F 00 00 00 2B 00 00 00 1D 00 00 00 53 00 00 00  ...+......S...
  00402628  64 00 00 00 68 00 00 00 49 00 00 00 3D 00 00 00  d...h...I...=...
  00402638  17 00 00 00 39 00 00 00 64 00 00 00 61 00 00 00  ...9...d...a...
  00402648  60 00 00 00 53 00 00 00 5F 00 00 00 54 00 00 00  `...S..._...T...
  00402658  54 00 00 00 60 00 00 00 0D 00 00 00 14 00 00 00  T...`..........
  00402668  38 00 00 00 59 00 00 00 4D 00 00 00 51 00 00 00  8...Y...M...Q...
  00402678  4D 00 00 00 4F 00 00 00 4A 00 00 00 48 00 00 00  M...O...J...H...
  00402688  03 00 00 00 24 00 00 00 5A 00 00 00 00 00 00 00  ...$...Z.......
  00402698  2B 00 00 00 56 00 00 00 49 00 00 00 0D 00 00 00  +...V...I.......
  004026A8  11 00 00 00 0D 00 00 00 11 00 00 00 01 00 00 00  .............
  以上内存单元内容加上其位置值就是真实内容。譬如[00402618]=1F,其位置=1,1F+1=20,
  就是空格字符;又如[402624]=53,位置=4,53+4=57,就是大写W字符;依此类推,最后结果
  存在堆栈[ebp-2C]内存中。
    [ebp-2C]= - Winpe Commander (Modified By Lxl1638)

00405C02 |. 33C0              xor     eax, eax
00405C04 |> 66:8B0C85 B826400>/mov     cx, word ptr [eax*4+4026B8]
00405C0C |. 66:03C8           |add     cx, ax
00405C0F |. 66:41             |inc     cx
00405C11 |. 66:898C45 34FFFFF>|mov     word ptr [ebp+eax*2-CC], cx
00405C19 |. 40                |inc     eax
00405C1A |. 83F8 0F           |cmp     eax, 0F
00405C1D |.^7C E5             \jl      short 00405C04

  内存单元[4026B8]内容如下:
  004026B8  22 00 00 00 4A 00 00 00 35 00 00 00 50 00 00 00  "...J...5...P...
  004026C8  33 00 00 00 4C 00 00 00 2D 00 00 00 28 00 00 00  3...L...-...(...
  004026D8  27 00 00 00 38 00 00 00 29 00 00 00 2C 00 00 00  '...8...)...,...
  004026E8  17 00 00 00 23 00 00 00 25 00 00 00 00 00 00 00  ...#...%.......
  跟前面一样计算方法,最后解密结果为:
    [ebp-CC]= #L8T8R400B48$14
  这就是PECMD的TEXT命令用来显示[ebp-2C]内容的位置与字体。

00405C1F |. 8D85 34FFFFFF     lea     eax, dword ptr [ebp-CC]
00405C25 |. 50                push    eax                              ; /<%s>
00405C26 |. 68 9C2B4000       push    00402B9C                         ; |2.7.831.2302
00405C2B |. 8D45 D4           lea     eax, dword ptr [ebp-2C]          ; |
00405C2E |. 50                push    eax                              ; |<%s>
00405C2F |. 68 B82B4000       push    00402BB8                         ; |PECMD
00405C34 |. 68 C42B4000       push    00402BC4                         ; |%s%s , V%s%s*
00405C39 |. 68 00634100       push    00416300                         ; |s
00405C3E |. FF15 FC124000     call    dword ptr [<&USER32.wsprintfW>]  ; \wsprintfW

  调用API函数wsprintfW来格式化上面字符串,存在[00416300]单元中,容易看出其结果为:
    PECMD - Winpe Commander (Modified By Lxl1638),V2.7.831.2302#L8T8R400B48$14

00405C44 |. 83C4 18           add     esp, 18
00405C47 |. 393D B8624100     cmp     dword ptr [4162B8], edi         ;比较是否显示字符串
00405C4D  74 4C           je     short 00405C9B  ;相等不显示,可以改为jmp,亦即74->EB
00405C4F |> 68 00634100       push    00416300                         ; /<%s> = ""
00405C54 |. 8D85 2CFDFFFF     lea     eax, dword ptr [ebp-2D4]         ; |
00405C5A |. 68 7C2B4000       push    00402B7C                         ; |%s
00405C5F |. 50                push    eax                              ; |s
00405C60 |. FF15 FC124000     call    dword ptr [<&USER32.wsprintfW>]  ; \wsprintfW
00405C66 |. 6A 01             push    1
00405C68 |. E8 2DFEFFFF       call    00405A9A
00405C6D |. 8D85 2CFDFFFF     lea     eax, dword ptr [ebp-2D4]
00405C73 |. 50                push    eax
00405C74 |. C705 2C3D4100 FFF>mov     dword ptr [413D2C], 0FFFFFF
00405C7E |. E8 38000000       call    00405CBB                        ;调用写字符串子程序
00405C83 |. 83C4 14           add     esp, 14
00405C86 |. 68 D0070000       push    7D0                              ;/Timeout=2000.ms
00405C8B |. FF15 64104000     call    dword ptr [<&KERNEL32.Sleep>]    ;\Sleep
00405C91 |. 6A 00             push    0
00405C93 |. E8 02FEFFFF       call    00405A9A
00405C98 |. 83C4 04           add     esp, 4
00405C9B |> 8B4D 74           mov     ecx, dword ptr [ebp+74]
00405C9E |. A1 B8624100       mov     eax, dword ptr [4162B8]
00405CA3 |. 5F                pop     edi
00405CA4 |. 5E                pop     esi

这个子程序只要修改00405C4D这一行,亦即74改为EB就达到不显示字符串目的,不过更好方法还是不去
调用它,毕竟它会占用CPU周期与内存。它是被下面子程序来调用的:


00409A14 |. 53                push    ebx
00409A15 |. E8 4BBFFFFF       call    00405965
00409A1A |. 59                pop     ecx
00409A1B    E8 FBC0FFFF       call    00405B1B               ;这里调用上面,把它改为nop就好
00409A20 |. EB 20             jmp     short 00409A42
00409A22 |> 53                push    ebx

最后,用十六进制软件如WinHex打开PECMD.EXE,搜索“E8FBC0FFFF”替换为“9090909090”即好。
回复

使用道具 举报

729#
发表于 2007-4-17 07:54:01 | 只看该作者
原帖由 Sia 于 2007-4-17 06:25 AM 发表


我是这样分析的,不知老大认为正确否?原程序用来显示左上角字符串的子程序如下:

00405B1B /$ 55                push    ebp
00405B1C |. 8D6C24 88         lea     ebp, dword ptr [esp-78]
0040 ...


^_^^_^!!分析得如此深入!学习了。
回复

使用道具 举报

730#
发表于 2007-4-17 08:54:12 | 只看该作者
原帖由 Sia 于 2007-4-17 06:25 AM 发表


我是这样分析的,不知老大认为正确否?原程序用来显示左上角字符串的子程序如下:

00405B1B /$ 55                push    ebp
00405B1C |. 8D6C24 88         lea     ebp, dword ptr [esp-78]
0040 ...


:L
高手……
难怪我用ultraedit找不到左上角的字符
看来有时间还是应该深入的学学汇编
回复

使用道具 举报

731#
发表于 2007-4-17 09:22:58 | 只看该作者
hjjkhkjhkjlkjlkjlkj
回复

使用道具 举报

732#
发表于 2007-4-17 10:54:12 | 只看该作者
可以用新版直接替换PE中的旧版本吗?
应该可以向下兼容吧
回复

使用道具 举报

733#
发表于 2007-4-17 14:17:54 | 只看该作者
不错,呵呵,比以前的好了!
回复

使用道具 举报

734#
发表于 2007-4-19 01:54:51 | 只看该作者
太厉害了,都看不懂讲什么,佩服
回复

使用道具 举报

735#
发表于 2007-4-19 12:45:08 | 只看该作者
好东西还是要顶的啊!
回复

使用道具 举报

736#
 楼主| 发表于 2007-4-20 13:15:41 | 只看该作者
5.1了,刷新一下。
回复

使用道具 举报

737#
发表于 2007-4-20 13:31:43 | 只看该作者
原帖由 lxl1638 于 2007-4-20 01:15 PM 发表
5.1了,刷新一下。


谢谢老九辛苦了!等下把我的更新了。
回复

使用道具 举报

738#
发表于 2007-4-20 14:19:10 | 只看该作者
老九你发布的太快了。2.7我还没整明白呢!2.8又出来了!问一下,用什么解开你压缩的那两个文件!:P
回复

使用道具 举报

739#
 楼主| 发表于 2007-4-20 14:46:55 | 只看该作者
原帖由 tonghuan 于 2007-4-20 02:19 PM 发表
老九你发布的太快了。2.7我还没整明白呢!2.8又出来了!问一下,用什么解开你压缩的那两个文件!:P


晕,这个都要说明?算了,自己搞定,搞不定这个别上网了。
回复

使用道具 举报

740#
发表于 2007-4-20 15:20:20 | 只看该作者
好东西啊谢谢.....
回复

使用道具 举报

741#
发表于 2007-4-20 16:10:48 | 只看该作者
有空我也研究研究...
回复

使用道具 举报

742#
发表于 2007-4-20 17:35:03 | 只看该作者
老九大师的脚步是越来越快了,不能错过这个,下载学习,谢谢!
回复

使用道具 举报

743#
发表于 2007-4-20 22:58:26 | 只看该作者
不容易,终于可以下载了。谢谢楼主无私奉献!
回复

使用道具 举报

744#
发表于 2007-4-21 03:16:33 | 只看该作者
厉害啊  又有进步了
回复

使用道具 举报

745#
发表于 2007-4-21 08:30:40 | 只看该作者
又更新了,下载看看?
回复

使用道具 举报

746#
发表于 2007-4-21 09:02:43 | 只看该作者
非常感谢楼主分享!~~
回复

使用道具 举报

747#
发表于 2007-4-22 00:11:07 | 只看该作者
想學學PECMD
回复

使用道具 举报

748#
发表于 2007-4-22 10:10:04 | 只看该作者
请问一下 DEVI 命令的工作细节:
当运行此命令搜索到硬件时是不是自动把INF解压到 INF目录,SYS文件到 SYSTEM32\DRIVER目录,其他任何文件解压到 SYSTEM32目录?
假如有两个INF文件呢?

另外,假如当前目录还有子目录那PECMD是否也自动解压,还是只解压当前目录的非目录文件?

主要问题来至于NF较新的网卡驱动要“依次”安装两个设备,如果单纯使用两个 bartpe.exe -pnp 并不能把第二个设备装上。而需要把那个 devi...infcachebuild...bartpe 循环段再重复一次才行。 如果DEVI在解压时解压当前目录所有文件,那么执行一次bartpe -pnp 应该就可以了。这样可以省很多时间。

[ 本帖最后由 waiting 于 2007-4-22 10:13 AM 编辑 ]
回复

使用道具 举报

749#
 楼主| 发表于 2007-4-22 11:05:30 | 只看该作者
用DEVI命令解压(压缩时按目录结构打包),用BartPE安装。
回复

使用道具 举报

750#
发表于 2007-4-22 11:27:33 | 只看该作者
好东西
谢谢
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-28 18:14

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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