标题: [加密解密] 批处理文件bat转exe加密之后的解密破解还原方法 [打印本页]
作者: Batcher 时间: 2009-2-14 22:49 标题: 批处理文件bat转exe加密之后的解密破解还原方法
1、此处以破解经过《批处理潜行者V5.0》转换的批处理为例;
2、转换后的批处理下载地址:http://rtngslin.moe.hm/cndos-up/img/771.rar,解压后的可执行文件名为CS.exe;
3、本例中用到不是系统自带的 find 命令,而是的 GNU for Win32 的 find.exe (下载地址:http://bbs.bathome.net/thread-1114-1-1.html)。
破解方法如下:- @echo off
- rem 指定bat转exe之后可执行文件的所在路径
- set CodeFile=C:\test\aa.exe
- echo 正在搜索,可能需要几分钟时间,请稍候...
- set MyVbs=%temp%\a.vbs
- set FlagFile=%temp%\a.txt
- >"%MyVbs%" echo Set WshShell = WScript.CreateObject("WScript.Shell")
- >>"%MyVbs%" echo WshShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\cmd.exe\Debugger", "ntsd -d", "REG_SZ"
- >>"%MyVbs%" echo WScript.Sleep 5000
- >>"%MyVbs%" echo WshShell.Run "%CodeFile%"
- >>"%MyVbs%" echo WScript.Sleep 5000
- >>"%MyVbs%" echo WshShell.RegDelete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\cmd.exe\"
- >"%FlagFile%" echo.
- "%MyVbs%"
- for /f "delims=" %%a in ('find "%systemdrive%\\" -newer "%FlagFile%" -name "*.[bB][aA][tT]" 2^>nul') do (
- set "BatPath=%%a"
- )
- echo %BatPath%
- if "%BatPath%" equ "" (
- for /f "delims=" %%a in ('find "%systemdrive%\\" -newer "%FlagFile%" -name "*.[cC][mM][dD]" 2^>nul') do (
- set "BatPath=%%a"
- )
- )
- if "%BatPath%" neq "" (
- echo 批处理路径:%BatPath%
- echo 批处理内容:
- type "%BatPath%"|more
- ) else (
- echo 破解失败,请尝试其它破解方法。
- )
- pause
复制代码
1、此处以破解经过《批处理潜行者V5.0》转换的批处理为例;
2、转换后的批处理下载地址:http://rtngslin.moe.hm/cndos-up/img/771.rar,解压后的可执行文件名为CS.exe;
3、OllyDBG 的下载地址请自行 google 之。
破解方法如下:
1、用OllyDBG打开CS.exe
2、在OllyDBG的"反汇编"区域单击鼠标右键->"搜索"->"当前模块中的名称(标签)"
[attach]1290[/attach]
3、在弹出的搜索窗口中右键单击"WinExec"所在行->"在每个参考上设置断点"->关闭该搜索窗口
[attach]1291[/attach]
4、按F9键开始运行,到第一个断点处自动停止,在这里就能看到释放出来的批处理放在什么地方啦。此时批处理尚未被调用,所以我们大可不必担心批处理中可能存在的"危险性"代码给系统带来损害。
[attach]1292[/attach]
1、此处以破解经过《Quick Batch File Compiler 3.1.5》转换的批处理为例;
2、转换后的批处理下载地址:http://rtngslin.moe.hm/cndos-up/img/875.zip,解压后的可执行文件名为CN-DOS.exe;
3、Quick Batch File Compiler 的下载地址请自行 google 之。
破解方法如下:
1、用OllyDBG打开CN-DOS.exe
2、在OllyDBG的"反汇编"区域单击鼠标右键->"搜索"->"当前模块中的名称(标签)"
[attach]1293[/attach]
3、在弹出的搜索窗口中右键单击"CreateProcessA"所在行->"在每个参考上设置断点"->关闭该搜索窗口
[attach]1294[/attach]
4、按F9键开始运行,到第一个断点处自动停止,在这里就能看到释放出来的批处理放在什么地方啦。此时批处理尚未被调用,所以我们大可不必担心批处理中可能存在的"危险性"代码给系统带来损害。注,释放出来的批处理文件加了隐藏属性。
[attach]1295[/attach]
1、此处以破解经过《批处理潜行者V5.0》转换的批处理为例;
2、转换后的批处理下载地址:http://rtngslin.moe.hm/cndos-up/img/771.rar,解压后的可执行文件名为CS.exe;
3、本例通过修改 Command Processor AutoRun 来防止exe所释放出来的bat被运行,并自动找出其所在路径。
破解方法如下:
1、导入以下reg文件。- Windows Registry Editor Version 5.00
-
- [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor]
- "AutoRun"="wmic PROCESS where Name=\"cmd.exe\" get CommandLine>%temp%\\路径.txt&start notepad %temp%\\路径.txt&exit"
复制代码
2、运行待破解的CS.exe文件,这时在自动打开的文本文件中即可找到exe所释放出来的bat(可能具有隐藏属性)的所在路径。
3、导入以下reg文件以恢复正常bat的运行。- Windows Registry Editor Version 5.00
-
- [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor]
- "AutoRun"=""
复制代码
作者: defanive 时间: 2009-2-14 23:51
我以前破解都很简单的,有个软件可以动态跟踪EXE对文件的操作,直接就找到路径了。。。
作者: Batcher 时间: 2009-2-15 00:03 标题: 回复 2楼 的帖子
本帖收集的例子最大特点是:可以避免exe文件中可能存在的恶意代码对系统造成的损害。
如果不考虑这一点,可以使用filemon之类的软件监控exe释放文件的路径,这样确实简单,但没啥技术含量,因此该类方案在本帖中不予收录。
作者: defanive 时间: 2009-2-15 00:28
设置断点么。。。
其实直接在注册表里面加那个CMD启动自执行的BAT,然后在BAT里面加句Pause,暂停的时候直接拿走文件就可以了么,然后直接终止掉就不会执行下面的代码了。。。
作者: defanive 时间: 2009-2-15 00:36
依照现在的软件来看,都是最普通的写BAT代码到EXE(或者重新编译EXE),然后EXE执行时动态释放。。。
网上有很多文章说更高级的做法是利用C里面的system函数,就是直接调用DOS命令的函数。。。
那都是纸上谈兵,system的问题很多,system函数就等于直接在CMD里面输入运行,不仅预处理有问题,而且不像用BAT文件一样可以有标签和CALL等等,所以system是不可行的。更重要的是,人家为了不让别人看到代码,下载一个附带C程序编译器的软件,几乎是不太可能的,头文件的动态链接库是很大的。。。
所以,现在,到目前为止,我还没有看过一个转换软件不是动态释放的,只要监视就可以了。。。
作者: Batcher 时间: 2009-2-15 01:08 标题: 回复 4楼 的帖子
原理上是这样,修改那个注册表项也是轻而易举的事情。但我不了解转换软件的内部工作原理,如果某些转换软件以 cmd /k 之类的方式来调用,则可能跳过我们设置的障碍,恶意代码仍有可能被执行。我觉得还是映像劫持比较可靠些,所以当时也没有收录这个方法。
作者: Batcher 时间: 2009-2-15 01:15 标题: 回复 6楼 的帖子
据说这个软件不是动态释放类型的,根据我当时的测试,确实没有发现动态释放。
C:\Test>bat2exec.exe
BAT2EXEC 1.5 (c) 1990, 1991 Ziff Communications Co.
PC Magazine ?Douglas Boling
Syntax: BAT2EXEC filename.ext
可惜的是,这个软件对很多批处理中的常用特性写法都不支持。后来,个中高手根据该软件的源代码得出结论:只要注意某些批处理编写技巧,完全有可能被该软件转换成功。但我觉得他总结的方法太过复杂,而我又对这个不太感兴趣,就没有再深入下去。
作者: defanive 时间: 2009-2-15 02:29
Batcher把那东西传上来吧,90年的东西啊,这么老了。。。
作者: BBCC 时间: 2009-2-15 07:56
网上有很多文章说更高级的做法是利用C里面的system函数,就是直接调用DOS命令的函数。。。
越高级,越累啊...
作者: Batcher 时间: 2009-2-15 17:17 标题: 回复 8楼 的帖子
可以到这里去下载一个
http://www.cn-dos.net/forum/viewthread.php?tid=25914
作者: 54cml 时间: 2009-2-15 19:11
http://bbs.verybat.org/thread-15664-1-1.html
这种方法也是挺不错的^_^
作者: Batcher 时间: 2009-2-15 19:16 标题: 回复 11楼 的帖子
顶楼方案一也是用的映像劫持,只不过修改注册表使用了VBS,目的在于摆脱对reg.exe的依赖。
你那个a.exe是自己开发的么?能否介绍一下?
作者: 54cml 时间: 2009-2-15 19:17 标题: 回复 12楼 的帖子
If Trim(Command) <> "" Then
MsgBox Command
Else
Exit Sub
End If
仅此而已
作者: tireless 时间: 2009-2-15 21:15
54cml 的读取 cmd.exe 的参数的方法不错。鉴于此,也可以用 wmic。
导入以下reg文件,再运行加密的exe:- Windows Registry Editor Version 5.00
-
- [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor]
- "AutoRun"="wmic PROCESS where Name=\"cmd.exe\" get CommandLine>%temp%\\路径.txt&start notepad %temp%\\路径.txt&exit"
复制代码
恢复注册表键值:- Windows Registry Editor Version 5.00
-
- [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor]
- "AutoRun"=""
复制代码
作者: Batcher 时间: 2009-2-15 21:27 标题: 回复 14楼 的帖子
这个无法防止exe中可能包含的恶意代码的执行吧?
作者: tireless 时间: 2009-2-15 21:35 标题: 回复 15楼 的帖子
尾部有个 exit,exe里面的bat应该不会被执行。要不你测试下 cs.exe
作者: zqz0012005 时间: 2009-2-15 23:26
exe里面释放的bat虽然不会执行,但exe本身可能含有恶意功能。
作者: zqz0012005 时间: 2009-2-15 23:36
我曾经也是用的给CMD加启动项的方法:- reg.exe add "HKCU\Software\Microsoft\Command Processor" /v "AutoRun" /d "wmic process where \"name='cmd.exe'\" get commandline | findstr /irc:\"cmd[.exe]* /c\"&pause&exit" /f
复制代码
找到bat后拖到此解密脚本上- attrib -s -h -r %1
- echo.>tmp.txt
- copy tmp.txt+%1 "%~dp0%~n1.crack.bat"
- del tmp.txt
复制代码
作者: tireless 时间: 2009-2-16 02:56
测试发现,利用映像劫持或者修改 Command Processor AutoRun 的方法都不太可靠。例如以下两个测试文件,用这两个方法就行不通:
关卡巴程序.exe 用OllyDBG解出来了,批处理工具箱.exe 没解出来...
[ 本帖最后由 Batcher 于 2009-5-9 21:52 编辑 ]
作者: Batcher 时间: 2009-2-17 15:00 标题: 回复 19楼 的帖子
经测试,批处理工具箱.exe使用方案三可以破解,其它方法还没试,最近工作比较忙。- @shift 1
- @shift 1
- @ECHO off
- color 0A
- MODE con: COLS=62 lines=24
- :main
- cls
- title 东拼西凑个人批处理工具 作者:冰剑 www.is28.cn
- echo.
- echo www.is28.cn ╭──────────────╮
- echo ╭─────────┤ 东拼西凑批处理工具箱 ├─╮
- echo │ 主菜单 │ V1.5.1027 │ │
- echo │ ╰──────────────╯ │
- echo │ [1]系统优化 [2]系统安全 [3]系统修复 │
- echo │ [4]系统个性化 [5]系统工具 [6] │
- echo │ [7] [8]网络搜索 [9]其他功能 │
- echo │ │
- echo │ [V]进入作者特别推荐的批处理学习与交流论坛! │
- echo │ [A]关于程序 [W]作者主页 [Q]退出程序 │
- echo ╰──────────────────────────╯
- ::下面的代码省略了
复制代码
作者: zqz0012005 时间: 2009-2-18 20:58 标题: 回复 20楼 的帖子
用我18楼给CMD加启动项的方法可以得到。
cmd /c ""C:\WINDOWS\Temp\a00785.bat" "C:\Documents and Settings\user\桌面\关卡巴程序.exe" "
cmd.exe /c C:\DOCUME~1\USER\LOCALS~1\Temp\bt3410.bat "C:\Documents and Settings\user\桌面\批处理工具箱.exe"
其中关卡巴程序.exe启动的CMD是隐藏的,但我运行批处理工具箱.exe时,把两个都显示出来了。
[ 本帖最后由 zqz0012005 于 2009-2-18 21:01 编辑 ]
作者: xouou_53320 时间: 2009-3-16 00:01
用HIPS轻松拦截temp目录的bat文件
作者: xiaojinglf 时间: 2009-6-8 21:52
如果安装有hips软件。例如eq。可以轻易处理这个
bat或者cmd生成时会被其fd提示。允许创建,禁止删除。就可以在%temp%得到释放的bat。
作者: tireless 时间: 2009-6-28 19:39 标题: 方案四的第一个reg文件可改为
- Windows Registry Editor Version 5.00
-
- [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor]
- "AutoRun"="echo %cmdcmdline%>\"%temp%\\batpath.txt\"&start \"\" \"%temp%\\batpath.txt\"&exit"
复制代码
作者: hacker_ 时间: 2009-7-5 19:05
救命啊!
我复制了楼主那段代码来运行之后CMD和所有的bat文件打不开!
有什么方法解决啊!
作者: weiyepin 时间: 2009-7-7 11:56
很好很强大的方法!呵呵,又学了一招
作者: dahual 时间: 2009-7-9 16:11
根据11楼 54cml 所述原理,动手写了个可检查 .exe动态释放.bat的;程序完全智能、绿色无污染,方便新手使用。
xp sp3下测试通过。
问题已解决,这里:http://dahual.ys168.com/ 工具\DIY\
作者: huziivy 时间: 2010-1-29 15:15
谢谢 学习下 正在需要
作者: iamjyb 时间: 2010-12-6 19:55
不必这么麻烦,我已经发现了破解了QUICK BFC加密程序
作者: yzyd110 时间: 2011-6-28 08:18
这个要学习一下
作者: yhp1996 时间: 2011-8-2 21:50
木有必要啦
主要就三种加密方法
先看看能不能解压
再运行后全盘搜索*.bat或*.cmd看看又没有放出什么文件
最后不行就用winhex,直接把内容复制出来就行
屡试不爽
作者: Batcher 时间: 2011-8-2 23:31
回复 33# yhp1996
请看3楼第一句
再考虑下是否有必要
作者: ycxw2008 时间: 2011-9-6 19:56
樓主,我太愛你了,我就喜歡這樣的.万分感谢
作者: garyng 时间: 2011-9-30 16:49
回复 1# Batcher
CS.exe下不了啊~
链接失效了~
作者: strong12345 时间: 2011-10-3 10:32
虚拟机+监视 就可以了
也可用沙盘
作者: yefeng007520 时间: 2013-10-24 13:25
正在学习批处理,路过看到,看帖回复支持一个。。。。。。。
作者: tail88 时间: 2014-12-26 14:11
感谢分享啊。
作者: torrent151221 时间: 2015-12-29 09:39
链接都打不开呢
作者: cmd1152 时间: 2021-11-6 19:10
打开 任务管理器=>查看=>选择列=>命令行=>确定
然后运行程序,找到cmd.exe,就可以发现:C:\Windows\system32\cmd.exe /c ""C:\xxxx\xxxxx\xxxxxxx\xxxxx.bat" "
其中,红色字体是批处理路径,但不防恶意代码。
作者: shaokui123 时间: 2024-4-23 14:22
感谢分享谢谢了
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |