无忧启动论坛

标题: PECMD.INI CMPS/CMPA 加密破解方法 [打印本页]

作者: liberize    时间: 2015-10-15 23:41
标题: PECMD.INI CMPS/CMPA 加密破解方法
本帖最后由 liberize 于 2015-10-18 02:22 编辑

前言:

最近在找一个好用的 PE,找到了阿弥陀佛的 Win7PE,符合我的需求,然而当我想定制一下的时候,却发现里面的 INI 脚本做了加密。
发信请求解密,没有得到回复,于是自己写了个小工具,解出了其中的 INI 脚本。

原理:

已开源在 GitHub:https://github.com/liberize/pecmd-decrypt,其实没有几行代码。

其实准确说“解密”无关,目前之所以没有破解只是因为算法没公开,我也没有去研究它的算法,
反正不管怎样,最后肯定要解出来才能执行,所以我在执行的地方替换了它调用的系统 API,从 API 参数里面拿到了解出来的脚本。

鉴于 mdyblog 已经做出了反应,相信他已经知道我 hook 的是哪个 API,没错,就是 MultiByteToWideChar。
pecmd 执行每一行的时候会将其转为 unicode 编码,便会调用上面的 api,过滤一下就可以得到原始内容。

理论上此方法适用于使用所有加密方式加密的 ini,不限于 CMPS/CMPA。

用什么版本的 pecmd.exe 其实无所谓,但是最近的 m 版 pecmd,启动时会执行一个内置脚本,这个脚本的内容也会出现在生成的 ini 文件中,
为了避免混在一起无法区分,请使用不会执行内置脚本的 pecmd,谁有的话欢迎提供(我就不传了,附件只能传 500k)。
判断方法:用一个没有加密的脚本去跑,如果解出来是一样的,那么就不会执行内置脚本。

步骤:

本人比较懒,所以直接发布简陋的命令行工具,没有做成 GUI 工具。以下步骤在 PE 下进行。

1. 先得到加密的 pecmd.ini,如果内置于 pecmd.exe,请用 res hacker 提取
2. 找一个不会执行内置脚本的 pecmd.exe,32/64 位其实无所谓,只要 PE 能运行就可以
3. 下载附件,使用与 pecmd.exe 对应的版本,比如 pecmd.exe 是 64 位的就使用 x64 文件夹中的版本
4. 将 1、2 里面的 pecmd.exe 和 pecmd.ini 放在 x86/x64 这个目录下
5. 打开终端,运行 DetourHook.exe "pecmd.exe pecmd.ini" DetourHookDll.dll
6. 在当前目录生成 original.ini,便是解密后的 pecmd.ini

QQ截图20151015233921.png

工具:

10-16 更新: 修复了乱码等若干 bug,生成的原始 ini 更加准确

http://pan.baidu.com/s/1hquEuv6 密码:hnjw
QQ截图20151015233241.png

作者: 2012hzy6420    时间: 2015-10-15 23:42
xxfx谢谢分享
作者: 赤木刚宪    时间: 2015-10-16 00:03
LZ是通过日志判断?貌似不科学,对新版PECMD也无效
作者: 阿弥陀佛    时间: 2015-10-16 00:11
牛!我的PE被拿来开刀了。还好没有恶意代码
软件先收藏!
作者: 阿弥陀佛    时间: 2015-10-16 00:14
赤木刚宪 发表于 2015-10-16 00:03
LZ是通过日志判断?貌似不科学,对新版PECMD也无效

应该不是通过日志啊。软件还没测试,但是看截图跟我写的配置一样一样滴。牛逼!m大要哭了
作者: liberize    时间: 2015-10-16 00:17
赤木刚宪 发表于 2015-10-16 00:03
LZ是通过日志判断?貌似不科学,对新版PECMD也无效

其实准确说“解密”无关,目前之所以没有破解只是因为算法没公开,我也没有去研究它的算法,反正不管怎样,最后肯定要解出来才能执行,所以我在执行的地方替换了它调用的系统 API,从参数里面拿到了解出来的脚本。
作者: liberize    时间: 2015-10-16 00:19
阿弥陀佛 发表于 2015-10-16 00:11
牛!我的PE被拿来开刀了。还好没有恶意代码
软件先收藏!


作者: xzf680    时间: 2015-10-16 00:20
感谢分享,辛苦了
作者: 1400700226    时间: 2015-10-16 00:23
阿弥陀佛 发表于 2015-10-16 00:11
牛!我的PE被拿来开刀了。还好没有恶意代码
软件先收藏!

哈哈,不知道大神为啥要加密?这样不是无忧风格啊。。。。。。
作者: 阿弥陀佛    时间: 2015-10-16 00:24
liberize 发表于 2015-10-16 00:17
其实准确说“解密”无关,目前之所以没有破解只是因为算法没公开,我也没有去研究它的算法,反正不管怎样 ...

要是这样的话,那就算整个pecmd.exe压缩加壳,应该也可以拿到脚本吧
作者: liberize    时间: 2015-10-16 00:30
阿弥陀佛 发表于 2015-10-16 00:24
要是这样的话,那就算整个pecmd.exe压缩加壳,应该也可以拿到脚本吧

是的,不过其实这个破解的方法封住也不难
作者: 阿弥陀佛    时间: 2015-10-16 00:30
1400700226 发表于 2015-10-16 00:23
哈哈,不知道大神为啥要加密?这样不是无忧风格啊。。。。。。

这个么,在做这个win7PE之前我也从来不加密。但是无忧不是有段时间被某些人搅浑了。还有人就拿别人的pe随便改点皮毛就吹得天花乱坠。某些臭名昭著的个人或网站,甚至加了恶意软件。。。。我想有点水平的人配置文件完全可以自己写。这也是一种学习啊。而且我的pe也留了pecmd.ini最为diy的接口。
作者: liberize    时间: 2015-10-16 00:35
阿弥陀佛 发表于 2015-10-16 00:30
这个么,在做这个win7PE之前我也从来不加密。但是无忧不是有段时间被某些人搅浑了。还有人就拿别人的pe随 ...

其实我只是想把世界之窗换成比较小的 opera,虽说直接删掉世界之窗的文件就可以了,可是我有比较严重的洁癖 + 强迫症,不把世界之窗的代码删掉就浑身不爽,所以。。。
作者: 阿弥陀佛    时间: 2015-10-16 00:39
liberize 发表于 2015-10-16 00:30
是的,不过其实这个破解的方法封住也不难

那个7pe还有些问题。dism好像不完整。可能因为我添加的驱动不适合,有些人反应找不到磁盘。还有一个U盘不能自动分配盘符,这个只要kill explorer就行了,这句忘了。配置文件后面那段代码就是定时检测插入新磁盘就自动kill explorer的。本来想等问题多一点再作更新的。
如果你需要,我再传一个没有软件没有集成驱动的版本。
作者: 阿弥陀佛    时间: 2015-10-16 00:57
渣网速。上传限制得只有500kb/s。。传完了
链接: http://pan.baidu.com/s/1ntnI88T 密码: mmnq
作者: gylgw    时间: 2015-10-16 06:28
本帖最后由 gylgw 于 2015-10-16 06:59 编辑

这个比较牛啊,谢谢楼主分享。

但是好像对我现在所用的PE解密不了,解出来是乱码。而且在RH中怎么判断哪个是PECMD呢?

和你一样位置没有内容

和你一样位置没有内容
sshot-2.png
sshot-3.png

作者: tegl    时间: 2015-10-16 07:12
厉害,感谢分享宝贵经验
作者: chiannet    时间: 2015-10-16 07:41
liberize 发表于 2015-10-16 00:17
其实准确说“解密”无关,目前之所以没有破解只是因为算法没公开,我也没有去研究它的算法,反正不管怎样 ...

又一牛人。
作者: 赤木刚宪    时间: 2015-10-16 07:49
chiannet 发表于 2015-10-16 07:41
又一牛人。

我测试解密失败哦
作者: notepad    时间: 2015-10-16 08:19
给加密的脚本解密成功,感谢分享!
作者: skype2015    时间: 2015-10-16 08:30
感谢分享
作者: chiannet    时间: 2015-10-16 09:12
赤木刚宪 发表于 2015-10-16 07:49
我测试解密失败哦

我测试成功了
作者: bowpot    时间: 2015-10-16 09:46
不学习就跟不上了
作者: 2012jc天马行空    时间: 2015-10-16 10:45
chiannet 发表于 2015-10-16 09:12
我测试成功了

同样成功
作者: liberize    时间: 2015-10-16 10:58
chiannet 发表于 2015-10-16 09:12
我测试成功了

不能解的请贴上你们的 PECMD.EXE,我看一下
作者: liberize    时间: 2015-10-16 11:00
gylgw 发表于 2015-10-16 06:28
这个比较牛啊,谢谢楼主分享。

但是好像对我现在所用的PE解密不了,解出来是乱码。而且在RH中怎么判断哪 ...

你找的第二张图这个就是啊,一般比较大的资源,并且在开始有 CMPA 字样应该就是了
第三张图似乎只有注释乱码?也许原来的脚本就是这样子的
作者: liberize    时间: 2015-10-16 11:03
赤木刚宪 发表于 2015-10-16 07:49
我测试解密失败哦

不能解的请贴上你们的 PECMD.EXE,我看一下
作者: 青青草    时间: 2015-10-16 11:09
本帖最后由 青青草 于 2015-10-17 00:17 编辑
liberize 发表于 2015-10-16 11:03
不能解的请贴上你们的 PECMD.EXE,我看一下


麻烦您帮忙看一下,谢谢了!

PECMD.rar

691.97 KB, 下载次数: 123, 下载积分: 无忧币 -2

PECMDini.rar

10.28 KB, 下载次数: 66, 下载积分: 无忧币 -2


作者: liberize    时间: 2015-10-16 11:12
青青草 发表于 2015-10-16 11:09
麻烦您帮忙看一下,谢谢了!

你这个 PECMD 有点丧心病狂啊,资源里面放满了脚本,有加密的也有没加密的
作者: 青青草    时间: 2015-10-16 11:15
liberize 发表于 2015-10-16 11:12
你这个 PECMD 有点丧心病狂啊,资源里面放满了脚本,有加密的也有没加密的

呵呵,难怪找不到。谢谢了!
作者: gylgw    时间: 2015-10-16 11:20
我使用的PECMD.EXE和PECMD.INI,还有一个是三卡加载INI

PECMD.part1.rar

490 KB, 下载次数: 83, 下载积分: 无忧币 -2

PECMD.part2.rar

275.57 KB, 下载次数: 73, 下载积分: 无忧币 -2


作者: liberize    时间: 2015-10-16 11:20
青青草 发表于 2015-10-16 11:09
麻烦您帮忙看一下,谢谢了!

我看了,有一些乱码,还有一些内容不对,我再看一下
作者: 青青草    时间: 2015-10-16 11:29
liberize 发表于 2015-10-16 11:20
我看了,有一些乱码,还有一些内容不对,我再看一下

再次谢谢了!
作者: lbw2007    时间: 2015-10-16 13:05
不明觉厉……
说白了就是绕过加密了是吗。支持分享!
作者: 糊涂    时间: 2015-10-16 13:45
我就说嘛,有矛就有盾,只是时间问题,用不了多久,“一键式”明文程序就会出来!
作者: gylgw    时间: 2015-10-16 15:23
liberize 发表于 2015-10-16 11:03
不能解的请贴上你们的 PECMD.EXE,我看一下

麻烦帮我的看一下可以吗?在31楼,谢谢
作者: feng-aa    时间: 2015-10-16 16:16
是我不会用吗,没有成功,
菜鸟不懂 (1. 用 res hacker 提取 pecmd.exe 中加密的 ini 文件,保存到文件,比如 201)这个干嘛用
保存到什么后缀文件呢,这一步是不是看ini在那里啊
是不是直接下面的就可以啦
2. 下载附件,使用与 pecmd.exe 对应的版本,比如 pecmd.exe 是 64 位的就使用 x64 文件夹中的版本
3. 打开终端,运行 DetourHook.exe "pecmd.exe 201" DetourHookDll.dll
4. 在当前目录生成 log.txt,便是解密后的 pecmd.ini




作者: 2012jc天马行空    时间: 2015-10-16 16:30
feng-aa 发表于 2015-10-16 16:16
是我不会用吗,没有成功,
菜鸟不懂 (1. 用 res hacker 提取 pecmd.exe 中加密的 ini 文件,保存到文件, ...

他针对的是pecmd.exe与pecmd.ini合并的情况。有些分开的,只要拿pecmd.ini来解密就行了
作者: zds1210    时间: 2015-10-16 16:32
加我群。。人才

作者: awnuitfk    时间: 2015-10-16 17:38
支持!!!年年有牛人!今年又一个!嘿嘿!
作者: awnuitfk    时间: 2015-10-16 17:52
楼主,最后一步在终端运行,什么意思?我运行报错呀!!!!
作者: 大毛桃    时间: 2015-10-16 18:46
解密成功!
作者: my9823    时间: 2015-10-16 19:13
就是说利用pecmd加载配置文件时肯定要解密来获取解密后的ini,欲擒故纵!
作者: my9823    时间: 2015-10-16 19:27
awnuitfk 发表于 2015-10-16 17:52
楼主,最后一步在终端运行,什么意思?我运行报错呀!!!!

打开终端,运行 DetourHook.exe "pecmd.exe 201" DetourHookDll.dll
其中的201是你导出的加密的ini,用原版的pecmd加载这个配置,如果你导出时peinit,就把201改成你到处的文件名,我猜是这样用的!
作者: andos    时间: 2015-10-16 19:50
M似乎出手了?

http://bbs.wuyou.net/forum.php?m ... 9021&fromuid=329939


CMPS 加密的代码,请请UNICODE 带BOM格式保存。并换用最新版本。
用记事本另存为 UNICODE即可。
如图:


用WinHEX看,开始2个字节是 FF FE  就对了。



作者: zhczf    时间: 2015-10-16 19:55
楼主的教程太简陋了,搞详细更好
作者: 2012qz    时间: 2015-10-16 20:24
2012jc天马行空 发表于 2015-10-16 16:30
他针对的是pecmd.exe与pecmd.ini合并的情况。有些分开的,只要拿pecmd.ini来解密就行了

我的是分开的,好像不成功,解密后 log 内容都一样
作者: liberize    时间: 2015-10-16 20:29
2012qz 发表于 2015-10-16 20:24
我的是分开的,好像不成功,解密后 log 内容都一样

前面可能是内置脚本,看 1 楼
作者: liberize    时间: 2015-10-16 20:30
gylgw 发表于 2015-10-16 11:20
我使用的PECMD.EXE和PECMD.INI,还有一个是三卡加载INI

请再试试,乱码应该没有了,我这儿基本都能解,除了那个 PECMD.INI 一执行就重启。。。
注意前面一段可能是内置脚本,看 1 楼
作者: liberize    时间: 2015-10-16 20:32
青青草 发表于 2015-10-16 11:09
麻烦您帮忙看一下,谢谢了!

更新了,你再试试,乱码应该没有了,注意下前面可能是内置脚本,看 1 楼
作者: 2012qz    时间: 2015-10-16 20:32
本帖最后由 2012qz 于 2015-10-16 20:52 编辑
liberize 发表于 2015-10-16 20:29
前面可能是内置脚本,看 1 楼


INI和WCS解密后只有3行代码,全部一样,不知道是不是我操作问题,换新版本解密后original.ini空白
作者: 2012qz    时间: 2015-10-16 20:57
liberize 发表于 2015-10-16 20:32
更新了,你再试试,乱码应该没有了,注意下前面可能是内置脚本,看 1 楼

我想问一下,被解密的 INI 要放在那个文件夹,DetourHook.exe等破解文件有要求放在哪个目录吗
作者: 23456    时间: 2015-10-16 21:49
本帖最后由 23456 于 2015-10-16 22:06 编辑

[L0AC3OMPI$CP1D(RO(~(EW.png

成功了  原来是挑PECMD.EXE          大白菜03     PE乱码
作者: liberize    时间: 2015-10-16 22:07
23456 发表于 2015-10-16 21:49
成功了  原来是挑PECMD.EXE          大白菜03     PE乱码

这个不像是成功了。。
作者: 23456    时间: 2015-10-16 22:35
liberize 发表于 2015-10-16 22:07
这个不像是成功了。。

P0)R4[W[R}UVH[8JQM_D2FD.png






乱码


附原件      DBC3.zip (6.54 KB, 下载次数: 195)