; kakrem.txt Copywrite: Peregrinus : kak.worm removal script. ; Server: au.austnet.org -=- Channel: #AvA -=- Nickname: Peregrinus. ; mIRC virus removal script version 2.2 - 27/06/2000 ; Report bugs to njcarew@hotmail.com ; alias batfix { check-lock if ($version < 5.41) { msg $active 12ERROR: /batfix requires mIRC 5.41 or higher | halt } set %tf c:\autoexec.bat | set %tfe $exists(%tf ) if (%tfe == $true) { .copy %tf c:\ax [ $+ [ $remove($time,:) ] $+ ] .txt } if (%tfe == $false) { msg $active 12ERROR: c:\autoexec.bat does not exist | halt } lop 3 run attrib -r -h +s c:\autoexec.bat lop 3 .write -c c:\exec2.txt .copy c:\autoexec.bat c:\autoexec.txt | lop 3 set %lines.total $lines(c:\autoexec.txt) | set %line 1 :next.line if (%line > %lines.total) goto no.more.lines set %c.line $read -l $+ %line c:\autoexec.txt | exec.test goto next.line :no.more.lines .remove c:\autoexec.bat | lop 3 | .copy c:\exec2.txt c:\autoexec.bat | lop 3 run attrib +s c:\autoexec.bat lop 3 msg $active 12REPAIRED: autoexec.bat .remove c:\exec2.txt | .remove c:\autoexec.txt } alias exec.test { if ((kak.hta isin %c.line ) || (yard -inauto isin %c.line ) || (room -inauto isin %c.line ) || (skrt -inauto isin %c.line ) || (car -inauto isin %c.line ) || (&tim -inauto isin %c.line )) goto skip if ((bech -inauto isin %c.line ) || (roof -inauto isin %c.line ) || (wall -inauto isin %c.line ) || (wave -inauto isin %c.line ) || (set -inauto isin %c.line ) || (buny -inauto isin %c.line )) goto skip if ((moo -inauto isin %c.line ) || (deltree isin %c.line ) || (temp.jpg isin %c.line ) || (@echo asdf isin c.line )) goto skip else write c:\exec2.txt %c.line goto end.skip :skip msg $active 12DELETED: line %line from c:\autoexec.bat | msg $active 4 %c.line | lop 3 :end.skip inc %line 1 } alias regmake { write -c c:\regfix.vbs write c:\regfix.vbs dim wshshell write c:\regfix.vbs Set WshShell = Wscript.CreateObject("Wscript.Shell") write c:\regfix.vbs Set Regedit = CreateObject("WScript.Shell") write c:\regfix.vbs On Error Resume Next } alias regadd write c:\regfix.vbs WSHShell.RegDelete(" $+ $1- $+ ") alias regwriteadd write c:\regfix.vbs Regedit.RegWrite " $+ $1 $+ ", " $+ $2- $+ " alias regrun { run -n c:\regfix.vbs msg $active 6Repaired: Registry } alias frem { s.path.chk set %tfa $1 set %s.count $findfile( [ %s.path $+ ] , %tfa ,N) msg $active 4MATCHES: $findfile( [ %s.path $+ ] , %tfa ,N) | lop 3 if (%s.count > 0) remfiles } alias vscan-kak { check-lock | s.path.chk | mirc.at msg $active 2,11------- Vscan-KAK - STARTED - 2.2 --------- regmake set %tf c:\windows\kak.htm | delfile frem *.hta set %tfa kak.htm | delf set %tf c:\windows\StartM~1\Programs\StartUp\kak.hta | delfile regadd HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\cAg0u regrun .run command /c attrib -r -a -s -h $mircdirscript.ini .alias unload unload -rs script.ini .unload .alias remove .alias unload inirem1 batfix msg $active 2,11------- Vscan-KAK - FINISHED - 2.2 --------- } alias rmv { check-lock set %s.path c:\ set %dl1 $1 .if (%dl1 != 1) { .sreq ask | msg $active 2*** DCC Send requests pop up a dialog } else { .sreq off | msg $active 2*** DCC Send requests are ignored } .creq ask | msg $active 2*** DCC Chat requests pop up a dialog if (%rc.on == $null) goto no.rc if (%rc.on == on) { .remove c:\viremrem.ini | .unload -rs viremrem.ini } :no.rc set %tfa regfix.vbs | delf | set %tfa kakrem.txt | delf | unset %* | .unload -rs kakrem.txt | saveini | .ignore on } alias spath { if ($1 == m) { set %s.path $mircdir } else { if ($1 == $null) set %s.path c:\ else set %s.path $1 } msg $active 12SEARCHPATH: %s.path | lop 3 } alias inirem1 { .unload -rs script.ini run attrib -r -a -s -h script.ini | lop 3 .write -c script.ini [Script] .write script.ini n0=; #AVA - Austnet Virus Assistance .write script.ini n1=; This File is Read Only to Protect Against Script.ini run attrib +r +h script.ini | lop 3 msg $active 12UNLOADED: script.ini | msg $active 12WROTE: script.ini | msg $active 12SET +r +h: script.ini | lop 3 } alias check-lock { if ($version == 5.6) { msg $active 12INFO: /run status unknown | return } if ($lock(run) == $true) { msg $active 4ERROR: /run disabled msg $active Goto FILE - OPTIONS - GENERAL - LOCK and untick /run halt } else { msg $active 12INFO: /run enabled } } alias delfile { set %tfe $exists(%tf ) if (%tfe == $true) { dos.chk if ($version < 5.31) run deltree /y [ %tf ] else run -n deltree /y [ %tf ] lop 3 msg $active 12DELTREE: %tf | lop 3 } } alias delf { set %s.count $findfile( [ %s.path $+ ] , [ $+ [ %tfa ] $+ ] ,n) if (%s.count > 0) delfiles } alias delfiles { :next.dfs if (%s.count == 0) goto dfs.end set %tf $findfile( [ %s.path $+ ] , [ $+ [ %tfa ] $+ ] , %s.count ) delfile | dec %s.count 1 goto next.dfs :dfs.end } alias dos.chk { if ($version == 5.11) { if (c:\program isin %tf) set %tf c:\progra~1\ $+ $remove(%tf ,c:\program files\) if (c:\progra~1\icq\received isin %tf) set %tf c:\progra~1\icq\receiv~1\ $+ $remove(%tf ,c:\progra~1\icq\received files\) goto end.dos.chk } if (($version < 5.41) && ($version != 5.11)) { set %tf $remove(%tf ,$chr(32)) | set %\num $count(%tf ,\) | set %\count 1 :next\ if (%\count > %\num ) goto dos.file set %\pos $pos( [ %tf ] ,\,1) | set %\bit [ $+ [ %\count ] ] $left(%tf , %\pos ) | set %tf $remove(%tf , %\bit [ $+ [ %\count ] ] ) if (%\pos > 9) set %\bit [ $+ [ %\count ] ] $left(%\bit [ $+ [ %\count ] ] ,6) $+ ~1\ | inc %\count 1 goto next\ :dos.file set %.num $count(%tf ,.) if (%.num == 1) { set %.pos $pos( [ %tf ] ,.,1) | set %\bit [ $+ [ %\count ] ] $left(%tf , %.pos ) | set %tf $remove(%tf , %\bit [ $+ [ %\count ] ] ) if (%.pos > 9) set %\bit [ $+ [ %\count ] ] $left(%\bit [ $+ [ %\count ] ] ,6) $+ ~1. inc %\count 1 | set %\bit [ $+ [ %\count ] ] %tf } else { set %.pos $len(%tf ) if (%.pos > 9) set %\bit [ $+ [ %\count ] ] $left(%\bit [ $+ [ %\count ] ] ,6) $+ ~1 | inc %\count 1 } set %.count 1 | unset %tf :next.bit.ass if (%.count > %\count ) goto dos.chk.fin set %tf %tf $+ %\bit [ $+ [ %.count ] ] | inc %.count 1 goto next.bit.ass :dos.chk.fin } else set %tf $shortfn(%tf ) :end.dos.chk } alias isl { unset %is.lscr | set %s.count $script(0) | set %counter 1 :next.lscr if (%counter > %s.count ) goto last.lscr set %ts $script(%counter ) if (%tf == %ts ) set %is.lscr yes inc %counter 1 goto next.lscr :last.lscr } alias lop { set %lop $1 $+ 000 :lopst dec %lop 1 if (%lop != 0) goto lopst } alias mirc.at { set %tf $mircdirmirc.ini | dos.chk run attrib -r -h -s [ %tf ] lop 3 } alias remfile { dos.chk | set %tfe $exists(%tf ) if (%tfe == $true) { .remove %tf | msg $active 12REMOVED: %tf | lop 3 } } alias remfilex { set %tfe $exists(%tf ) if (%tfe == $true) { .remove %tf | msg $active 12REMOVED: %tf | lop 3 } } alias remf { set %s.count $findfile( [ %s.path $+ ] , [ $+ [ %tfa ] $+ ] ,n) if (%s.count > 0) remfiles } alias remfiles { :next.rfs if (%s.count == 0) goto rfs.end set %tf $findfile( [ %s.path $+ ] , [ $+ [ %tfa ] $+ ] , %s.count ) | remfile | dec %s.count 1 goto next.rfs :rfs.end } alias s.path.chk { if (%s.path == $null) set %s.path c:\ } alias ul.scr { dos.chk | .unload -rs %tf | msg $active 12UNLOADED: %tf | lop 3 }