Written by Lord Somer www.lordsomer.com 14. How do I hack ChanOp on IRC? Find a server that is split from the rest of IRC and create your own channel there using the name of the channel you want ChanOp on. When that server reconnects to the net, you will have ChanOp on the real channel. If you have ServerOp on a server, you can cause it to split on purpose. 15. How do I modify the IRC client to hide my real username? Get the IRC client from cs.bu.edu /irc/clients. Look at the source code files irc.c and ctcp.c. The code you are looking for is fairly easy to spot. Change it. Change the username code in irc.c and the ctcp information code in ctcp.c. Compile and run your client. Here are the diffs from a sample hack of the IRC client. Your client code will vary slightly depending on what IRC client version you are running. *** ctcp.c.old Wed Feb 10 10:08:05 1993 --- ctcp.c Fri Feb 12 04:33:55 1993 *************** *** 331,337 **** struct passwd *pwd; long diff; int uid; ! char c; /* * sojge complained that ircII says 'idle 1 seconds' --- 331,337 ---- struct passwd *pwd; long diff; int uid; ! char c, *fing; /* * sojge complained that ircII says 'idle 1 seconds' *************** *** 348,354 **** if (uid != DAEMON_UID) { #endif /* DAEMON_UID */ ! if (pwd = getpwuid(uid)) { char *tmp; --- 348,356 ---- if (uid != DAEMON_UID) { #endif /* DAEMON_UID */ ! if (fing = getenv("IRCFINGER")) ! send_ctcp_reply(from, ctcp->name, fing, diff, c); ! else if (pwd = getpwuid(uid)) { char *tmp; *** irc.c.old Wed Feb 10 06:33:11 1993 --- irc.c Fri Feb 12 04:02:11 1993 *************** *** 510,516 **** malloc_strcpy(&my_path, "/"); if (*realname == null(char)) strmcpy(realname, "*Unknown*", REALNAME_LEN); ! if (*username == null(char)) { if (ptr = getenv("USER")) strmcpy(username, ptr, NAME_LEN); --- 510,518 ---- malloc_strcpy(&my_path, "/"); if (*realname == null(char)) strmcpy(realname, "*Unknown*", REALNAME_LEN); ! if (ptr = getenv("IRCUSER")) ! strmcpy(username, ptr, NAME_LEN); ! else if (*username == null(char)) { if (ptr = getenv("USER")) strmcpy(username, ptr, NAME_LEN);