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);
