Board logo

标题: [其他] 解密Bat转换过后的Exe [打印本页]

作者: defanive    时间: 2009-8-12 23:51     标题: 解密Bat转换过后的Exe

今天一天上不了网,看起来我错过了很多东西。。。

名言:“加密对高手只是玩具”

这是新弄的东西,如果谁能把Bat的源码弄出来,就是高手了。。。

PS:其实对加密解密这方面已经静观多时,似乎个个软件的Bat转Exe都被破了,还写了很多教程。今天弄一个加密的,无非是看看这种转Exe的方法有没有前途罢了,没有任何其他目的
作者: slore    时间: 2009-8-13 00:24     标题: so?

@Echo Off
Title 测试工程——Defanive
Echo 测试工程——计算器
For /L %%a In (0,0,0) Do (
Echo.
Set /p Exp=请输入算式:
Call Set /a Ans=%%Exp%%>nul
Call Echo 结果:%%Ans%%
)
作者: slore    时间: 2009-8-13 00:26     标题: 这种方式=。=

支持 goto?不支持

如果非释放加密方式可以摆脱这个瓶颈就很不错了。
作者: defanive    时间: 2009-8-13 00:27

2L,请问你有对代码加工过吗?源代码的格式和这个有点偏差

很高兴,的确被破了。。。

(通过注册表截取?)
作者: slore    时间: 2009-8-13 00:42

我改了下罢了。。。因为你的本身不算“bat”吧。
很简单。。。
作者: slore    时间: 2009-8-13 00:43

我想到的有5种方法。
试了最简单的。。。

你原本的格式你用记事本打开就能看到了。
作者: canyuexiaolang    时间: 2009-8-13 07:08

这个吧,应该是了,排下版就好
作者: defanive    时间: 2009-8-13 12:21

目前看来,除了Bat2Exe那东西以外,没有其他加密方法安全。。。

可能Bat2Exe已经被破了。。。

本帖得出的结论,批处理加密的确是个掩饰。。。
作者: 基拉freedom    时间: 2009-8-13 12:27

对了 加密原理是什么啊??
作者: defanive    时间: 2009-8-13 12:46

9L,C++源码,还是那个老方法,所以说网上说的都不可信

#include <windows.h>

void main()
{
        system("@Echo Off&Title 测试工程——Defanive&Echo 测试工程——计算器&For /L %a In (0,0,0) Do (Echo.&Set /p Exp=请输入算式:&Call Set /a Ans=%Exp%>nul&Call Echo 结果:%Ans%)");
}
作者: defanive    时间: 2009-8-13 12:47

以后不要听网上的人瞎说,自己实践最重要。。。

(按照网上的某个教程,代码到现在都没编译成功)
作者: slore    时间: 2009-8-13 12:53

Bat2Exe没用过。。。
脚本类应该无法掩饰其源码。。。
作者: defanive    时间: 2009-8-13 12:56

现在加密寄望于两样东西吧。。。
Bat2Com2Exe
Bat2Exec
后者好像更安全,根据源码来看,解密不简单。。。
作者: Seter    时间: 2009-8-13 13:01

那么这个exe通过UPX或者FSG加密以后你还认得出来吗?
作者: defanive    时间: 2009-8-13 13:04

别人也可以脱壳,如果不惜一切都要得到源码的话。。。
作者: Batcher    时间: 2009-8-13 13:07

bat2exe还是bat2com呢?

Bat2Com成功密技教程
http://bbs.bathome.net/thread-3441-1-1.html
作者: Seter    时间: 2009-8-13 13:08

不惜一切就没法说了,你用FILEMON截取我不信发现不了
作者: defanive    时间: 2009-8-13 13:15

我想问下Batcher

Bat2Com,Com2Exe

Bat2Exec
解密成功过吗?
作者: slore    时间: 2009-8-13 15:16

2com只能顺序执行吧。。。实用性大打折扣


bat2exec更郁闷。。。

@echo off
set iexplore.exe=IE
for /f "tokens=1" %%i in ('tasklist /NH') do (
   echo %%i
)
goto :Found
goto :EOF
:Found
echo Found
pause
:EOF

EOF标签它不认得加上可以了。
但是For执行不了,能生成了,但是运行提示:
Bad command or file name
Bad command or file name
<RuuèαΘ&pound;Bad command or file name
Found
Strike any key when ready...

都不好用啊。。。
作者: defanive    时间: 2009-8-13 15:54

虽然说转换效果实在差,但是能不能解密还是个问题。。。
作者: slore    时间: 2009-8-13 17:15

源码来看,是分析bat文件,用相应的COM的语法规则去实现功能,已经不是bat,只是和bat功能一样的com文件。

好比把你的那个程序用c写个,
请输出。。。的提示换printf
scan获取你输入。。。但是运行,你用C取换肯定麻烦。

源码的一部分:
;-----------------------------------------------------------------------------
; REM CMD  Processes remark lines in batch file.
; Entry:  SI - pointer to line in BAT file
;-----------------------------------------------------------------------------
rem_cmd         proc near
                assume        cs:code,ds:code
                dec        si                        ;Back up to make sure we don't
rem_c1:         lodsb                                ;  miss a carrage return.
                cmp        al,1ah                        ;Loop until end of line or end
                je        rem_exit                ;  of file.
                cmp        al,13
                jne        rem_c1
rem_exit:
                clc
                ret
rem_cmd         endp


用汇编把rem重写了个子程序。

你bat里面遇到rem就call这个子程序。。。
你怎么解密?它就不是加密bat……
作者: defanive    时间: 2009-8-13 17:33

仔细看了bat2exec的源码,的确,bat2exec就是这样做的。。。

执行批处理语句必须得过cmd,或者command,始终会被截取。。。

要绕过cmd和command,只有自己写一个新的cmd来解析批处理,或者把批处理解析成某种不需要通过cmd和command可以直接运行的语言。。。

bat2exec就是这样做的。。。

难道要自己写一个cmd出来?
作者: Seter    时间: 2009-8-14 10:50

我想自己写一个cmd是最好的方法了...不过这还不如自己写一个程序呐,写cmd效率太低
你看这个想法怎么样:
生成cmd.exe /c "****"后用Rootkit技术隐藏进程,即使用冰刃一类的软件也只能获取到cmd.exe而无法获取参数
隐藏参数嘛,就是在进程链表中pop这个值就可以了.不过要查找就麻烦得多
作者: defanive    时间: 2009-8-14 11:52

cmd执行还是无语的。。。
随时可能被截取到
作者: defanive    时间: 2009-8-14 11:53

人家只要把cmd随便换成个自己写的程序,那程序能把参数显示出来就没用了。。。
作者: Seter    时间: 2009-8-14 12:24

昏..那就把cmd.exe捆绑进去!!!!!然后释放!!!用此cmd运行!!!隐藏!!!
作者: defanive    时间: 2009-8-14 13:15

不错的办法。。。
但是cmd还是会运行自动代码,注册表可以调。。。
然后他们用代码查看就行了。。。
总之cmd缺陷太多,安全性负数。。。
作者: ZJHJ    时间: 2009-8-15 09:39     标题: 回复 1楼 的帖子

怎么这么不经事啊!
  1. wmic process where name="cmd.exe" get commandline
复制代码

作者: defanive    时间: 2009-8-15 12:31     标题: 回复 28楼 的帖子

哈哈,的确是一次很失败的加密。。。
作者: detective1999    时间: 2013-3-12 18:31

回复 28# ZJHJ


    怎么弄得啊?@@




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2