Board logo

标题: 《批处理潜行者V5.0》加密的批处理之"破解"方法 [打印本页]

作者: HAT     时间: 2008-9-21 02:25    标题: 《批处理潜行者V5.0》加密的批处理之"破解"方法

在下面这个的帖子的7楼看到一个经过《批处理潜行者V5.0》加密的批处理:
http://www.cn-dos.net/forum/viewthread.php?tid=42895
加密后的批处理下载链接:
http://rthost.fam.cx/cndos-up/img/771.rar
解压后的可执行文件名为CS.exe

尝试用批处理"破解"了一下,方法如下:
CODE:  [Copy to clipboard]
@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 1000
>>"%MyVbs%" echo WshShell.Run "%CodeFile%"
>>"%MyVbs%" echo WScript.Sleep 1000
>>"%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
注:上面用到不是系统自带的find命令,而是的GNU for Win32的find.exe,下载链接:
http://rthost.fam.cx/cndos-up/img/772.zip

[ Last edited by HAT on 2009-2-14 at 23:07 ]
作者: slore     时间: 2008-9-21 03:26
OllyDBG打开最后那个winexec函数直接NOP掉。。。就不执行了,临时文件路径,在参考文本里面就有。
作者: metoo     时间: 2008-9-21 07:43
劫持+搜索。。话说昨天试了一下劫持到notepad想能不能直接打开成文本,以失败告终,好像cmd某些参数在notepad上一起被识别成文件路径了
作者: tireless     时间: 2008-9-21 10:26
奇怪的打开方法:

我用的记事本是 AkelPadAkelPad 里设置的语言是中文,语言文件是 .dll 文件。

我把  AkelPad.exe 复制到加密的 exe 所在目录,并改名为 cmd.exe,然后运行那个 exe,弹出提示:

---------------------------
AkelPad
---------------------------
Cannot load "Chinese (Simplified).dll".
---------------------------
确定   
---------------------------

经这么一停顿,点“确定”后就用记事本打开了那个释放出来的 bat。

(当然,如果我把 AkelPad.exe 的语言设为“内部语言”,就不会打开那个 bat 了,反而加密的 exe 进程 和 “cmd.exe” 都不会退出。)

[ Last edited by tireless on 2008-9-20 at 02:29 PM ]
作者: kioskboy     时间: 2008-9-21 12:07
学习了!
作者: radem     时间: 2008-9-21 13:16
收藏
有时间学习
作者: fengyang     时间: 2008-9-21 19:21
其实生成的文件就在 Program Files\Common Files。

没有什么保密性啊。

作者: HAT     时间: 2008-9-21 20:30    标题: Re 7楼

如果人家修改了源代码,可能会保存到其他地方吧,呵呵。
作者: XZ     时间: 2008-9-21 21:13
如果會生成文件那用 FILEMON把它挖出來就好了 XD
http://www.microsoft.com/taiwan/ ... lities/Filemon.mspx
作者: HAT     时间: 2008-9-21 21:17    标题: Re 9楼

是的,今天上午 Slore 兄在群里面也提高过filemon,不过我还是倾向于用find,呵呵。
作者: weiyepin     时间: 2009-7-7 01:14
不错,呵呵,学习一下了
作者: gool123456     时间: 2010-4-28 14:59
Quick Batch File Compiler v3.2.1.0简体中文版就直接在“C:\Documents and Settings\Administrator\Local Settings\Temp”里露馅了。文件还一样,只不过改了个名隐藏起来了。
貌似很多BAT转EXE的加密都可以在那找到马脚。

[ Last edited by gool123456 on 2010-4-28 at 15:20 ]
作者: qzwqzw     时间: 2010-4-28 17:35
要不是说还是bat2exec让人怀念
内部命令直接就给编译了
外部命令也不让你直接看到人家怎么在用
很好的工具
而且还附源码
可惜对复杂批处理的支持度太低
很多批处理的高级特性都不支持




欢迎光临 中国DOS联盟论坛 (http://cndos.fam.cx/forum/) Powered by Discuz! 2.5