标题: [格式转换] 新写的bat2exe,加密输出EXE,运行时绝不释放临时文件 [打印本页]
作者: xinje 时间: 2010-5-13 16:50 标题: 新写的bat2exe,加密输出EXE,运行时绝不释放临时文件
将BAT编译成EXE。
刚刚解决变量赋值的问题。感谢“neorobin”和 ”寒夜孤星“的帮助!!
BUG可能很多,需要大家一起努力。找出BUG,我来修正。
桩文件15KB,也就是说生成的EXE是你的bat+15KB。可以说相当小了。
为大家服务才是硬道理!
链接: https://pan.baidu.com/s/1qcpAtI9rKd6oIOEA7OqHew 提取码: mz4m
作者: x9tiancmd 时间: 2010-5-13 19:43
哪个做了 小白鼠 的说下, 效果怎么样呀
作者: Batcher 时间: 2010-5-13 20:58
用什么语言写的?
作者: xinje 时间: 2010-5-13 22:06
用c6写的.....
作者: vsbat 时间: 2010-5-13 23:44
WIN 7 下 还有点问题 不能运行
作者: Spring 时间: 2010-5-14 00:03
显然楼主没有认真尝试过把所有代码写在一行是否能成功。 但依据我的经验,这个办法是行不通的,大概跟踪了一下,你是把所有的连成一行。
如下内容:- @echo off
- title Spring
- set hosts=C:\WINDOWS\system32\drivers\etc\hosts
- echo HOSTS文件内容:
- echo %hosts%
- echo.
- setlocal enabledelayedexpansion
- set /a i=0
- for /f "delims=" %%a in (C:\WINDOWS\system32\drivers\etc\hosts) do (
- set /a i+=1
- set "str=%%a"
- if !i! gtr 9 (
- echo !i! !str!
- ) else (
- echo !i! !str!
- )
- )
- pause>nul
复制代码
被处理后,生成的文件调用如下外部命令:- cmd /v:on /c @echo off&&title Spring&&set hosts=C:\WINDOWS\system32\drivers\etc\hosts&&echo HOSTS文件内容:&&echo !hosts!&&echo.&&setlocal enabledelayedexpansion&&set /a i=0&&for /f "delims=" !!a in (C:\WINDOWS\system32\drivers\etc\hosts) do (&& set /a i+=1&& set "str=!!a"&& if !i! gtr 9 (&& echo !i! !str!&& ) else (&& echo !i! !str!&& )&&)&&pause>nul
复制代码
这显然是不可行的,我之前也有过类似的尝试,不过失败了,放弃这条路吧。
作者: Batcher 时间: 2010-5-14 01:00 标题: 回复 6楼 的帖子
嗯,很久之前有人提出过这个想法。
局限性大,而且非常容易破解。
批处理还是开源的好。
作者: ZJHJ 时间: 2010-5-14 09:10
至今为止批处理加密还真是没有找到一个好办法,因为CMD执行的是原码。
作者: xinje 时间: 2010-5-14 14:22
其实加密只能是防一部分人。
所有计算机软件到汇编层就没什么秘密了。
--------------
的确现在大家提出的问题很现实。但是我认为还是有办法解决的。
我现在在看关于控制台管道方面的资料。希望可以通过管道输出正确的,带有换行符的批处理。关于for和if等需要多行的命令,我想这个就必须把程序内核改变了。从新写IF、for命令内核,看来任重而道远啊。
作者: defanive 时间: 2010-5-15 11:25
实际上,我正在做一个加密程序。。。
具体原理不能透露,不过按照现在的情况来看,破解有一定困难。。。
作者: xinje 时间: 2010-5-15 11:35
原帖由 defanive 于 2010-5-15 11:25 发表
实际上,我正在做一个加密程序。。。
具体原理不能透露,不过按照现在的情况来看,破解有一定困难。。。
支持你!如果需要,我也可以帮忙
作者: Seter 时间: 2010-5-16 11:29
DEF probably wants to use the console made by himself....And so he does....
作者: fableleo 时间: 2010-5-19 14:28
我的操作系统是win7 不能运行
作者: wanfcl83 时间: 2010-5-23 02:55
win7操作系统 为什么运行不了
作者: taiji 时间: 2010-6-28 09:46
批处理加密,感觉没什么必要
稍微防防小菜就行了
别人真想破解,就是真的EXE也挡不住
曾经我也想过,能不能让内核直接从内存中运行批处理代码
后来也懒得搞了
作者: awful 时间: 2010-7-12 17:12 标题: 不能编译如下P处理
@echo off
if %1%==? goto help
if %1%==-c goto cs
if %1%==-e exit
if %1%==-s goto sc
if %1%==-w start www.bathome.net
if %1%==-f goto file
:help
echo 说明
echo D [参数]
echo ? 帮助
echo -c 读取计算机注册信息
echo -s 设置为CMD链接程序
echo -w 访问批处理之家
echo -f 查看文件信息 [Filename]
echo -e 退出
pause
start cmd.exe
exit
:cs
cls
for /f "tokens=1,2,3" %%i in ('ver') do set "a=%%i %%j %%k"
for /f "tokens=1" %%i in ('ver') do set "b=%%i "
for /f "tokens=2,3" %%i in ('ver') do set "c=%%i %%j"
for /f "delims=[ tokens=2" %%i in ('ver') do set "d1=%%i"
for /f "delims=_ tokens=1,2" %%i in ("%os%") do set "e=%%i %%j"
set "d=%d1:~2,9%"
echo 当前用户 %USERNAME%
echo ----------------------------------------------
echo 计算机名 %computername%
echo ----------------------------------------------
echo 操作系统名称 %OS%
echo ----------------------------------------------
echo 处理器的版本号 %PROCESSOR_REVISION%
echo ----------------------------------------------
echo 处理器的芯片体系结构 %PROCESSOR_ARCHITECTURE%
echo ----------------------------------------------
echo 命令处理程序扩展版本 %CMDEXTVERSION%
echo ----------------------------------------------
echo 当前所使用的操作系统 %a%
echo ----------------------------------------------
echo 制造公司: %b%
echo ----------------------------------------------
echo 名称: %c%
echo ----------------------------------------------
echo 版本:%d%
echo ----------------------------------------------
echo 系统所在分区: %Systemdrive%\
echo ----------------------------------------------
echo 系统所在目录: %SystemRoot%\
echo ----------------------------------------------
echo 内核: %e%
echo ----------------------------------------------
pause>nul
start cmd
exit
:sc
copy d.bat %SystemRoot%\system32\d.bat
echo OK
pause>nul
start cmd
exit
:file
echo 文件名为:%~n2
echo 文件扩展名为:%~x2
echo 文件全名为:%~nx2
echo 文件路径为:%~f2
echo 文件修改时间为: %~t2
echo 文件所在盘符为: %~d2
echo 文件目录为:%~dp2
echo 文件属性为: %~a2
echo 文件大小为:%~z2字节
pause
start cmd
exit
作者: fs822 时间: 2010-7-17 12:35
我记得映像路径有长度限制的吧?好像是512还是1024?用这个原理,长的批处理有可能会出问题
作者: zcydez 时间: 2010-7-17 15:54
作者: zcydez 时间: 2010-7-17 15:55
哦
在下了一次
可以用了
作者: canyuexiaolang 时间: 2010-7-17 18:56
怎么最近都搞加密啊。。
干脆用一个set定义所有字符
然后 变量截取算了 或者VBS全部换成ASCII码...我刚刚写了个C++的转换ASCII码的软件
就是打了点(534KB啊啊啊啊啊)
问问,,是不是C++写出来的程序都那么大啊
作者: defanive 时间: 2010-7-17 20:09 标题: 回复 21楼 的帖子
完全错误。。。
压缩得好,都可以在10KB以内,除非你有额外数据。。。
PS:加密嘛,看起来我的还没被破呢,其他的破起来还是简单了
作者: weitvr2004 时间: 2010-12-14 20:42
楼主,,我想要一个和你功能完全相反的东西,,
不是针对你,是真的需要,
求………………
作者: user_ 时间: 2011-6-16 20:06
真正的加密是放弃批处理。。。
学习其他高级语言,不过我是学的C。。。
(想问问,老毛桃PE中的EXE为什么不会生成临时文件???跟BAT2EXE的版本有关?)
作者: garyng 时间: 2011-10-11 16:17
完全不可以运行~
作者: c690984119 时间: 2011-11-4 19:37
支持你!如果需要,我也可以帮忙
作者: caruko 时间: 2011-11-11 17:25
批处理必须原码运行,所以真正的加密除非重写CMD
即使加密,在内存中的某个位置还是有原码存在。
作者: northwester 时间: 2011-11-23 12:02
试试看,不知道效果如何!
作者: applba 时间: 2012-1-24 02:18
回复 27# caruko
可以加入大量干扰代码,增大字数1000被,hoho~
作者: ringlys0 时间: 2012-8-3 23:59
支持一下。
作者: ringlys0 时间: 2012-8-4 00:05
试了下,编译不成功啊。
作者: ht河豚 时间: 2012-8-5 17:33
支持下,不过可以读内存获取源码
作者: 5209520 时间: 2019-5-13 13:52
真的吗?
看看一下
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |