liberize 发表于 2015-10-15 23:41:22

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



工具:

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

http://pan.baidu.com/s/1hquEuv6 密码:hnjw

ge 发表于 2017-7-28 07:26:05

xmzhqw 发表于 2017-7-24 16:45
昨天试了你的,可以弄出一个代码,但不是 pecmd.ini。我以为成功了,但后来才发现不是。不知道什么原因。 ...

对于加密的没有必要用!好用的pe多了!当然可以用自己编写的PECMD.INI去调用原来的PECMD.INI!太折腾!不如找一个自己觉得好一点的pe用!或者可以自己少量修改一下就可以的!

my9823 发表于 2015-10-17 12:17:54

m大改进算法,估计那些盈利的pe,为系统添加垃圾的pe们又笑了,从pe作者角度希望自己的pe不被修改,当然盈利者的这种想法更加强烈,但用户角度最痛恨这种盈利性的pe,真是两边不讨好!其实我无所谓,因为我已经很少使用pe,就算是用只是帮人家装一下系统而已,大不了直接用安装盘的iso写入U盘连pe都省了!个人观点,不吐不快,如有得罪之处,就当我放了个屁!

hhkj2015 发表于 2015-12-25 14:45:01

求破解这个配置




2012hzy6420 发表于 2015-10-15 23:42:04

xxfx谢谢分享:dizzy:

赤木刚宪 发表于 2015-10-16 00:03:06

LZ是通过日志判断?貌似不科学,对新版PECMD也无效

阿弥陀佛 发表于 2015-10-16 00:11:12

牛!我的PE被拿来开刀了。还好没有恶意代码{:3_141:}
软件先收藏!

阿弥陀佛 发表于 2015-10-16 00:14:25

赤木刚宪 发表于 2015-10-16 00:03
LZ是通过日志判断?貌似不科学,对新版PECMD也无效

应该不是通过日志啊。软件还没测试,但是看截图跟我写的配置一样一样滴。牛逼!m大要哭了

liberize 发表于 2015-10-16 00:17:32

赤木刚宪 发表于 2015-10-16 00:03
LZ是通过日志判断?貌似不科学,对新版PECMD也无效

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

liberize 发表于 2015-10-16 00:19:07

阿弥陀佛 发表于 2015-10-16 00:11
牛!我的PE被拿来开刀了。还好没有恶意代码
软件先收藏!

{:3_158:}{:3_150:}

xzf680 发表于 2015-10-16 00:20:35

感谢分享,辛苦了

1400700226 发表于 2015-10-16 00:23:03

阿弥陀佛 发表于 2015-10-16 00:11
牛!我的PE被拿来开刀了。还好没有恶意代码
软件先收藏!

哈哈,不知道大神为啥要加密?这样不是无忧风格啊。。。。。。

阿弥陀佛 发表于 2015-10-16 00:24:10

liberize 发表于 2015-10-16 00:17
其实准确说“解密”无关,目前之所以没有破解只是因为算法没公开,我也没有去研究它的算法,反正不管怎样 ...

要是这样的话,那就算整个pecmd.exe压缩加壳,应该也可以拿到脚本吧
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: PECMD.INI CMPS/CMPA 加密破解方法