WINRAR自解压文件并自爆、自删除、删除自身、删除本身

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

本人思考这个方法的初衷是在RAMOS内存系统下,将绿色软件压缩以节约空间,如果不运行,就是个压缩文件。

WINRAR自解压文件无法删除自身的原因在于自己不能给自己剃头,因为程序正在运行中,所以必须在进程中杀死它才能删除自身,因而思路是:建立一个批处理文件来完成这道工序。

在本人的内存系统下的思路是,做一个假的程序运行文件去运行这个批处理文件后,在系统进程中杀掉假运行文件,然后命令它解压WINRAR自解压文件,用真运行文件替换假运行文件,最后删除WINRAR文件,批处理文件也可删除自身,实现无痕迹解压并运行,总共分三步:

1. 建立一个批处理文件,用一个叫做BAT转exe的小软件将它转成exe文件,为了美化,可以用图标软件给它加上自己喜欢的图标,如果第二步的批处理文件名称不变,这个exe文件可通用于任何程序下。这样写:

@ECHO OFF

MLD.BAT

REM 运行的批处理文件起名为MLD.BAT,

EXIT

2.建立中介批处理文件MLD.BAT,示例如下(以KMPLAYER为例,压缩文件起名为SLF.EXE)

@ECHO OFF

if "%1"=="h" goto begin

mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit

:begin

for /l %%i in (1,1,300) do echo %%i >nul

rem 延时

NIRCMD.EXE KILLPROCESS KMPlayer.exe

rem 这是用的NIRCMD增强命令,不安装NIRCMD直接用DOS命令时,可这样写——TASKKILL /F /IM KMPlayer.exe /T

for /l %%i in (1,1,300) do echo %%i >nul

REM 延时

SLF.EXE

rem 运行压缩的自解压程序

for /l %%i in (1,1,300) do echo %%i >nul

rem 延时

del slf.exe /f

rem 删除自解压程序

del %0

rem 删除本bat文件自身,免留痕迹

EXIT

3. 压缩WINRAR自解压文件时,要注意解压后文件与前两个文件在同一目录下,以便于运行,在“高级”选项的“自解压选项”下,将“设置”下的“解压后运行文件”中填写上要运行的主程序名称.exe;将“模式”下的“安静模式”选“全部隐藏”;将“更新”下的“更新方式”选为“解压并替换文件”,“覆盖方式”选“覆盖所有文件”。

这样就成功了,这里给个示例,/share/link?shareid=445792&uk=2031006351 绝对没有病毒。这是很早以前做的,MLD.BAT批处理文件中没有最后删除自身的一句del %0,可自己加上

另一种制作单文件可删除自解压文件的方法:

若安装了nircmd,可用另一种方法制作自解压文件,实现单文件自解压并删除:做一个bat文件放在压缩包内,在压缩时的高级->自解压选项->设置->解压后运行中填写批处理文件名称,bat文件这样写(以压缩文件名称slf.exe为例):

@ECHO OFF

if "%1"=="h" goto begin

mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit

:begin

for /l %%i in (1,1,300) do echo %%i >nul

NIRCMD.EXE KILLPROCESS slf.exe

rem taskkill命令似乎不能终止进程,其它win自带命令或可,可自行测试。for /l %%i in (1,1,300) do echo %%i >nul

del slf.exe /f

for /l %%i in (1,1,300) do echo %%i >nul

del %0

EXIT

相关文档
最新文档