|
本帖最后由 datbik189 于 2022-5-25 11:03 编辑
使用M大的PECMD2012有段时间了,累计也写了几万行的脚本.
现将自己常使用的命令块(只支持最新的PECMD20180808版本)分享一下, 源码就不公开了, 本人为业余爱好者,水平有限且心灵比较脆弱, 怕受打击!!!
希望以此抛砖引玉, 让各位大大也分享自己的命令块.
------------------------------------------------------------------------------------------------------
【命令_WM消息】
调用: 脚本开头,load 999.txt*命令_WM消息 或 load #999*命令_WM消息(脚本内置,以下略) 或 显示说明(第一个参数为help)
用途: 设置常用变量,详见命令_WM消息.txt
【命令_环境变量】
调用: 脚本开头,load 999.txt*命令_环境变量
用途: 当使用envi^ forcelocal=1,%path%或%&path%为空值,调用后其值为环境变量path的值(path只是1个例子)
【命令_宽字符】
调用: load 999.txt*命令_宽字符 &V [窄字符]
load 999.txt*命令_宽字符 &V SET?CHAR0 &V1 1 //set-raw &V1=calc &V=%&V%,1为偏移字节数
用途: 转换PE变量值为宽字符或窄字符(16进制),去掉0x
【命令_字节读取】
调用: load 999.txt*命令_字节读取 &V 起始字节(负数为向上读取) 读取字节(负数为舍弃字节) [C:\123.EXE]
用途: 读取指定字节(16进制)
【命令_行读取】
调用: load 999.txt*命令_行读取 &V1(原始变量,返回值),&V2(配合命令参数转换使用) 起始行数(负数为向上读取) 读取行数(负数为舍弃行数) [C:\123.TXT]
用途: 读取指定行数
【命令_行替换】
调用: load 999.txt*命令_行替换 &V 1-2=&V1
用途: 替换指定行数
【命令_参数转换】
调用: load 999.txt*命令_参数转换 &V1,&V2 %*(,&V1为原始变量,返回值:&V1保留前后空格,&V2去掉前后空格)
用途: 参数转换为多行,回车间隔
【命令_字符替换】
调用: load 999.txt*命令_字符替换 &V3 "SED[LPOS]精确逆向" 0:0,&V1,&V2 "SED[LPOS]精确逆向" 0:0,&V4,&V5 (参照sed命令,&V3为输入串,&V1为旧串,&V2为新串,支持逆向替换)
用途: 字符替换
【命令_排序】
调用: load 999.txt*命令_排序 数字[字母]升序[降序] &V 1 3 2 或 load 999.txt*命令_排序 数字[字母]升序[降序] &V(&V为多行变量)
用途: 排序
【命令_find】
调用: load 999.txt*命令_find &V "/I /V &V1" "/I /V &V2"
用途: 参照cmd中find.exe
【命令_find.exe】
调用: load 999.txt*命令_find &V1_,&V2_,&V3_,&V4_ LPOS匹配行数 &V1 SED精确不匹配 &V2
&V1_(满足条件的行的内容)
&V2_(满足条件的行数)
&V3_(不满足条件的行的内容)
&V4_(不满足条件的行数)
&V1,&V2(指定字符串)
用途: 查找包含指定字符串的行
【命令_交并集】
调用: load 999.txt*命令_交并集 &V1 &V2
&V1(返回交集),&V2(返回并集)
用途: 简单字符或数字的交并集,如"1 2 3" 和 "2 3 4"的交集为"2 3",并集为"1 2 3 4"
【命令_大小写】
调用: load 999.txt*命令_大小写 &V 大写[小写]
用途: 大小写
【命令_文本加密】
调用: load 999.txt*命令_文本加密 加密[解密] &V 8,21,33,45
用途: 文本转换成16进制,进行简单加密[解密]
【命令_字符转义】
调用: load 999.txt*命令_字符转义 &V1,&V2
用途: 为sed命令服务,&V1为输入值,返回&V1(旧串,特殊字符全部转义),&V2(新串(\转义)
【命令_CMD脚本】
调用: load 999.txt*命令_CMD脚本 xxx.bat
用途: 在当前目录生成一个批处理(混合脚本)文件,方便调用PECMD
【命令_磁盘信息】
调用: load 999.txt*命令_磁盘信息 &V hd[imdisk] ["GHSTSTAT.TXT"] ["IMAGEW.TXT"]
GHSTSTAT.TXT(由GHOST.EXE -DD生成);IMAGEW.TXT(由IMAGEW.EXE /L /ALL>IMAGEW.TXT生成)
用途: 返回磁盘或imisk虚拟盘信息
【命令_文件分割】
调用: load 999.txt*命令_文件分割 &V "%MYNAME%" 10K 20K
load 999.txt*命令_文件分割 &V "%MYNAME%" *300k
load 999.txt*命令_文件分割 &V "%MYNAME%" 1/3 1/4
load 999.txt*命令_文件分割 &V "%MYNAME%" 0 10240(配合getf -find,0为控制符,10240为找到文件位置)
用途: 返回块参数(多行),若第一行为0 10240,使用putf -dd -bs=32m -skipb=0 -len=10240 xx.1,0,%myname%生成xx.1文件
【命令_MESS对齐】
调用: load 999.txt*命令_MESS对齐 &V &V1[间隔] 右对齐[左对齐,居中对齐]
也可人为的在输入变量&V加入第一行: ^中 ^左 ^右 ^左 ^右 ^中 (优先)
用途: 对齐功能,补空格
【命令_MESS】
调用: load 999.txt*命令_MESS &V 标题 &V1 保存 不保存 取消 Y 5000
用途: 等同于MESS. %&V1%@标题#YNC*5000$Y,&V返回YES或NO或CANCEL
【命令_文本编辑】
调用: load 999.txt*命令_文本编辑 &V 标题 &V1 &V2 [文本编辑 Y 5000]
&V1为LABE的值,&V2为文本框的值
[文本编辑 Y 5000]-调用【命令_MESS】,省略时调用MESS(#YN,取消返回值&V为TAB)
用途: 简单文本编辑器
【命令_EDIT】
调用: load 999.txt*命令_EDIT &V 标题 &V1 &V2 0x1
&V1为LABE的值,&V2为文本框的值,0x1为编辑框属性(密码框)
取消返回值&V为TAB
用途: 简单编辑框
【命令_LIST】
调用: load 999.txt*命令_LIST &V 标题 &V1 &V2 &V3 [提示]
&V1为LABE的值,&V2为下拉框的值,&V3为下拉框的当前选项,[提示]-下拉出TIP提示
取消返回值&V为TAB
用途: 简单下拉框
【命令_因子重复】
调用: load 999.txt*命令_因子重复 &V 3 D A
用途: 上以上返回 D A D A D A
【命令_数字循环】
调用: load 999.txt*命令_数字循环 &V 1 1 100
用途: 以上返回1~100的自然数
【命令_注册表】
调用: load 999.txt*命令_注册表 &V1 &V2[&|!|.|?] REG_SZ[--a|--av|--ak]
&V1: 项(结尾为"\")或键
&V2: 设置值,&为设置空值,!为删除
REG_SZ: 为数据类型,支持数字
用途: 修改注册表
【命令_短文件名】
调用: load 999.txt*命令_短文件名 &V [1]
&V: 文件(夹)的全路径
1:正整数,处理级别,逆向处理
用途: 获取文件(夹)的短文件名
https://www.lanzous.com/b702721/ (密码:1adn)
|
|