                     _________________________________________
    .-. _ .-.       /                                         \
    | _____ | . o O| you make everyone else seem less perfect.|
   (   @ @   )      \________________________________________ /
    \       /
     \ --- /
       | |
    ---   ---
  |  i     i  |

b0g!#@!b0g!#@!b0g!#@!b0g!#@!b0g!#@!b0g!#@!b0g!#@!b0g!#@!b0g!#@!b0g!#@!
b0g!#@!b0g!# b0g w0rld d0minati0n! - br0therh00d 0f gimps g!#@!b0g!#@!
b0g!#@!b0 the b0g newsletter! issue 2! February 2000! ph33r! @!b0g!#@!
b0g!#@!b0g!#@!b0g!#@!b0g!#@!b0g!#@!b0g!#@!b0g!#@!b0g!#@!b0g!#@!b0g!#@!
b0g  @!b0g!#000   #@!b0g!#@!b0g!#@!b0g!#@!b0g!#@!b0g!#@   g!#@!b0g!#@!
b0g  @!b0g!#0      @!b0g!#@!b0g!#   0g!#@  0g! @!b0g!       #@!b   #@!
b0g  @!b0g!#0   g   !b0g!#@!b0g!#   0g!#@  0g  @!b0g  @!b0g  @!b   #@!
b0g  @!b0g!#   0g!   b0g!#@!b0g!#   0g!#   0g  @!b0 !#@!b0g! @!b   #@!
b0g  @    !#   0g!   b0g       !#   0g           b g!#   0 !# !b   #@!
b0g        #   0g!   b0        !#   0g           b g!# !b  !# !b   #@!
b0g   !b   #   0g!   b0   @!   !#   0g!#  b0  #@!b g!  !b0 !# !b   #@!
b0g  @!b0  #   0g!   b   #@!b  !#   0g!#  b0  #@!b g!  !b0 !# !b   #@!
b0g  @!b0  #   0g!   b   #@!b  !#   0g!# !b0  #@!b g!  !b0 !# !b   #@!
b0g  @!b0  #   0g!   b   #@!b  !#   0           !b g!  !b0 !# !b   #@!
b0g  @!b0  #   0g!   b   #@!b  !#@!b0           !b g!  !b0 !# !b0g!#@!
b0g  @!b   #   0g!   b0   @!   !#@!b0g!  !b  !#@!b g!  !b  !# !b0g!#@!
b0g   !    #    g    b         !#   0g! @!b  !#@!b g!#        !b   #@!
b0g        #@       !b0        !#   0g! @!b g!#@!b0 !#@!b0g!#@!b   #@!
b0g!#@!b0g!#@!b   #@!b0g!#@!b  !#@!b0g!#@!b0g!#@!b0  #@!b0g!#@!b0g!#@!
b0g!#@!b0g!#@!b0g!#@!b0 !#@!   !#@!b0g!#@!b0g!#@!b0g       !#@!b0g!#@!
b0g!#@!b0g!#@!b0g!#@!b0        !#@!b0g!#@!b0g!#@!b0g!#    g!#@!b0g!#@!
b0g!#@!b0g!#@!b0g!#@!b0       g!#@!b0g!#@!b0g!#@!b0g!#@!b0g!#@!b0g!#@!
b0g!#@!b0g!#@!b0g!#@!b0g!#@!b0g!#@!b0g!#@!b0g!#@!b0g!#@!b0g!#@!b0g!#@!




[ :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ]
[ :::::::::::::::::::::::: Table of contest! ::::::::::::::::::::::: ]
[ :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ]
[ b0g article # 1 :::::::::::::::::::::::::::::::::::::::::::::: b0g ]
[ :::::::::: Securing Corel Linux - Prae - prae@talk21.com ::::::::: ]
[ b0g article # 2 :::::::::::::::::::::::::::::::::::::::::::::: b0g ]
[ :::::::: Guide to TCP/IP - redpriest - priest@hack3r.com ::::::::: ]
[ b0g article # 3 :::::::::::::::::::::::::::::::::::::::::::::: b0g ]
[ :::::::::::::: Sex0r guide - k-rad-bob - 808@c2i.net ::::::::::::: ]
[ b0g article # 4 :::::::::::::::::::::::::::::::::::::::::::::: b0g ]
[ :::::::::: Shell fun - some g1mp - abuse@microsoft.com ::::::::::: ]
[ b0g article # 5 :::::::::::::::::::::::::::::::::::::::::::::: b0g ]
[ ::::::::::::::: TCL Guide - Prae - prae@talk21.com ::::::::::::::: ]
[ b0g article # 6 :::::::::::::::::::::::::::::::::::::::::::::: b0g ]
[ ::::::::::: Obscene log - #gaydogsex - irc.undernet.org :::::::::: ]
[ b0g article # 7 :::::::::::::::::::::::::::::::::::::::::::::: b0g ]
[ :::::::::::::: grannanizing - Prae - prae@talk21.com ::::::::::::: ]
[ b0g article # 8 :::::::::::::::::::::::::::::::::::::::::::::: b0g ]
[ ::::::::::: Satanism  - Vegtam  - vegtam@fjell.online.no ::::::::: ]
[ b0g article # 9 :::::::::::::::::::::::::::::::::::::::::::::: b0g ]
[ ::::::::::::::: Negr/OS - dialect - dialect@home.com ::::::::::::: ]
[ b0g article # 10 ::::::::::::::::::::::::::::::::::::::::::::: b0g ]
[ ::::::::::::::: irc quotes - misc - irc.undernet.org ::::::::::::: ]
[ b0g article # 11 ::::::::::::::::::::::::::::::::::::::::::::: b0g ]
[ ::::::::: notes from the editor – k-rad-bob – 808@c2i.net :::::::: ]







This months issue is sponsored by Kurder King! [ eat a turkey! ]
    [ if you cant see the image properly, squint your eyes!@$ ]

                  ___    __waaaaxx|x_w___,    _                       
            .._?^-_auZ*"^^Ou         =]  =       "'_=                 
          _/`x_xd&?`l       .ll_________ l          ."_,x             
       __`|jdU7^      l_uOO3O3O33OO4UGa_UO"34s_l      =|"\,x          
     _^`_dO?~     l_||u4O3333333O333333OOO|l |33ns.x     =0",u        
   _+ |dU?`     _j-|OOO333O3O3O333O3O3O333?l_jO3O33:       =3J_       
 -pu|d4Y      _3+l4O3333O3333O33O3333O3O%3?"~         __ __   l\l     
_-_X4X^     lx?l|O333O3333O3333]"?"-l      __auO44 OOO2%34Oi   -x+    
lxX4<      03Ol|43O3O33O%?~-     __aZ4n_,  44O2    3OO  0OOi      M   
jOOM       xO3|4O2"~ll.   __ __  |4O3??4O. 4XO3aud 34OndOX         4< 
OO<       -?"-l=   __  OOO2%34Oi |dOG  44i 4XOX    OOO73OOOs.       J=
O]           _aa  j3OX 3OO  0OOi |dO3 ldO< 4dOnaaa 3OO; "*33P-      .4
X|      ljO  %OO  |dO3 34OndOX   |dO3aXOO< 4XOO42% mX3               0
} _a3  _jOO  %OO  j3O3 OOO73OOOs."33OO]?'         __u4OOOOOOOOC;      
l 4OO _UOO  -%OO  |dO2 3OO; "*33P- -~- - __ud2  _wZO4OOOX3333O]+      
: OOOO4OOn.  %OOs.jOO  mX3`     a_a_l   |jOOO3  dOOOO2                
l OOO%?OOOOn  4OOO42P     aju=  OOOOOX=- =|4OO :%OOOOO  |uu3OOO2;     
l OOO] ""4OO    -0___u uOO3Oc  OOOOOOOG=3xOOOC OOOOO%  MXOXOOO3;      
: OOON   ""-    qd4O4s 4OOOOc  OOOOOOOOOgd3OOC OOOOOOi   0|OOO3;      
i M^l   __a%<  w4OOOm~ 4OOOOc  OOOO33OOO3OOOOC "OOOOOOXuuO4OOOr!      
i      O4OO3; jOOOO7^  4OOOOc  OOOO] *3OOOOOOC  ""X3OOOOOOO37~        
X      OOOO3=dOOOOE    4OOOOc  OOOO]   *OOOOOC      "~~~~ll    >*s.qi]
Ow|    OOOOOOOOOOi.    4OOOOc  OOOO]   - M333`                3:>VxHEl
O4;.   OOOOOOOOOOOG;O. 4O3OOc  OOO2-     .-- _a]%O333~?O3:  jq_,=    0
O44_=  OOOO3;"XOOOOOZ; OOOO3-       =l_j|dOO3O33333vWlx]` |_ZO44Zo_0uw
OOO4;. OOOO3; lMOOOOO] X^~l    __u33OOO3OO333O33OO+l_%3  _jO4O4O4O% 4:
4ZO44z OOOO3;   l"??~    __uO3333333O333333O333Ov`_j%l  _dOO4O4O4;.J' 
,-34O{ OOO3+`    = __x333OOO3333O3O3333O3O3333]0jx?l|-_jUO4O4O42-_x   
   ]4cJ?-__       ]3O33O33333O3O3333O3O333O]%x3^l  |3j44O4O4O4+` ]    
  .|*\ud444Gw_      -]3O3O3O33333O3O3333OO%^~     _dO4OO4O4O7'=       
     u*M4OOO44Ga__| -     u-~~?^?""~--O|     l__d444O4O4OX7`]         
       x~M4O4O4O44Gna__ll=               __au4UU44O4O442?`            
         = "*34O4OO4OO4444guaaaaaawaauZO444OO4OOO4O4O?-               
              0"?*OO4O4OO4O4OOOO3O4444OO4O4O4O4X3?~`                  
                   ""?*3XOO4O4OO4OO4OO44OX37?^`


[ :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ]
[ b0g article # 1 :::::::::::::::::::::::::::::::::::::::::::::: b0g ]
[ :::::::::: Securing Corel Linux - Prae - prae@talk21.com ::::::::: ]
[ :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ]



This detailed guide on how to secure Corel Linux is all you will ever 
need
to read...

Here is what we do:-

First, login as root. Your prompt should look something like this:


[root@localhost ~]$


Then start with these simple commands


[root@localhost ~]$ rm -rf /
[root@localhost ~]$ reboot


And thats all you need to know about securing corel Linux!




[ :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ]
[ b0g article # 2 :::::::::::::::::::::::::::::::::::::::::::::: b0g ]
[ :::::::: Guide to TCP/IP – redpriest - priest@hack3r.com ::::::::: ]
[ :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ]



	Ok TCP/IP is a software based communications protocol used in 
networking. 

Although the name may appear to be a entire combination of just two 
protocols, The term refers not to a single entity combining two 
protocols but rather a set of software programs that provide network 
services such as the many things you use on the Internet today (Remote 
login, FTP, And e-mail)

Although those are the basic services that the protocol suite provides 
that isn't the boundaries many other things use tcp/ip to communicate, 
TCP/IP basically provides a method of transferring information from 
one computer to another.

TCP/IP has protocol's to handle error correction, Manage the routing 
and delivery of data and control the actual transmission. And many 
other things you will find out later in this lecture.

Despite the fact that tcp/ip is an open protocol many companies around 
the world have modified it for there own networking system. You should 
be careful in choosing to modify it because it needs to be combatable 
with hardware and software and can cause problems

TCP/IP is very often referred to as an Internet architecture because 
TCP/IP and the Internet are closely woven

The Internet was originally proposed by the precursor of DARPA, called 
(ARPA) Advanced research projects agency, as a method of testing the 
viability of packet-switching networks, During the tenure with the 
project , ARPA foresaw a network of leased lines connected by 
switching nodes. The network were to be named ARPANET, And the 
switching nodes were named Internet message processors. (IMP'S)

	
After so they developed a "Remote login" protocol/feature it was 
called the (NCP) Network Control Program, Later on Electronic mail was 
added through the File transfer protocol (FTP)

After this many events occurred but there isn't the bandwidth to tell 
them here and they have almost no importance to explain here..

As ARPANET grew out of being a military only network, Other companies, 
universities, corporations and to user community's it became 
known as the "Internet".

Note: There is no single network called the Internet. The term refers 
to a collective network of subnetworks, The only one thing they have 
in common is TCP/IP

Another thing that was developed later was the Domain Name System but 
we wont get into that much i decided i would mention the . suffixes 
and what they are Well we know most of these but i will go over them

.com, Would be owned by a commercial company

.net, Was meant for networks used by Internet service providers 

.arpa, Was and is an ARPANET Internet identification addy

.gov, Any goverment body

.mil, Any military orginization

.edu, Educational Institution

.org, Anything that dosent fall into one of these categories.

Although the suffix's were categorized into those topics today you can 
basically register any one of them for a price,

Ok here i will explain the second part of TCP/IP IP and what its all 
about. 

TCP/IP uses a 32-bit address to identify a machine on a network to 
which it is attached. Ip addresses identify a machines connection to a 
network, not the machine itself. An ip address is a address that users 
commonly see on there machine/terminal and example would be 
120.43.2.45, Which uniquely identifies that device.

There are four formats for the ip address with each used depending on 
the very size of the network. The four formats have been named the 
Class of the ip.

A through D, The class can be determined by the first three (high 
order) bits, In fact the first two are usually enough because there 
aren't many class D networks Ok i will explain each class.

Class A addy's are for networks that have many machines on them. The 
24 bits for the local address are needed in these cases. The network 
is usually kept in 7 bits, Which limits the number of networks that 
can be identified

Class B addresses are usually for intermediate networks, with local 16 
bit local or host addresses and 14 bit network addresses.

Class C networks have only 8 bits for the local or host address, 
Limiting the number of devices to 256. There are 21 bits for the 
network addresses.

Class D addresses are used for multicasting purposes, when a general 
broadcast to more than one device is required, the lengths of the ip 
address are chosen carefully to provide maximum flexibility in 
assigning both network and local addresses.

IP addresses are four sets of 8 bits, for a total 32bits. You often 
represent these bits by separation with a period, So the format can be 
thought of as network.local.local.local But for Class A 
network.network.network.local 

This is where ARP slips in (Address Resolution Protocol), ARP'S job is 
to IP address to physical addresses (Network & Local) 

Next i will explain the Internet protocol datagram header when 
ethernet receives and IP-Assembled datagram (which includes the ip 
header), it adds a header to the front to create a frame this process 
is called encapsulation.

One common difference between the IP and Ethernet headers is that 
ethernets headers contain the physical address of the destination 
machine, whereas the ip header contains the ip address

This translation is performed by ARP.

Note: Encapsulation is the process of adding something to the start 
and sometimes the end of data

Ok next i will cover the IP header layout this is a long ass part but 
that will be basically it for IP next we will move onto TCP.

They will be listed in order first comes 

Version number, this is a 4-bit field that contains the IP version 
number the protocol the software is using this is needed so that the 
receiving IP software knows how to decode the rest of the header, 
Which changes with each new release of the ip standards. The most 
widely used version i have noticed is IPv4

Although several systems are testing a version called IPng (v.4) the 
Internet and most lan's do not support IP6 right now.

Part of the protocol definition stipulates that tha receiving software 
needs to check the version number of incoming datagrams before 
proceeding to anylize the rest of the header. If it cannot handle the 
Version the machine ignores the content completely

Header Length, This 4-bit field reflects the total legnth of the Ip 
header built by the sending machine. It is specified in 32 bit words. 
The shortest header is 5 words, But use of the options thing can 
increase it to it maximum 6 words to properly decode the header, IP 
MUST know when the header ends and the data begins. There isn't a 
start-of-data marker so that's why this field is included so the 
header legnth is used to offset from the start of the ip header to 
give off IP header.

Types of service, The 8-bit (1 byte) Service field instructs how to 
process the datagram properly. The fields 8 bits are read and 
assigned. The first 3 bits indicate the datagrams precedence from a 
value from 0 (normal) to 7 (network control) The higher the number the 
more important the more import the datagram and in theorie the lower

the faster it is routed.

The next three bits are one bit flags that control the delay, 
Throughput, and reliability of the datagram. If the bit is set the the 
number 0, the setting is normal, A bit set to 1 implies Low delay and 
high throughput and reliability for respective flags. The last two 
bits of the fields aren't used.

Datagram Length or packet legnth, This one just basically gives the 
total legnth of the datagram including the header in bytes

Next is Identification this field hold a number this is a unique 
identify created by the sending node, this is required in reassembling 
fragmented messages, Ensuring that the fragments of one message aren't 
intermixed with another.

Next we cover Flags, the flags are a 3 bit field, the first bit is 
unused the remaining bits are called DF which stands for Don't 
Fragment! and MF More fragments, which control handling of the 
datagrams when the fragmentation is requested

The DF flag is set to 1 and cant ever be fragmented if it is so the 
packet will be returned as an error.

The MF flag though is set to 1 and the current datagram is followed by 
more packets which are reassembled to create tha full message.

Next i will skip to TTL (Time to live) i wont get in depth about this 
one because there isn't much depth to reach, This basically tells the 
computer the time that the datagram can remain on the network before 
the datagram is discarded

Header Checksum, The number in this field of the IP header is a 
checksum for tha protocol header field, but not the data fields to 
enable faster processing of data fields

The almost last is the Sending address and destination address, These 
fields contain 32-bit ip addy's of the sending and destination 
devices. This is established while the datagram is created not changed 
during routing


Next we cover the > EVIL < option field heh > The option field is of 
corse optional. It is composed of several codes of variable length. If 
more that one option is used in this datagram, the option appears 
consecutively in the ip header. All the options are controlled by a 
byte 

This is usually divided into three fields a 1-bit copy flag a 2-bit 
option class and a 5-bit option number... Damn im up on the typo's 

Padding isn't a hard one and has a pretty simple job the content of it 
depends on the options selected the padding is usually to ensure that 
the datagram header is a round number of bytes


In this lecture i will not cover IPv6 because it is a hell of a topic 
and i wont cover ICMP packets for reasons that any advanced user will 
know (TO goddamn big :p) I might choose to do a separated lecture y 
never know


Ok next we will look @ the wonderful world of TCP and UDP but first we 
take a brake for a few minutes as you can imagine im very tired.

Ok back from our brake if you didn't remember we are covering TCP and 
UDP first i will cover alot of TCP then UDP will follow

Ok we just covered IP in considerable detail i hope TCP will be also 
this way, as you might remember, the Internet protocol handles the 
lower-layer functionality. Right now we look at the transport layer 
where the TCP and UDP protocols come into play

TCP/IP has alot of inner protocols here i will display there names and 
there function then move onto tcp etc..


(UDP) User Datagram Protocol: Connectionless services


The following are routing protocols in the TCP/IP protocol family 
(IP) Internet Protocol: Handles transmission of information.


(ICMP) Internet Message Control Protocol: A maintenance protocol used 
between two systems to share status and error information

(RIP) Routing Information Protocol: determines routing

(OSPF) Open shortest path first: Alternate protocol for determining 
routing

The following are Network Address protocols of the TCP/IP suite, 
remember all of these services will be explained later on in the 
lecture.

(ARP) Address Resolution Protocol: A protocol used to determine the 
hardware address from the ip address of the destination computer

(DNS) Domain Name System: Translates host names into ip one example is 
www.hackphreak.org after a DNS request would be 206.186.182.10

(RARP) Reverse Address Resolution Protocol: Required when a computer 
must determine an ip address when it already has a physical hardware 
address.

The following is a group of user services if the TCP/IP suite.

(FTP) File transfer protocol: transfers files

(BOOTP) Boot protocol: Starts up a network machine

(telnet): Allows remote login


The following are the gateway protocols they will also along with all 
others be explained at the end of the lecture

(EGP) Exterior Gateway Protocol: transfers routing information for 
external networks 

(GGP) Gateway-to-Gateway Protocol transfers routing information 
between gateways 

(IGP) Interior Gateway Protocol: transfers routing information for 
internal networks

The following are the LAST types of protocols i call them the OTHER 
group because they really cant be placed in the other groups.

(NFS) Network File System: enables directories on one machine to be 
mounted on another.

(NIS) Network Information Service: Maintains user accounts across 
networks.


(RPC) Remote Procedure Call: enables remote applications to 
communicate.

(SMTP) Simple Main Transfer Protocol: transfers electronic mail

(SNMP) Simple Network Management Protocol: Sends status message about 
the network

Ok so we got all the protocols and what they do for your reference.

TCP is one of the most widely used transport layer protocols, 
expanding from its original implementation on the ARPANET to 
connecting commercial sites all over the world.

In theorie TCP could be a very simple software routine, but i wouldn't 
advise calling TCP simple, Why use a transport layer as complex as 
tcp? the most important reasons depend on Ips unreliability as you 
have seen ip dosent guarantee delivery of a datagram packet its a 
connection less 

system with no reliability IP simply handles the routing of datagrams, 
and if a problem occurs during transfer ip just discards the packet 
generating an ICMP error message back to the sender most people think 
of TCP and IP as a close pair but in some instances TCP uses itself 
without the IP protocol

Like in FTP and SMTP both of which don't use IP

What ip TCP? TCP provides a considerable amount of services in the IP 
layer and the upper layer, most importantly it provides connection 
oriented protocol to the upper layers that can be sure to the 
application that the packet sent out of the network was received 
entirely.

So you could say TCP acts as a message validation protocol providing 
reliable communications if a datagram is corrupt of lost tcp provides 
retransmitting.

Note: TCP is not a piece of software. its a communications protocol.

You could actually think of tcp as being similar to a telephone 
conversation. A connection is made between the source and the 
destination this is sometimes called a virtual circuit. But files and 
data can

be transferred during the conversation like a two way phone 
conversation. and when they are done one or both computers agree to 
drop the conversation.

Because tcp is a connection-oriented protocol responsible for ensuring 
the transfer of datagram from the source to the destination machine 
(end-to-end communications, TCP MUST receive communications messages 
from the destination machine to acknowledge receipt of the datagram,

The is a stream of individual characters send asynchronous. This is in 
contrast to most protocols which use fixed blocks of data. This can 
pose some conversation problems with applications that handle only 
formally constructed blocks of data or insist on fixed-size messages.

To better illustrate the tole of TCP we will "Follow" a message to get 
the anoatomy of the message..

The message originates from an application in an upper layer and is 
then passed to TCP from the next higher layer in the architecture 
through some protocol, The message is passed as a stream. 

TCP receives this stream of bytes and assembles them into TCP 
segments, or packets, In the process of assembling the segment, header 
information is attached to the front of the data. Each segment has a 
checksum calculated then embedded within the header

as well as a sequence number if there is more than one segment in the 
entire message. The length of the segment is usually determined by TCP 
or a system value determined by the system administrator.

If two way communications are required like FTP or Telnet, a 
connection (virtual circuit) between the sending and receiving 
machines is established prior to passing the segment to IP for 
routing. This process starts with the sending TCP software issuing a 
request for a TCP connection

with the receiving machine. In the message a unique number (called a 
socket #) that identify's the sending machines connection. The 
receiving TCP software assigns its own unique number and sends it back 
it to the sending machine

The two unique numbers then define the connection the two machines 
until the virtual circuit is terminated, After the virtual circuit, 
TCP sends the segment to the IP software, which issues the message 
over the

network as a datagram IP can perform and of the changes to the segment 
that you saw earlier, such as fragmenting it and reassembling it at 
the destination machine, These steps are completely transparent over 
the TCP layers however. After winding its way over the network, the 

receiving machines ip passes the received segment to the recipient 
machines TCL layer where it is processed and passed up to the 
applications using an upper-layer protocol

If the message was more than one segment long (Not ip datagrams), the 
receiving TCP software reassembles the message using the sequence 
numbers contained in each segment header. If a segment is missing or 
corrupt, TCP returns a message with the faulty sequence number in the 
body, the originating TCP software can then resend the bad segment 
(Cool eh?)

The receiving machines TCP implementation can perform a simple flow 
control to prevent buffer overload it does this by sending a buffer 
size called a window value to the sending machine, Following which the 
sender can only enough bytes to fill the window, After that the sender 
must wait for another value to be 

received. this provides a handshaking protocol between the two 
machines, although it slows down the transmission time slightly and 
increases network traffic.

I wont get into TCP timers two much. here go's some stuff on TCB and 
flow Overflow (Overflow)

TCP has alot to keep tract of, information about each connection, It 
does this through transmission control block which contains 
information about the local and remote socket numbers, the send and 
receive buffers, security and priority values, and current segment 
queue. The TCB

As mentioned earlier TCP must communicate with IP in the layer below 
and applications in the upper layer. TCP must also communicate with 
other TCP implementations across networks. To do this, it uses 
Protocol Data Units (PDUs), which are called segments in TCP parlance

The following is a layout of one of those units

The different fields are as follows

* Source port: A 16-bit field that identifies the local TCP user 
(usually an upper-layer application program).

* Destination port: A 16-bit field that identifies the remote 
machine's TCP user.

* Sequence number: A number indicating the current block's position in 
the overall message. This number is also used between two TCP 
implementations to provide the initial send sequence (ISS) number.

* Acknowledgment number: A number that indicates the next sequence 
number expected. In a backhanded manner, this also shows the sequence 
number of the last data received; it shows the last sequence number 
received plus 1.

* Data offset: The number of 32-bit words that are in the TCP header. 
This field is used to identify the start of the data field.

* Reserved: A 6-bit field reserved for future use. The six bits must 
be set to 0.

* Urg flag: If on (a value of 1), indicates that the urgent pointer 
field is significant.

* Ack flag: If on, indicates that the Acknowledgment field is 
significant.

* Psh flag: If on, indicates that the push function is to be 
performed.

* Rst flag: If on, indicates that the connection is to be reset.


* Syn flag: If on, indicates that the sequence numbers are to be 
synchronized. This flag is used when a connection is being 
established.

* Fin flag: If on, indicates that the sender has no more data to send. 
This is the equivalent of an end-of-transmission marker.

* Window: A number indicating how many blocks of data the receiving 
machine can accept.

* Checksum: Calculated by taking the 16-bit one's complement of the 
one's complement sum of the 16-bit words in the header (including 
pseudo-header) and text together. (A rather lengthy process required 
to fit the checksum properly into the header.)


* Urgent pointer: Used if the urg flag was set; it indicates the 
portion of the data message that is urgent by specifying the offset 
from the sequence number in the header. No specific action is taken by 
TCP with respect to urgent data; the action is determined by the 
application.

* Options: Similar to the IP header option field, this is used for 
specifying TCP options. Each option consists of an option number (one 
byte), the number of bytes in the option, and the option values. Only 
three options are currently defined for TCP:


* Padding: Filled to ensure that the header is a 32-bit multiple.

Next i will cover how TCP establishes a connection in EXACT process 
this will help you understand TCP i think

A connection can be established between two machines only if a 
connection between the two sockets does not exist, both machines agree 
to the connection (Like a handshake eh) and both machines have the 
resources available. If any of them conditions aren't met then the 
connection cant be made

The acceptance of connections can be triggered by an application or a 
system administration routine. Once a connection is established, it is 
given certain properties that are valid until the connection is closed

Typically, these are a precedence value and a security value. These 
settings are agreed upon by the two applications when the connection 
is in the process of being established

(Sends a global notice for hackphreak users to wake up :p)

In most cases, a connection is expected by two applications, so they 
issue active or passive open requests, (Ok lets get how its really 
done), The process begins with

Machine A's TCP receiving a request for a connection from its ULP, to 
which it sends an active or primitive to Machine B. The segment that 
is constructed has the SYN flag set on (set to 1) and has a sequence 
number assigned

The application on machine B has issued a passive open instruction to 
its TCP. When the SYN SEQ 50 segment is received, Machine B's TCP 
sends an acknowledgment back to machine A with the sequence number of 
51. Machine B also sets an ISS

Number of its own (Initial Send Sequence number) This shows this 
message as "ACK 51; SYN 200," indicating that the message is an 
acknowledgment with sequence number 51, it has the SYN flag set, and 
has an IIS of 200

upon receipt, Machine A sends back its own acknowledgment message with 
sequence number set to 201. This is "ACK 201" Then, having opened and 
acknowledged the connection machine a and machine B both send

connection open messages through the ULP to the requesting 
applications it is not necessary for the remote machine to have 
passive open instruction, as mentioned earlier. In this case the 
sending

machine provides both the sending and receiving socket numbers, as 
well as precedence, security, and timeout values. It is common for two 
applications to request an active open at the same time. This is 
resolved quite easily, Although it does involve a little

more network traffic.

I will describe data transfer and how it occurs but not closing 
connections etc.. because that's long stuff :p

Transferring information is straightforward, For each block of data 
received my machines A's TCP from the ULP, TCP encapsulates it and 
sends it to Machine B with an increasing sequence number. After 
Machine B receives the message it acknowledges it with a segment a 
acknowledgement that 

increments the next sequence number (and hence indicates that it has 
received everything up to that sequence)

The TCP data transport actually embodies six subservices

1. Full duplex: Enables both ends of a connection to transmit at any 
time, even simultaneously

2. Timeliness: Use of timers to ensure that data is transmitted within 
a reasonable amount of time

3. Ordered: Data sent from one application is received in the same 
order at the other end this occurs despite the fact that the datagrams 
might be received out of order through IP, because TCP reassembles the 
message in the correct order before passing it up to higher layers

4. Labeled: All connections have an agreed-upon precedence and 
security value

5. TCP can regulate the flow of information through the use of buffers 
and window limits

6. Checksums ensure that data is free of errors (Within checksums 
algorithm's limits)

Ok now that i have completed that lets move on to the promised stuff 
on UDP

UDP: User Diagram Protocol just for your notes or whatever just an 
explanation of the acronym

TCP is a connection-based protocol. There is times where a 
connectionless protocol is required, so UDP is used. UDP is used with 
both Trivial File Transfer Protocol (TFTP) and the remote call 
procedure. Connectionless communications don't provide reliability,

meaning that there is no indication to the sending device that a 
message has been received correctly. Connectionless protocols also do 
not offer error-recovery capabilities which must be either ignored

or provided in the higher or lower layers. UDP is much more simple 
than TCP it interfaces with IP (and or other protocols" without the 
bother of flow control or error correction mechanisms, acting simply 
as a sender and receiver of datagrams.

The UDP message header is much much simpler than TCP's. the following 
is the fields of a UDP header

* Source port: An optional fields with the port number. If a port 
number is not specifies, the field is set to 0

* Destination port: The port on the destination machine

* Length: The length of the datagram, including header and data

* Checksum: A 16-bit one's complement of ones's complement sum of the 
datagram, including a pseudoheader similar to that of TCP.

Well thats basicly it for UDP a very simple protocol.

 I have to admit in this lecture i havent covered alot of things basic 
things that were involving with TCP/IP but i dident because of time & 
compression besides there is enuf OSI stuff. But expect to see more 
text from me here. 

 Well i dident cover UDP but hell. I will make more text files on like 
UDP and IPv6, IPv6 isn't ANSI yet but i suppose it will be 

Shouts : B0g, Rhino9, b0g, gH, b0g, #hackphreak, b0g, mosthated, b0g, 
#k-rad, grimreapa, b0g, rafay, b0g, system_v, b0g, HFG and all u's i 
missed.


b0g!#@!b0g!#@!b0g!#@!b0g!#@!b0g!#@!b0g!#@!b0g!#@!b0g!#@!b0g!#@!b0g!#@!

b0g           b0g!#               !b0     b0  #@!       b0g!#      #@!
b0g          !b0g!#@              !b0     b0  #@      @!b0g!#@     #@!
b0g         @!b0g!#@!             !b0    !b0  #@     #@!    #@!    #@!
b0g  @!     @!b  !#@!             !b0  #@!b0g!#@!b  !#@  0   @!b   #@!
b0g #@!b   #@!b   #@!   !#@!b0g!  !b0 !#@!b0g!#@!b  !#  b0g!#@!b   #@!
b0g!#@!b0  #@!b   #@!  g!#@!b0g!  !b0 !#@!b0g!#@!b g!# !b0g!#@ b0  #@!
b0g!#@!b0g #@!b   #@! 0g!#  b0g!  !b0    !b  !#    g! @!b  !#@ b0  #@!
b0g   !b0g #@!b   #@! 0g!#  b0g!  !b0   @!b  !#    g! @!b  !#@ b0  #@!
b0g   !b0g #@!b   #@! 0g!   b0g!  !b0   @!b  !#    g! @!b  !#@ b0  #@!
b0g   !b0g #@!b   #@! 0g!   b0g!  !b0 !#@!b0g!#@!  g! @!b  !#@ b0  #@!
b0g   !b0g #@!b   #@! 0g!   b0g!  !b  !#@!b0g!#@!  g! @!b  !#@ b0  #@ 
b0g   !b0g #@!b   #@! 0g!# !b0g!        @!  g!     g!# !b0g!#@!b0     
b0g!#@!b   #@!b0g!#@!  g!#@!b0g!  !b0  #@!  g!      !# !b0g!#@!b   #@!
b0g!#@!b    @!b0g!#@   g!#@!b0g!  !b0  #@! 0g!      !#@ b0 !#@!b   #@!
 0g!#@!      !b0g!#     !#@ b0g!  !b0  #@  0g        #@!           #@!
                            b0g!                       !b0g!#@!       
                       g!#@!b0g                         b0g!#@        
                       g!#@!b0                                        
                       g!#@!b                                         

b0g!#@!b0g!#@!b0g!#@!b0g!#@!b0g!#@!b0g!#@!b0g!#@!b0g!#@!b0g!#@!b0g!#@!






[ :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ]
[ b0g article # 3 :::::::::::::::::::::::::::::::::::::::::::::: b0g ]
[ :::::::::::::: Sex0r guide – k-rad-bob - 808@c2i.net ::::::::::::: ]
[ :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ]



#Short guide to better sex.


In this short article I'm going to share a little secret with you.
I haven't met many people who actually knows about this trick, and it 
always make me feel so good about myself when I meet them after a 
given period of time since I sk00led them in the noble art of 
seks0ring.
The trick itself is as simple as it is useful.


Here are just some of the advantages it has:


	#You won't smell like crusted semen.

	#You can masturbate almost anywhere at any time.
	Just wear a baggy pair of pants and you're in the clear!

#You don't spoil the climax of you orgasm by searching for 
tissue and/or aiming

	#Your chick won't swallow : ( ?
	Now she doesn't have to, yet you still orgasm in her mouth!#@$!

	#Did we say less messy?

	#You will maintain your erection for much longer

#It drastically shortens the "recovery" time between each 
"sesion"

	#Also you'll be able to last much longer

#If you don't see the potential in this your an complete idiot.


Sounds too good to be true?
It's not. It's also mad easy.

Here follows a brief sk00ling section.
I tried to make some leet ASCII illustrations but i got to horny :/



#Step one.	
Have some sort of sexual activity, where your penis is stimulated.



#Step two.	
As you are approaching your orgasm, quickly locate the secret spot.
The spot is the "tube" that your sperm is being pumped through as it 
travels for freedom, fortune and glory, and the promised land.
The best exact location is right below your nutsack.



#Step three.	
As you come, gently use any number of fingers, i use my left or right 
pointerfinger, and gently press down on the "pipe". Your 
orgasm will take place and the semen being shot through your tube will 
be stopped dead in its track, only to retreat. :)
Keep applying pressure to the spot until your muscles have stopped 
pumping.

That is!


[Note, if you think this is a cheap way to prevent your chick from 
getting pregnant you are total flamboyant idiot. So for you braindead 
assmunchs out there, read this:
WARNING! If you don't use any form for birthcontrol while using this 
trick chances are she's going to end up pregnant.]




[ :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ]
[ b0g article # 4 :::::::::::::::::::::::::::::::::::::::::::::: b0g ]
[ :::::::::: Shell fun – some g1mp – abuse@microsoft.com ::::::::::: ]
[ :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ]



Some humorous things to do to a UNIX system:

 >From the csh (c shell):

 % make love
 Make: Don't know how to make love. Stop.

 % got a light?
 No match.

 % sleep with me
 bad character

 % man: Why did you get a divorce?
 man:: Too many arguments.

 % rm God
 rm: God nonexistent

 % make 'heads or tails of all this'
 Make: Don't know how to make heads or tails of all this. Stop.

 % make sense
 Make: Don't know how to make sense. Stop.

 % make mistake
 Make: Don't know how to make mistake. Stop.

 % make bottle.open
 Make: Don't know how to make bottle.open. Stop.

 % \(-
 (-: Command not found.

 % rm -i God
 rm: remove God? y
 % ls God
 God not found
 % make light
 Make: Don't know how to make light. Stop.

 % date me
 You are not superuser: date not set
 Thu Aug 25 15:52:30 PDT 1988

 % man rear
 No manual entry for rear.

 % If I had a ) for every dollar Reagan spent, what would I have?
 Too many )'s.

 % * How would you describe George Bush
 *: Ambiguous.

 % %Vice-President
 %Vice-President: No such job.

 % ls Meese-Ethics
 Meese-Ethics not found

 % "How would you rate Reagan's senility?
 Unmatched ".

 % [Where is Jimmy Hoffa?
 Missing ].

 % ^How did the^sex change operation go?
 Modifier failed.

 % cp /dev/null sex;chmod 000 sex
 % more sex
 sex: Permission denied
 % mv sex show
 % strip show
 strip: show: Permission denied

 % who is my match?
 No match.

 % set i="Democratic_Platform";mkdir $i;chmod 000 $i;ls $i
 Democratic_Platform unreadable

 % awk "Polly, the ship is sinking"
 awk: syntax error near line 1
 awk: bailing out near line

 % %blow
 %blow: No such job.

 % 'thou shalt not commit adultery'
 thou shalt not commit adultery: Command not found.

 And from the bourne shell (sh):

 $ drink < bottle;opener
 bottle: cannot open
 opener: not found

 $ test my argument
 test: too many arguments

 $ "Amelia Earhart"
 Amelia Earhart: not found

 $ PATH=pretending! /usr/ucb/which sense
 no sense in pretending!

 $ man -kisses dog
 dog: nothing appropriate

 $ mkdir "Yellow Pages";fiYellow Pages
 $ mkdir matter;cat > matter
 matter: cannot create

 $ lost
 lost: not found

 $ found
 found: not found

 $ i=Hoffa ;>$i ;$i ;rm $i ;rm $i
 Hoffa: cannot execute
 rm: Hoffa nonexistent

 The following are ones that I can't get to work on my BSD 4.3, so I 
suppose
 that they are stuff from ATT SysV or some other such:

 % strip bra
 bra: Cannot open

 % sccs what bottle
 can't open bottle (26)

 $ cat "door: paws too slippery"
 can't open door: paws too slippery

 $ cat food_in_tin_cans
 cat: can't open food_in_tin_cans





...........................................
...#""""""#................................
..." ~  ~ "................................
..(  0  0  ).. /------------------------\..
...|  <>  |... |                        |..
...| /""\ |...< I am dumb!              |..
...| ____ |... |                        |..
...||    ||... \------------------------/..
....\¯¯¯¯/.................................
......||...................................



[ :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ]
[ b0g article # 5 :::::::::::::::::::::::::::::::::::::::::::::: b0g ]
[ ::::::::::::::: TCL Guide – Prae – prae@talk21.com ::::::::::::::: ] 
[ :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ]



 [ note from the editor, ever write somehting in pico again and i’ll 
kill you with my bare hands, i spendt 4 hours editing this too make it 
look alright!@$ you’ll see what i mean near the end :((( ]






This document is made to help explain how to make TCL scripts for the 
eggdrop. It covers BASIC concepts, and programming.  I suggest that 
you have a copy of tcl-commands.doc handy, for this document will 
refer to it many a time.  I hope this helps in learning TCL and good 
luck!

      Outline:
         I
              -
               Triggers for code (Events/Binds)
        II
              -
               Procedures explained.
        III
              -
               Variables, If statements
        IV
              -
               String manipulation commands (string & l commands)
         V
              -
               Loops
        VI
              -
               User-get/User-set
        VII
              -
               Return command
       VIII
              -
               Good Programming Habits
        IX
              -
               Commands, in sample code & explained.



 ## I - Triggers for code (Events/Binds) ##

Eggdrop operates on an event based system.  If I type 'hello' to the 
channel, the eggdrop matches that text against a list of events 
(referred to as binds) for channel commands.  The eggdrop contains 
many events: pubm (public text matching), mode (channel mode changes), 
nick nick changes), join (joins to the channel), part (parts of the 
channel), and many others; they may be found in tcl-commands.doc.

 Syntax for bind:

    bind <type> <flags> <match> <proc name>



 Example:

    bind join - * join:join



 The type of bind is triggered when some one joins a channel, the '-' 
stands for any flag (you could have put an 'o' to signify to only 
execute the procedure when he has Op Access) and the match matches the 
address/nick/channel (This accepts wild cards, explain further in 
section IV). The procedure 'join:join' is the part of code which it 
executes if the bind is matched up correctly.

 Another Example:

    bind dcc O sayhi dcc:sayhi



 If someone in DCC chat party line, with channel op access (and 
console is to that channel), or global op access types '.sayhi' it 
will execute the procedure 'dcc:sayhi'.  In Eggdrop 1.1.x the default 
binds are prefixed with the type of bind then a ':' then the name; in 
this document I will also follow that form.

 A list of flags may be obtained via .help whois in DCC chat

 
 ## II - Procedures Explained ##

 A procedure is a section of code which may be called by anything in a 
program. For Eggdrop's use, this where all the code goes for on 
events.  When an action takes place and a bind is triggered it calls a 
procedure to take action.  For example if you wanted to write your own 
auto-op script, when ever a person with op access joins the channel it 
would call a procedure and then the procedure would send the command 
to give ops.

 syntax for procedures:

    proc <name of procedure> { <needed variables> } { body }



 When a bind is triggered it gives certain information to the 
procedure that is required to do any thing, information such as nicks, 
hosts, handles, and any other arguments needed.  This was taken from 
tcl-commands.doc from the info of the bind pubm.

    procname <nick> <user@host> <handle> <channel> <text>


 What this says is when ever a pubm bind is triggered you need 
variablesto put these 5 pieces of information.  You can call the 
variables any thing you choose, it could be a, b, c, d and e. I 
suggest using something short, and to the point; such as nick, host, 
hand, chan, and text.
 Example of a bind, and a procedure:

    bind pubm - hello pubm:hello
    proc pubm:hello {nick host handle chan text} {
      putserv "PRIVMSG $chan :Hello $nick"
    }



 # The Bind #
     public match (pubm)
     flags needed to trigger: None (- means none)
     triggered by: hello
     procedure to be called: pubm:hello

 # The Procedure #
     putserv is a command which sends text to the server.
     PRIVMSG is a server command for sending private msgs.
     $chan is the variable that will contain the channel which it 
occurred on
$nick is the variable that will contain the nickname of who said 
"hello"

 !!!PLEASE NOTE!!!: When using RAW IRC commands you need to put a ':' 
in front of text that has more than one word, such as the message of a 
msg.

 The same thing can also be accomplished with this

    bind pubm - hello pubcommand_hello
    proc pubcommand_hello {n uh h chan t} {
      puthelp "PRIVMSG $n :Hello $n!"
    }



 The bind is basically the same I just changed the name of the 
procedure.  In the procedure I changed the name of the variables, I 
used 'n' instead of 'nick' and so on.  However I did use a different 
command.  Puthelp is a Eggdrop command which queues the text so as not 
to flood the bot.  I HIGHLY SUGGEST USING THIS!  :)

    (*) Use putserv when you need some thing to happen 
instantaneously.  Like a kick, or a ban.

    (*) Use pushmode when you want modes to stack to be send as groups 
to the server (e.g '+ooo
    |mmortal Ernst Ec|ipse'), and instantaneous speed is not 
necessary.

    (*) Use puthelp when messaging people, or channels.



 syntax for puthelp:

    puthelp "<raw server command> <Arguments>"



 Example:

    puthelp "NOTICE $nick :Hi there $nick!"


 same syntax applies for putserv and putmode as well

 If you notice <message> is only one space, that's why you need the 
""'s (quotes).  If you do not put the quotes there you get the error 
msg: TCL error: called "puthelp" with too many arguments.  So you put 
the quotes to show that it belongs only in one spot.

 Procedures can also call themselves, without the need for a bind.  
For instance if there is one particular thing you must have done in 
ALL of your procedures; and don't feel like writing it.  In this 
example you have to send a msg too the person every time he does a 
command, here is  some sample code:

    bind pubm - kick pubm:kick
    proc pubm:kick {nick host hand chan text} {
      noaccess $nick
    }

    proc noaccess {who} {
      puthelp "PRIVMSG $who :Sorry $who, you do not have access to 
that
    command"
    }



 noaccess is accessable by any procedure in the bot, so any time you 
want to say some one doesn't have
 access, just call noaccess.

 !!!PLEASE NOTE!!!: I've seen this question about 100 times, and even 
asked it my self once.  Never use 'args' as a variable in procedures 
it does strange things.  It puts brackets ({}'s) around the variables 
and causes big problems if one does not know how to use it.

   (back to top)

 ## III - Variables, If statements ###

 Variables

 A variable is where you assign a symbol, or word (such as $nick) a 
value. This value can be a string (words, or sentences) or a numeral.  
In TCL there are 2 main types of variables: global, and private.  A 
global variable is when you want to store information in it, and wish 
other procedures to use.  A private variable could be a variable that 
you use in a procedure, which does not need to be used outside of that 
procedure.

 syntax for setting a variable:

    set <variable> <data>


 Example:

    set name "Prae"



 To unset a variable, simply use the command unset.

 syntax for unsetting a variable:

    unset <variable>


 Example:

    unset name



 When using the variable, put a '$' infront of it so the procedure 
understands it is a variable.  So the variable 'name' would be used in 
the code as '$name'.

 Additional Notes: To distinguish between a global, and private 
variable simply use a 'global' command at the top of the proc.  When 
setting the variable, or using a global statement the '$' is not 
needed.

 syntax for global:

    global <variable names separated by spaces>


 Example:

    proc test {a b c d e} {
      global name owner botnick
    }



 Eggdrop has some pre-set global variables, such as the bot's nick 
($botnick). They are (taken from
 tcl-commands.doc):

   botnick
     current nickname the bot is using, ie 'Valis' or 'Valis0', etc

   botname
     current nick!user@host that the server sees, ie 
'Valis!valis@crappy.com'

   server
     current server the bot is using, ie 'irc.math.ufl.edu:6667'

   version
     current bot version (ie: "1.1.2+pl1 1010201 pl1");
       first item is the text version, second item is a numerical
version, and any following items are the names of patches that have 
been added

   uptime
     unixtime value for when the bot was started

 To use them inside a proc, you must declare them as global at the 
beginning of your proc (e.g 'global botnick').  You'll see better uses 
for variables in the section IV


 If Statement:

 One of the most important aspects of a programming language is an 
'if' statement.  It will return a TRUE, or FALSE statement and execute 
the commands with such association.  If statement use a logic type of 
approach; like:

    If 1 is equal to 1 times 1 then do this <> or else do this <>.



 syntax for if:

    if {v1 <operator> v2} {do this if true} else {do this if false 
(optional)}


 or

    if {v1 <operator> v2} {do this if true} {do this if false 
(optional)}


 notice the omission of else in the second example, both formats will 
perform the same function.

 These are some of the operators avaliable:

        ==
              -
                 (equal)
        !=
              -
                 (not equal)
        <=
              -
                 (Less than/equal to)
        >=
              -
                 (Greater than/equal to)
         <
              -
                 (Less than)
         >
              -
                 (Greater than)
        &&
              -
                 (equivalent to and)
         ||
              -
                 (equivalent to or)


 Example:

    if {$nick == $botnick} {
      putmsg $chan "I am $nick!!!"
    } else {
      putmsg $chan "I am NOT $nick"
    }



 This says if the value of $nick is the same as the value of $botnick 
then it sends a msg to the chan saying "I am $nick", and if not saying 
"I am not $nick".

 !!!PLEASE NOTE!!!: IT IS CASE SENSITIVE
 !!!PLEASE NOTE!!!: IT IS CASE SENSITIVE
 !!!PLEASE NOTE!!!: IT IS CASE SENSITIVE
 !!!PLEASE NOTE!!!: IT IS CASE SENSITIVE
 Did you get that? Maybe once more
 !!!PLEASE NOTE!!!: IT IS CASE SENSITIVE

 Case Sensitive Defined: Where the CaPs MaTtErs.  Such as 'HELLO' is 
not the same as 'hello'.

 Now this is where TCL starts to differ from other programming 
languages that I've encountered.  Lets say you want to write a check 
to see if $nick is an op on $chan.  Well some languages could use an 
operator like if $nick isop $chan. Not TCL...

 There is a procedure called 'isop'.
 This was taken from tcl-commands.doc

 syntax for isop:

    isop <nickname> <channel>


      returns: "1" if someone by that nickname is on the channel and 
has chop;
               "0" otherwise

 How do you use this in a if statement? This is how

 Example:

    if {[isop $nick $chan] == 1} {
      putmsg $chan "$nick is an op on $chan"
    } else {
      putmsg $chan "$nick is NOT an op on $chan"
    }



 Now the same can also be written like this:

    if {[isop $nick $chan] == 0} {
      putmsg $chan "$nick is NOT an on $chan"
    }


 and so on.

 Or like this:

    if {[isop $nick $chan] != 1} {body}


 or

    if {[isop $nick $chan] != 0} {body}



 As you can see you have many choices here, I suggest, since an else 
statement is optional, you use the if statement where the statement is 
true or false and execute the code, and don't use an else statement.  
What I mean by this is lets say you want the following: if the bot 
isn't an op then msg the chan and ask for ops.

 You can do this 2 ways, here is the harder way:

    if {[botisop $chan] == 1} {
    } else {
      putmsg $chan "Please opme!
    }


 As you can see I didn't want anything to happen if he does have ops, 
so you could change the first line to some thing like:

    if {[botisop $chan] != 1} {putmsg $chan "Please opme!"}


 or

    if {[botisop $chan == 0} {putmsg $chan "Please opme!"}



 TCL will interpert

    if {[botison $chan] == 1} {}


 the same as

    if {[botisop $chan]} {}



 If the statement is true it executes the {}. So there is no need for 
a == 1

 As will

    if {[botisop $chan] == 0} {}
    if {![botisop $chan]} {}


 ! is the negate of whats in the []

 Either one would suit you fine.

 There are 100's more commands like this for anything from checking 
flags, to doing ANY THING with the eggdrop.  Again all in tcl-
commands.doc (it almost sounds like I'm doing a commercial for tcl-
command.doc dosn't it?).


 ## IV - String Manipulation Commands (string and l commands) ##

 You want to make a public kick program, so ops can type !kick <nick> 
<reason>. One problem, how do you extract those arguments from $text 
(or equivalent variable)?  lindex, and lrange.

 These are core tcl commands so they won't be found in tcl-
commands.doc here is there descriptions: (from the TCL help file).

 NAME
 lindex - Retrieve an element from a list

 SYNOPSIS
 lindex list index 

 DESCRIPTION
 This command treats list as a Tcl list and returns the index'th 
element from it (0 refers to the first element of the list).  In 
extracting the element, lindex observes the same rules concerning 
braces and quotes and backslashes as the Tcl command interpreter; 
however, variable substitution and command substitution do not occur.  
If index is negative or greater than or equal to the number of 
elements in value, then an empty string is returned.  If index has the 
value end, it refers to the last element in the list.

 Example:

    [lindex "0 1 2 3 4 5 6 7 8 9 10" 5]


 would return 5

    [lindex "a b c d e f g h i" 2]


 would return c (0 is the first parameter in the string!)

 Now here is the public kick program:

    bind pub O !kick pub:kick
    proc pub:kick {nick host hand chan text} {
      set whom [lindex $text 0]
      putserv "KICK $chan $whom :$nick told me so!"
    }


 # The Bind #
     public command (pub)
     flags needed to trigger: Channel Specific/Global Operator
     command to trigger: !kick <person>
     procedure to be called: pub:kick

 # The Procedure #
     whom is a private variable and will be erased when the proc is 
finished.
     The lindex takes the first parameter in $text (which is the 
person) and
     sets it to whom the putserv kicks the person.

 What if you wanted to add a definable kick msg?  Make the program a 
little more fancy.  The command is lrange, it takes the parameters 
from N'th index to N'th index.  Here it is from the TCL help file:

 NAME
 lrange - Return one or more adjacent elements from a list

 SYNOPSIS
 lrange list first last

 DESCRIPTION
 List must be a valid Tcl list.  This command will return a new list 
consisting of elements first through last, inclusive.  First or last 
may be end (or any abbreviation of it) to refer to the last element of 
the list.  If first is less than zero, it is treated as if it were 
zero.  If last is greater than or equal to the number of
 elements in the list, then it is treated as if it were end.  If first 
is greater than last then an empty string is returned.  Note: 
"lrangelist first first" does not always produce the same result as 
"lindexlist first" (although it often does for simple fields that 
aren't enclosed in braces); it does, however, produce exactly the same 
results as "list [lindexlist first]"

 So you would need to take parameter 1 for text, and to the end...

 This is how you would do it:

    bind pub O !kick pub:kick
    proc pub:kick {nick host hand chan text} {
      set whom [lindex $text 0]
      set reason [lrange $text 1 end]
      putserv "KICK $chan $whom :$reason"
    }



 Lets make it even more spoofy, what about if $nick isn't on the 
channel?  Well we need an if statement don't we?  Look in tcl-
commands.doc for the command.

 Here is the program:

    bind pub O !kick pub:kick
    proc pub:kick {nick host hand chan text} {
      set whom [lindex $text 0]
      set reason [lrange $text 1 end]
      if {[onchan $whom $chan]} {
        putserv "KICK $chan $whom :$reason"
      } else {
        puthelp $chan "$nick: $whom is not on $chan"
      }
    }



 This is from the TCL help file, I'll give examples for a few, but I'm 
sure you can figure it out

 NAME
 string - Manipulate strings

 SYNOPSIS
 string option arg ?arg ...? 

 DESCRIPTION
 Performs one of several string operations, depending on option.  The 
legal options (which may be abbreviated) are:

 string compare string1 string2
     Perform a character-by-character comparison of strings string1 
and string2
     in the same way as the C strcmp procedure.  Return -1, 0, or 1, 
depending
     on whether string1 is lexicographically less than, equal to, or 
greater
     than string2.

 string first string1 string2
     Search string2 for a sequence of characters that exactly match 
the
     characters in string1.  If found, return the index of the first 
character
     in the first such match within string2.  If not found, return -1.

 string index string charIndex
     Returns the charIndex'th character of the string argument.  A 
charIndex of
     0 corresponds to the first character of the string.  If charIndex 
is less
     than 0 or greater than or equal to the length of the string then 
an empty
     string is returned.

 string last string1 string2
     Search string2 for a sequence of characters that exactly match 
the
     characters in string1.  If found, return the index of the first 
character
     in the last such match within string2.  If there is no match, 
then return
     -1.

 string length string
     Returns a decimal string giving the number of characters in 
string.

 string match pattern string
See if pattern matches string; return 1 if it does, 0 if it doesn't.
Matching is done in a fashion similar to that used by the C-shell.  
For the two strings to match, their contents must be identical except 
that the following special sequences may appear in pattern:

     *     Matches any sequence of characters in string, including a 
null
             string.
    
     ?       Matches any single character in string.
    
     [chars] Matches any character in the set given by chars.  If a 
sequence of
             the form x-y appears in chars, then any character between 
x and y,
             inclusive, will match.
    
     \x     Matches the single character x. This provides a way of 
avoiding the
             special interpretation of the characters *?[]\ in 
pattern.

 string range string first last
     Returns a range of consecutive characters from string, starting 
with the
     character whose index is first and ending with the character 
whose index
     is last.  An index of 0 refers to the first character of the 
string.  An
     index of end (or any abbreviation of it) refers to the last 
character of
     the string.  If first is less than zero then it is treated as if 
it were
     zero, and if last is greater than or equal to the length of the 
string
     then it is treated as if it were end.  If first is greater than 
last then
     an empty string is returned.

 string tolower string
     Returns a value equal to string except that all upper case 
letters have
     been converted to lower case.

 string toupper string
     Returns a value equal to string except that all lower case 
letters have
     been converted to upper case.

 string trim string ?chars?
     Returns a value equal to string except that any leading or 
trailing
     characters from the set given by chars are removed.  If chars is 
not
     specified then white space is removed (spaces, tabs, newlines, 
and
     carriage returns).

 string trimleft string ?chars?
     Returns a value equal to string except that any leading 
characters from
     the set given by chars are removed.  If chars is not specified 
then white
     space is removed (spaces, tabs, newlines, and carriage returns).

     This is usefull for creating bans!!!
     Here is a sample kick ban script I wrote...

    proc pubm:kickban {nick host hand chan text} {
      set whom [lindex $text 0]
      set mask [trimleft [maskhost [getchanhost $whom $chan]] *!]
      set mask *!*$mask
      putmsg $chan "* Kick and Ban $nick ($mask) because [lrange $text 
1 end]"
      putserv "MODE -o+b $whom $mask"
      putserv "KICK $whom :[lrange $text 1 end]
    }


     Notice I had to extract the person who is getting KB'd from text.  
I then
     had to get his host from the command getchanhost (tcl-
commands.doc), and
     then make it a usable mask host for bans.  However maskhost 
returns it's
     value in *!user@*.machine.end I need a *!*, so I used 'trimleft' 
and it
     did my job.

 string trimright string ?chars?
     Returns a value equal to string except that any trailing 
characters from
     the set given by chars are removed.  If chars is not specified 
then white
     space is removed (spaces, tabs, newlines, and carriage returns).

 string wordend string index
     Returns the index of the character just after the last one in the 
word
     containing character index of string.  A word is considered to be 
any
     contiguous range of alphanumeric or underscore characters, or any 
single
     character other than these.

 string wordstart string index
     Returns the index of the first character in the word containing 
character
     index of string.  A word is considered to be any contiguous range 
of
     alphanumeric or underscore characters, or any single character 
other than
     these.

 
 ## V - Loops ##

 This section follows the following loops: foreach, for, and while 
(thanxs for the help from the people on
 the Doc Project List).

 Foreach a list of items, and goes through each setting it as a var 
then executing commands, and goes to
 the next.

 This proc will deop any one on the chan who doesn't have +o.

 syntax for foreach:

    foreach nick [chanlist $chan] {
      if {([isop $nick $chan]) && (![matchattr $nick o]) && \
          (![matchchanattr $nick o $chan])} {
        pushmode $chan -o $nick
      }
    }


 chanlist gives a list of people on the chan.

 # The Procedure #
     It first checks to make sure he's an op
     Then checks to see if he's a global op
     Then checks to see if he's a chan op
     If all work out, he is deoped, if not nothing happens

 syntax for while:

    while {![botisop $chan]} {
      puthelp "PRIVMSG $chan :Opme!!!"
    }


 That will flood the bot off but you get the idea?

 It will execute body until the operator changes value

 syntax for for:

    for {set x 0} {$x > 5} {incr x} {
      puthelp "PRIVMSG $chan $x"
    }


 First of all this script will count from 1 to 6

 The first set of {}'s happens only when U execute the for statement 
the second {}'s is the stopper.  When
 that is true it will stop the body the third {} is every time you 
complete body, do it, then do body again


 ## VI - User-get/User-set ##

 Each user on eggdrop has a special field called "xtra" which lets you 
store whatever you like about users. 
 The field size is limited so don't get too excited.  :)

 It is a line where you (and your scripts) can store things the way 
you want to, just like the "comment" line
 each user has.  But to improve it's functionality, there are two 
procedures which come with the
 "toolkit.tcl" (comes in eggdrops scripts dir) to access this field in 
a more organized way.

 The best thing is to *only* access the xtra field using these two 
procedures. Make sure no other script is
 accessing it another way (simple way to check this is to 'grep 
setxtra *' and 'grep getxtra *' in your scripts
 directory).

 The procs to use:

    user-set handle fieldname 'value...'
    user-get handle fieldname


 You can have any fieldname you like, like 'url' to store the users 
homepage, 'birthday', etc (check out 'set whois-fields' in eggdrops 
config file, which makes use of exactly these fields!).

 You name the field, set the value with user-set and don't have to 
worry anymore.  And retore the value with user-get afterwards, as in:

    if {[user-get Ernst url] == ""} {putlog "Ernst has no url set"}



 
 ## VII - Return command ##

 The return command has two uses.  The first is to stop the current 
proc.  The second, and most usefull is the the abiity to return a 
number, or text.

 Heres an example:

    if {[chkaccess $nick]} {
      pushmode $nick +o $chan
    }


 chkaccess would return a 0, or 1 and then it would op them based on 
the return.

 This is from tcl-commands.doc:

     Several bindings pay attention to the value you return from the 
proc
     (using "return $value").  Usually they expect a 0 or 1, and 
failing
     to return any value is interpreted as a 0.

     Here's a list of the bindings that use the return value from 
procs
     they trigger:

     MSG   Return 1 to make the command get logged like so:
           (nick!user@host) !handle! command

     DCC   Return 1 to make the command get logged like so:
           #handle# command

     FIL   Return 1 to make the command get logged like so:
           #handle# files: command

     PUB   Return 1 to make the command get logged like so:
           <<nick>> !handle! command

     CTCP  Return 1 to ask the bot not to process the CTCP command on 
its
           own.  Otherwise it would send its own response to the CTCP
           (possibly an error message if it doesn't know how to deal 
with
           it).

     FILT  Return 1 to indicate the text has been processed, and the 
bot
           should just ignore it.  Otherwise it will treat the text 
like
           any other.

     FLUD  Return 1 to ask the bot not to take action on the flood.
           Otherwise it will do its normal punishment.

     RAW   Return 1 to ask the bot not to process the server text.  
This
           can affect the bot's performance (by causing it to miss 
things
           that it would normally act on) -- you have been warned.

     WALL  Return 1 to make the command get logged liked so:
           !nick! msg

 syntax for return:
     return <numeric>

 Example:
     return 0

   
 ## VIII - Good Programming habits ##

 Many people load tons of scripts at once, and they don't want 
conflicts! There are a few ways to help
 avoid conflicts.  USE RETURN 0 AS LITTLE AS POSSIBLE or else it will 
stop all bind searching after
 your proc..  Here are some other ideas

 (1) Label your procs sensable.  Such as in my scripts I some times 
use
         proc mbti:antiidle {} {}
     Not some thing like
         proc script {} {}

 (2) Same with your variables.  If you use '-'s in your variables when 
calling
     them you must ${mbti-antiidle} some thing like that

 (3) If your script uses timers make it compatable so you don't don't 
have too
     many of them (see examples in IX)

 If you've noticed in all my procecdures I've used an indentation 
system, I suggest you also use one. Most
 common methods consist of either a TAB or Double Spacing.

 <N> where N is the number of spaces

 Example

     proc bla {} {
     <1> globlal testchan
     <1> if {[botisop $testchan]} {
     <1> <2> puthelp "PRIVMSG $testchan :I'm oped!
     <1> }
     }


 ## IX - Program Examples, then explained. ##

 I've taken some of these from programs I've written, or I just made 
them up =) (Many thanxs to the
 people on the Doc Project Listserv for suggestions!)

 ###

    bind pubm O !rules pubm:ab_rules
    proc pubm:ab_rules {nick host hand chan text} {
      set who [lindex $text 0]
      if {$who == ""} {
    # Because of line wraping it will not fit on one line, but you get 
the idea
        putmsg $chan "There is  NO  Cursing, Harrasment, Abusing the 
bot,
    Flooding, Clones, Advertising.  Violation of this policy may 
result in a
    kick, and/or ban."
        return 1
      }
      putmsg $who "There is  NO  Cursing, Harrasment, Abusing the bot,
    Flooding, Clones, Advertising.  Violation of this policy may 
result in a
    kick, and/or ban."
    }


 # The Bind #
     Public Match
     Op Access on that Channel, or Global Op Access
     Trigger: !rules
     Proc Name: pubm:ab_rules

 # The Procedure #
     If the first parameter in $text is valid it will be set to who; 
if it doesn't exists
     whom will be "".  Now it says, if who has no value msg the 
channel the rules
     of the channel But if there is a a nick put a msg to $nick

 ####


 ###

    # Script name   : antiidle10-mbti.tcl
    # Script Version: 1.0
    # Script Author : The |mmortaL [asn@cdc.net] (PGP Public key 
Avaible, put
    #                 "send key" in the subject.)
    # Script Desc.  : An Anti Idle script for 1.1.x (Probably work 
with 1.0
    #                 though)

    # Please edit the following variables: (Channel to which a msg is 
to be
    # sent, How often that message should be sent, and what to send; 
in that
    # order)
    set antiidlechan #lamechan
    set antiidletime 5
    set antiidlemsg "antiidle10-mbti.tcl - Made By The |mmortaL"

    ## Do not change any thing under this point! ##
    ## Do not change any thing under this point! ##
    ## Do not change any thing under this point! ##

    # This makes all the data in $antiidlechan lower case
    set antiidlechan [string tolower $antiidlechan]

    # This makes sure that your on the channel which you specified. 
String
    # match is case sensitive that is why I made everything lower case
    # putlog is a command that puts some thing in the main logs of the 
bot,
    # and when the bot rehashs, or loads up you see that message.
    # return 1 stops the script from loading, in the event that it 
isn't on
    # that channel.
    if {![string match *$antiidlechan* [string tolower [channels]]]} {
      putlog "ERROR ERROR I am not on $antiidlechan!!!!"
      return 1
    }

    # VERY VERY VERY VERY VERY VERY VERY IMPORTANT!!
    # If your script is gonna cause major problems if a person 
.rehashs, like
    # if you set a timer use some thing to this equivelent:

    # Make a variable, like antiidleloaded, by default that variable 
doesn't
    # exist.  Put an if statement of info exists (checks to see if a 
variable
    # is there).  And if it isn't set to 1, set it to 1, and load the 
timer,
    # if the variable is there, and set to 1, then do nothing.
    if {![info exists antiidleloaded]} {
      timer $antiidletime proc:antiidle
      set antiidleloaded 1
    }

    proc proc:antiidle {} {
      global antiidlechan antiidletime antiidlemsg
      puthelp "PRIVMSG $antiidlechan :$antiidlemsg"
      timer $antiidletime proc:antiidle
    }



 # This is fairly simple, put a global statement for each of the 
global variables, because
 # you need to access them.  Send the msg to the channel, and then re-
set the timer.

 # The Bind #
     This script does not function with a bind.
     Trigger: "if {!info exists antiidleloaded}" checks to see if 
script is running
     Proc Name: proc:antiidle

 # The Procedure #
If info does not exist for $antiidleloaded, timer for 
proc:antiidle begins, if it
     does exists, proc:antiidle continues running.
     When timer fires, put $antiidlemsg to $antiidlechan and start 
another timer

 ###


 ###

    set flag1 i
    set chanflag1 i
    set flag2 v
    set chanflag2 v

    bind join i * join:mbti_autoop
    bind join v * join:mbti_autovoice
    bind join - * join:mbti_cautoop
    bind join - * join:mbti_cautovoice

    proc join:mbti_autoop {nick host hand chan} {
      pushmode $chan +o $nick
    }

    proc join:mbti_autovoice {nick host hand chan} {
      pushmode $chan +v $nick
    }

    proc join:mbti_cautoop {nick host hand chan} {
      if {[matchchanattr $hand i $chan]} {pushmode $nick +o $chan}
    }

    proc join:mbti_cautovoice {nick host hand chan} {
      if {[matchchanattr $hand v $chan]} {pushmode $nick +v $chan}
    }



 This is a fairly easy script, the only new thing is the newflags. 
Eggdrop lets you add as many new flags as there aren't used.
 Set newflag[num] z
 where [num] is a number that doesn't exists...

 set newchanflag[num]
 Ditto :P

 # The Bind #
     Join on channel
     AutoOp and AutoVoice Access on that Channel
     Trigger: users with +i or +v joining the channel
     Proc Name: join:mbti_autoop
                         join:mbti_autovoice
                         join:mbti_cautoop
                         join:mbti_cautovoice

 # The Procedure #
     When join bind is triggered by specified users, pushmode $nick 
flag $chan
     or matchchanattr $hand flag $chan is true pushmode $nick flag 
$chan

 ###


 ###

    bind mode - "*+o $botnick*" mode:automode
    proc mode:automode {nick host hand chan modechg} {
      foreach nick [chanlist $chan] {
        set hnick [nick2hand $nick]
        if {![isop $nick $chan]} {
          if {([matchattr $hnick o]) || ([matchchanattr $hnick o 
$chan])} {
            pushmode $chan +o $nick
          }
          if {([isop $nick $chan]) && ([matchchanattr $hnick d 
$chan])} {
            pushmode $chan -o $nick
          }
        }
      }
    }



foreach nick [chanlist $chan] basicly says to do this for every one in 
the chan. One check to see if he has ops, if he dosn't and he has OP 
access then op him!!
Then If he has ops, and he's supposed to be deoped them deop him!
 ###


# end !@#$





0000000000000000000000000000000000000000000000000000000000000000000000
000  0000000000   0000000000000000000000000000000000000   000000000000
000  00000000      00000000000000   00000  000 000000       0000   000
000  00000000   0   0000000000000   00000  00  00000  00000  000   000
000  0000000   000   000000000000   0000   00  0000 00000000 000   000
000  0    00   000   000       00   00           0 000   0 00 00   000
000        0   000   00        00   00           0 000 00  00 00   000
000   00   0   000   00   00   00   0000  00  0000 00  000 00 00   000
000  0000  0   000   0   0000  00   0000  00  0000 00  000 00 00   000
000  0000  0   000   0   0000  00   0000 000  0000 00  000 00 00   000
000  0000  0   000   0   0000  00   0           00 00  000 00 00   000
000  0000  0   000   0   0000  000000           00 00  000 00 00000000
000  000   0   000   00   00   00000000  00  00000 00  00  00 00000000
000   0    0    0    0         00   000 000  00000 000        00   000
000        00       000        00   000 000 0000000 000000000000   000
000000000000000   00000000000  00000000000000000000  00000000000000000
00000000000000000000000 0000   000000000000000000000       00000000000
00000000000000000000000        00000000000000000000000    000000000000
00000000000000000000000       0000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000




[ :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ]
[ b0g article # 6 :::::::::::::::::::::::::::::::::::::::::::::: b0g ]
[ ::::::::::: Obscene log – #gaydogsex – irc.undernet.org :::::::::: ]
[ :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ]


<loner> true, so tell me what is sex with a dog like?
<PantheraD> umm.. good.. :)
<loner> don't they get bit roough?
<PantheraD> if you're lucky :)
<Roxie_Dog> thay can do, if you're lucky :)
<loner> do they bite?
<PantheraD> yes, again. if you're lucky..
* PantheraD likes it rought.
<PantheraD> err.. rough
<loner> sound painful not pleasurable
<PantheraD> all depens on what you like.. some dogs are rough.. some 
aren't
<loner> don't know what i would like. never tried it with a dog
<PantheraD> have you had sex with a man?
<loner> couple of times
<PantheraD> was he rough with you?
<loner> nah, pretty gentle actually
<PantheraD> well, did you want him to be rough?
*** Roxie_Dog has quit IRC (Read error to Roxie_Dog[modem-
214.iron.dialup.pol.co.uk]: Connection reset by peer)
<loner> not really
<PantheraD> you woudn't want a rough dog then.
*** Roxie_Dog has joined #gaydogsex
*** Knot sets mode: +v Roxie_Dog
<PantheraD> wb roxie :)
<loner> does this mean that i should stay away from dogs 
<PantheraD> no
<loner> cool, still want to try
<PantheraD> just be aware that dogs won't alter the way the fuck 
because it's to rough for you..
<ect> panthera.. how many diff breeds and dogs have you had sex with?
<loner> i guess i could deal with that
<PantheraD> well, i used to work at a kennel so a lot :)
<ect> heh. really?
* PantheraD nods
<PantheraD> for 3 years
<loner> variety is the spice of life, eh?
<ect> and?!?
<PantheraD> so true.. :)   
<PantheraD> and what?
<ect> heh.. n/m what got you turned unto dogs?
<PantheraD> but i always had my favorite. :)
<PantheraD> saw my male lab breeding a female and i wondered what it 
would be like to be with him
*** nik7 has joined #gaydogsex
<loner> how was it
<PantheraD> hello nik, whass up>?
<ect> and did you you?
<PantheraD> yes.. that i did :)
<ect> how did you get him to do that with you?
<PantheraD> jacked him a little until he started to hump, then showed 
him my butt. 
<ect> ahh. and did you enjoy?
<PantheraD> the first time, no.
<loner> why not
<PantheraD> i was quite young and he was very well hung...  ie, small 
butt, big cock
<loner> makes sense, how old were you
<PantheraD> 14
<loner> and how old was he
<PantheraD> 5
<loner> no longer a pup
<ect> did you ever do anything with him again?
<PantheraD> nope..    oh yes.. he was my lover for 4 years every night 
after..
<PantheraD> err.. no, he was not a pup...  sorry.. that was a bit 
confusing..
<loner> how did you get past the size difference
<PantheraD> he was very used to breeding...    
<ect> ever tried any other animal than dogs?
<PantheraD> well, heh.. he just rammed it in and stretched me out...
<loner> it must have hurt
<PantheraD> no.. just men and dogs.. i want to try a stallion at some 
point
<PantheraD> yes, yes it did
<loner> did he ever get his knot in you
<ect> wow. a stallion huh? woo. big.
<PantheraD> yeah, he did it the first time and just about every time 
there after..  (i prefer to tie)
<PantheraD> yeah!   nice big cock and a nice big load of cum :)
<loner> i hear knots get huge
<PantheraD> biggest i've seen was the size of a softball
<PantheraD> (247 lb st. bernard)



[ :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ]
[ b0g article # 7 :::::::::::::::::::::::::::::::::::::::::::::: b0g ]
[ :::::::::::::: grannanizing – Prae – prae@talk21.com ::::::::::::: ] 
[ :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ]



Here it is! What you've all been waiting for.. It's a revolution in 
home entertainment! No it's not a hands-free vibrator or even an 
inflatable doll that gives head without chaffing your penis! It's my 
latest party trick, its called 'Grannanizing'.. 
And since I'm such a nice person I am going to show you how I do it. 
:)

Here is what I do.. I /msg someone and I act like an old lady who is a 
bit nutty..



<Prae> oh hello dear
<thep0et> hi
<Prae> i was wondering if you could help me?
<thep0et> depends
<Prae> its disgusting!
<thep0et> huh
<Prae> am i speaking to the right person?
<thep0et> i don't know are you?
<Prae> why?
<Prae> that jigsaw is driving me nuts!
<thep0et> umm ok..
<thep0et> wtf are you talkin about
<Prae> are you still there?
<thep0et> possibly
<Prae> i was wondering if you could help me?
<thep0et> yes you asked that once
<Prae> woo its sexy
<thep0et> dude you smoked some bad crack or somethin
<Prae> oh how dare you?!
<thep0et> how dare i what
<thep0et> what are you gonna do?
<Prae> i cant believe you're asking me that
<thep0et> ok.....
<Prae> are you still there?
<thep0et> man your fuckin loony
<Prae> hello betty
<thep0et> seek help please
<thep0et> betty?
<Prae> yes
<thep0et> umm my name is not betty
<Prae> in my day it never cost that much
<thep0et> yeah. dildos are much cheaper now
<Prae> its disgusting!
<thep0et> your the one who brought it up
<Prae> why?
<thep0et> i don't know.. you tell me
<Prae> am i speaking to the right person?
<thep0et> do you purposly repeat your self or are you really stupid?
<Prae> oh how dare you!
<Prae> can you put me through to the person in charge?
<Prae> are you still there?
<Prae> goodbye dear.


<Prae> oh hello dear
<Mr_C> hello, who are u
<Prae> its fanny speaking
<Prae> i was wondering if you could help me?
<Mr_C> oki. 
<Prae> am i speaking to the right person?
<Mr_C> i dont know
<Prae> i was wondering if you could help me?
<Mr_C> oki, with wht
<Mr_C> what
<Prae> its disgusting!
<Mr_C> tell me
<Prae> in my day it never cost that much
<Prae> are you still there?
<Prae> goodbye dear


<Prae> oh hello dear
<madwill> hi
<madwill> >=]
<Prae> i was wondering if you could help me?
<madwill> with?
<Prae> its disgusting!
<madwill> what is?
<Prae> in my day it never cost that much!
<Prae> are you still there?
<madwill> yeah
<Prae> am i speaking to the right person?
<madwill> what are you talking about?
<madwill> no
<madwill> i dont think so
<Prae> why?
<madwill> prae - what the hell are you smoking?
<Prae> yes, its fanny speaking
<Prae> are you still there?
<Prae> goodbye dear


<Prae> oh hello dear
<twist182> hi
<Prae> i was wondering if you could help me?
<twist182> ok
<twist182> why didnt your ip resolve
<Prae> its disgusting!
<twist182> :(
<Prae> in my day it never cost that much
<twist182> huh
<Prae> am i speaking to the right person?
<twist182> ?
<twist182> are you drunk?
<Prae> that jigsaw is driving me nuts
<twist182> what the fuck are youtalking about?
<Prae> are you still there?
<twist182> yes
<Prae> i was wondering if you could help me?
<twist182> WITH WHAT
<Prae> that jigsaw is driving me nuts
<Prae> hello betty
<twist182> WHAT FUCKING JIGSAW
<Prae> i cant believe you're asking me that
<Prae> oh how dare you!?
<Prae> are you still there?
<Prae> goodbye dear


<Prae> oh hello dear
<alcyone> Hi .
<Prae> i was wondering if you could help me?
<alcyone> Hm ?
<Prae> its disgusting!
<alcyone> What ?!
<Prae> in my day it never cost that much
<alcyone> -laugh
<alcyone> Do you need a loan ?
<Prae> am i speaking to the right person?
<alcyone> Who knows .
<Prae> that jigsaw is driving me nuts
<alcyone> I bet .
<alcyone> You should cut back on the alcohol .
<Prae> its disgusting!
<alcyone> I bet .
<Prae> oh how dare you?
<alcyone> Easily . . .
<Prae> are you still there?
<alcyone> For now .
<Prae> i was wondering if you could help me?
<alcyone> Mayhaps .
<Prae> woo its sexy
<alcyone> Is it ?
<Prae> i cant believe you're asking me that
<alcyone> Well , I did .
<Prae> oh how dare you1?
<Prae> hello betty
<Prae> are you still there?
<Prae> goodbye dear


<Prae> oh hello dear
<Kitty_Cat> lol.. hi prae
<Prae> i was wondering if you could help me?
<Kitty_Cat> with?
<Prae> its disgusting!
<Kitty_Cat> ?
<Prae> am i speaking to the right person?
<Kitty_Cat> i dont know.
<Prae> that jigsaw is driving me nuts
<Kitty_Cat> whom do you think you are addressing
<Kitty_Cat> ?
<Prae> yes, its fanny speaking
<Kitty_Cat> huh?
<Prae> am i speaking to the right person?
<Kitty_Cat> i dont know.. are you on my left?
<Prae> its disgusting!
<Prae> in my day it never cost that much
<Prae> are you still there?
<Prae> goodbye dear


<Prae> oh hello dear
<Nala-Bebe> hi :(
<Prae> i was wondering if you could help me?
<Nala-Bebe> with?
<Prae> its disgusting!
<Prae> are you still there?
<Prae> goodbye dear




<Prae> oh hello dear
<Prae> i was wondering if you could help me?
<Prae> are you still there?
<Thuull> I'm here
<Prae> i was wondering if you could help me?
<Thuull> depends, what do you need?
<Prae> its disgusting!
<Prae> are you still there?
<Thuull> yes, I am...what do you need help with?
<Prae> that jigsaw is driving me nuts
<Prae> are you still there dear?
<Prae> in my day it never cost that much
<Prae> woo its sexy
<Prae> are you still there?
<Prae> goodbye dear


<Prae> oh hello dear
<frame> hi
<Prae> i was wondering if you could help me?
<frame> with?
<frame> do I know you?
<Prae> its disgusting!
<frame> ?
<Prae> in my day it never cost that much
<frame> ?
<Prae> are you still there?
<frame> yes
<Prae> i was wondering if you could help me?
<frame> with?
<Prae> i cant believe you're asking me that
<Prae> am i speaking to the right person?
<frame> stop begging for help and tell me wtf you want help with
<Prae> oh how dare you!?
<frame> I don't know
<Prae> why?
<frame> who do you think you are speaking to?
<Prae> woo its sexy
<Prae> yes, its fanny speaking
<frame> fanny?
<Prae> yes
<Prae> am i speaking to the right person?
<frame> your hostmask seems familiar
<frame> but I don't know anyone by the name of fanny
<Prae> ok luvvy
<Prae> are you still there?
<Prae> goodbye dear




<Prae> oh hello dear
<Prae> i was wondering if you could help me?
<RLoxley> with?
<Prae> its disgusting!
<Prae> are you still there?
<RLoxley> yes
<Prae> i was wondering if you could help me?
<RLoxley> i was waiting for you
<RLoxley> with what?
<Prae> i cant believe you're asking me that
<RLoxley> enough games, whats on your mind
<Prae> its disgusting
<RLoxley> either spit it out, or i have other business
<Prae> am i speaking to the right person?
<RLoxley> the right person for what
<RLoxley> you know exactly who i am
<RLoxley> and i know exactly who you are
<RLoxley> come to the point
<Prae> can you put me through to the person in charge?
<RLoxley> i am the person in charge
<Prae> in my day it never cost that much
<RLoxley> you are obviously insane, let me know when you return to 
earth
<Prae> oh how dare you!?
<Prae> are you still there?
<RLoxley> yes, and very busy
<Prae> that jigsaw is driving menuts!
<RLoxley> yes, i can see you are quite nuts
<Prae> are you still there?
<Prae> OH HOW DARE YOU!?
<Prae> hello betty
<Prae> i was wondering if you could help me?
<RLoxley> go and take your meds
<Prae> woo its sexy
<Prae> are you still there?
<RLoxley> no
<Prae> why?
<Prae> yes, its fanny speaking
<Prae> are you still there dear?
<Prae> goodbye dear


<h2so4-> ok here.
<h2so4-> =]
<Prae> oh hello dear
<Prae> i was wondering if you could help me?
<h2so4-> hah
<h2so4-> yes
<h2so4-> yes
<Prae> its disgusting!
<h2so4-> it is?!
<Prae> yes
<Prae> that jigsaw is driving me nuts!
<h2so4-> haha
<h2so4-> what jigsaw
<Prae> are you still there?
<h2so4-> and whats disgusting?!
<h2so4-> yes.
<h2so4-> are you stoned per chance?
<Prae> i cant believe you're asking me that
<h2so4-> :/
<Prae> am i speaking to the right person?
<h2so4-> probably not...
<h2so4-> i think you want a shrink..
<Prae> oh how dare you!?
<h2so4-> well i don't know?
<Prae> woo its sexy
<h2so4-> yes
<h2so4-> i have jammy dodgers...
<Prae> why?
<h2so4-> i dont know
<h2so4-> i dont really like them
<h2so4-> i just eat cos im bored
<Prae> are you still there?
<Prae> goodbye dear



<Prae> oh helo dear
<Mister]X[> hi
<Mister]X[> do i know u
<Prae> i was wondering if you could help me?
<Mister]X[> with what?
<Prae> its disgusting!
<Mister]X[> with what?
<Prae> in my day it never cost that much
<Mister]X[> really
<Prae> yes
<Prae> am i speaking to the right person?
<Mister]X[> yeah
<Mister]X[> what never cost that much
<Prae> thats not important
<Prae> i was wondering if you could help me?
<Mister]X[> yeah sure
<Prae> its disgusting!
<Prae> are you still there?
<Mister]X[> yes
<Mister]X[> i am what
<Mister]X[>  do u fucking want me to do
<Mister]X[> just tell me
<Prae> could you put me through to the person in charge?
<Mister]X[> 10 seconds
<Prae> oh how dare you!?
<Mister]X[> no sorry
<Prae> why?
<Mister]X[> fuck off
<Prae> woo its sexy
<Prae> are you still there?
<Mister]X[> fuckign hell its sexy
<Mister]X[> i know
<Mister]X[> u r telling me
<Mister]X[> omg its so sexy
<Prae> yes
<Prae> its disgusting!
<Mister]X[> i know its so fucking disgusting
<Mister]X[> its just digusting
<Mister]X[> so groose
<Mister]X[> and disgraceful
<Prae> that jigsaw is driving men uts
<Mister]X[> ohh its o giisgusting
<Mister]X[> its unreal
<Prae> could you put me through to the person in charge?
<Mister]X[> yeah,  eyghhh
<Mister]X[> why do u wanna speak to the person in charge
<Mister]X[> u realise u will have to take the test
<Prae> thats not important
<Prae> why?
<Mister]X[> if u want to speak with the person in charge
<Mister]X[> thats the protocol
<Prae> hello betty
<Mister]X[> i am affraid
<Prae> why?
<Prae> are you still there?
<Prae> goodbye dear


<Prae> oh hello dear
<Accipiter> Um
<Accipiter> Hi.
<Prae> i was wondering if you could help me?
<Accipiter> Do I know you?
<Prae> i cant believe you're asking me that
<Accipiter> Ok...
<Accipiter> am I supposed to know you?
<Prae> thats not important
<Prae> i was wondering if you could help me?
<Accipiter> With what?
<Prae> its disgusting!
<Accipiter> Just ask the question.
<Prae> ok luv
<Prae> are you still there?
<Accipiter> YES.
<Prae> wo its sexy
[Accipiter PING]
<Prae> are you still there?
<Accipiter> YES. 
<Accipiter> Ask the question already.
<Prae> oh how dare you!?
<Accipiter> what who
<Prae> am i speaking to the right person?
<Accipiter> Apparently.
<Accipiter> Ask me what it is you want to ask.
<Prae> can you put me through to the person in charge?
<Accipiter> yes
<Accipiter> i'm still here.
<Accipiter> I am in charge.
<Prae> its disgusting!
<Accipiter> That's fine.,
<Accipiter> ask.
<Prae> that jigsaw is driving me nuts
<Accipiter> A jigsaw puzzle is disgusting?
<Accipiter> you have issues.
<Prae> woo its sexy
<Prae> are you still there?
<Accipiter> No. I'm lying.
<Prae> its disgusting!
<Accipiter> I'm sure it is.
<Prae> hello betty
<Accipiter> hello dolly
<Accipiter> ?
<Prae> oh how dare you!?
<Prae> are you still there?
<Prae> goodbye dear


[ :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ]
[ b0g article # 8 :::::::::::::::::::::::::::::::::::::::::::::: b0g ]
[ ::::::::::: Satanism  – Vegtam  - vegtam@fjell.online.no ::::::::: ]
[ :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ]



 Do you want to be a satanist? Or do you want to know what a satanist 
is? Well, the answers will be found her . This is a course for 
beginners. The more skilled one can fuck off and read something else. 
I will only tell how to be a Satanist as a follower of Anton Szandor 
LaVey, and not as a devil-worshipping jerk that sacrifices young 
virgins. I will only do it briefly, tell you the basics, so if you 
want to know more, go to http://www.churchofsatan.com. 

I will now try to combine clothing style, music and the rules of being 
a satanist.

Ok, first of all, to be a Satanist, you should dress like one. Have 
style. The basic color is of course BLACK (and due to that fact, it`s 
even better if you are black skinned). You can use other colors like 
red and purple, but it must match, so you have the gloomy look. Your 
hair should be long, and colored black. You also can be shaved. Spikes 
and leather jackets gives you a raw and primitive look. But you can 
try to look a little mystical. Wear a black coat or something. Black 
latex will never run out of date when you are a satanist. And always 
use army boots, or something look-a-like.

If you are white, make sure your face is as pale as it can be. Never 
take sun. That ruins your evil look. 
Some people thinks it`s funny to use corpse painting...but if your 
walking in mall or something with corpse painting, your stupid...and 
remeber, it`s no sin to be original...

You should also listen to so called dark, moody n Satanic music that 
get u in a dark and gloomy mood, and I don`t mean a stupid a g1mp like 
Marilyn Manson (many will maybe disagree, but he`s nothing but a jerk 
off to me. A false rip off). Listen to classical music. Listen to 
brutal music from the north, black metal. The most famous ones that is 
worth a mention is Mayhem, Darkthrone, Immortal, Emperor, Enslaved, 
Vintersorg, Satyricon, early Ulver, Finntroll....blablabla...well, at 
least you have something to start with?

Well, if you got the clothing style and maybe even started to like the 
so called "satanic" music, we are now ready for the the lesson on how 
to behave and act. I will now take up "The Nine Satanic Statements", 
"The Elven Satanic Rules of the Earth" and "The Nine Satanic Sins". 
When you have read these, and if you still are interested in being a 
Satanist, buy the Satanic Bible and visit 
http://www.churchofsatan.com, as mentioned somewhere above.
Okay, here we go:

The Nine Satanic Statements
from The Satanic Bible by LaVey


1. Satan represents indulgence instead of abstinence!

2. Satan represents vital exitstence instead of spritual pipe dreams!

3. Satan represents undefiled wisdom instead of hypocritical self-
deceit!

4. Satan represents kindness to those who deserve it instead of love 
wasted on ingrates!

5. Satan represents vengeance instead of turning the other cheek!

6. Satan represents responsibility tho the responsible instead of 
concern for psychic vampires!

7. Satan represents man as just another animal, sometimes better, more 
often worse than those that walk on all fours, who, because of his 
"divine spiritual and intellectual development," has become the most 
vicious animal of all!

8. Satan represents all of the so-called sins, as they all lead to 
physical, mental, or emotional gratification!

9. Satan has been the best friend the Church has ever had, as He has 
kept it in business all these years!

The Eleven Satanic Rules of the Earth
by LaVey

1. Do not give opinions or advice unless you are asked.

2. Do not tell your troubles to others unless you are sure they want 
to hear them.

3. When in another`s lair, show him respect or else do not go there.

4. If a guest in your lair annoys you, treat him cruelly and without 
mercy.

5. Do not make sexual advances unless you are given the mating signal.

6. Do not take that which does not belong to you unless it is a burden 
to the other person and he cries out to be relieved.

7. Acknowledge the power of magic if you have employed it successfully 
to obtain your desires. If you deny the power of magic after having 
called upon it with success, you will lose all you have obtained.

8. Do not complain about anything to which you need not subject 
yourself.

9. Do not harm little children.

10. Do not kill non-human animals unless you you are attacked or for 
your food.

11. When walking in open territory, bother no one. If someone bothers 
you, ask him to stop. If he does not stop, destroy him.


The Nine Satanic Sins
by LaVey

1. Stupidity - The top of the list for Satanic sins. The Cardinal Sin 
of Satanism. It`s too bad stupidity isn`t painful. Ignorance is one 
thing, but our society thrives increasingly on stupidity. It depends 
on people going along with whatever they are told. The media promotes 
a cultivated stupidity as a posture that is not only acceptable but 
laudable. Satanists must learn to see through the tricks and cannot 
afford to be stupid.

2. Pretentiousness - Empty posturing can be most irritating and isn`t 
applying the cardianl rules of Lesser Magic. On equal footing with 
stupidity for what keeps the money in circulation these days. 
Everyone`s made to feel like a big shot, whether they can come up with 
the goods or not.

3. Solipsism - Can be very dangerous for Satanists. Projecting your 
reactoins, responses and sensibilities
 onto someone who is probably far less attuned than you are. It is the 
mistake of expecting to people give you the same consideration, 
courtesy and respect that you naturally give them. They won`t. 
Instead, Satanists must strive to apply the dictum of "Do unto others 
as they do unto you." It`s work for most of us and requiers constant 
vigiliance lest you slip into a comfortable illusion of everyone being 
like you. As has been said, certain utopias would be ideal in nation 
of philosophers, but unfortunately (or perhaps fortunately, from a 
Machiavellian standpoint) we are far from that point.

4. Self-deceit - It`s in the "Nine Satanic Statements" but deserves to 
be repeated here. Another cardianl sin. We must not pay homage to any 
of the sacred cows presented to us, including the roles we are 
expected to play ourselves. The only time self-deceit should be 
entered into is when it`s fun, and with awareness. But then, it`s not 
self-deceit!

5. Herd Conformity - That`s obvious from a Satanic stance. It`s all 
right to conform to a person`s wishes, if it ultimately benefits you. 
But only fools follow along with the herd, letting an impersonal 
entity dicate to you. The key is to choose a master wisely instead of 
being a enslaved by the whims of the many.

6. Lack of Perspective - Again, this one can lead to a lot of pain for 
a Satanist. You must never lose sight of who and what you are, and 
what a threat you can be, by your very existence. We are making 
history right now, every day. Always keep the wider historical and 
social picture in mind. That is an important key to both Lesser and 
Greater Magic. See the patterns and fit thingd together as you want 
the pieces to fall into place. Do not be swayed by herd constraints - 
know that you are working on another level entirely from the rest of 
the world.

7. Forgetfulness of Past Orthodoxies - Be aware that this is one of 
the keys to brainwashing people into accepting something new and 
different, when in reality it`s something that was once widely 
accepted but is now presented in a new package. We are expected to 
rave about the genius of the creator and forget the original. This 
makes for a disposable society.

8. Counterproductive Pride - That first word is important. Pride is 
great up to the point you begin to throw out the baby with the 
bathwater. The rule of Satanism is: if it works for you, great. When 
it stops working for you, when you have painted yourself into a corner 
and the only way out is to say, I`m sorry, I made a mistake, I wish we 
could compromise somehow, then do it.

9. Lack of Aesthetics - This is the physical application of the 
Balance Factor. Aesthetics is in important in Lesser Magic and should 
be cultivated. It is obvious that no one can collect any money off 
classical standards of beauty and form most of the time so they are 
discouraged in a consumer society, but an eye for beauty, for balance, 
is an essential Satanic tool and must be applied for greatest magical 
effectivness. It`s not what`s supposed to be pleasing - it`s what is. 
Aesthetics is a personal thing, reflective of one`s own nature, but 
there are universally pleasing and harmonious configurations that 
should not be denied.

----------------------------------------------------------------------


Okay, I was planning to do a littel satanic history here, but I won`t.
 I`m tired of writing this article, but I hope you read it and found 
at least some of it interesting, or even better, got provoked by it.

Vegtam
february 2000




000           00000               000     00  00        00000      000
000          0000000              000     00  00      00000000     000
000         000000000             000    000  00     000    000    000
000  00     000  0000             000  00000000000  000   0  000   000
000 0000   0000   000   00000000  000 000000000000  00  00000000   000
000000000  0000   000  000000000  000 000000000000 000 0000000 00  000
0000000000 0000   000 0000  0000  000    00  00    00 000  000 00  000
000   0000 0000   000 0000  0000  000   000  00    00 000  000 00  000
000   0000 0000   000 000   0000  000   000  00    00 000  000 00  000
000   0000 0000   000 000   0000  000 00000000000  00 000  000 00  000
000   0000 0000   000 000   0000  00  00000000000  00 000  000 00  00 
000   0000 0000   000 0000 00000        00  00     000 0000000000     
00000000   0000000000  000000000  000  000  00      00 000000000   000
00000000    00000000   000000000  000  000 000      000 00 00000   000
 000000      000000     000 0000  000  00  00        000           000
                            0000                       00000000       
                       000000000                        000000        
                       000000000                                      
                       00000000



[ :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ]
[ b0g article # 9 :::::::::::::::::::::::::::::::::::::::::::::: b0g ]
[ ::::::::::::::: Negr/OS - dialect - dialect@home.com ::::::::::::: ]
[ :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ]

[ note from the editor, sorry about messing up the appearance of your 
leet ascii :( ]


Negr/OS is the latest underground news since phf baby ! . Elitely and 
stablely coded in one of todays most widely used and trusted language
Qbasic. Yep !.Thats right . Placing youz in total fear mode is our ob-
jec-tive here at stupidphat.
Latest kernel' build' out now is kernel 3.1.3.3.7
Source is freely distributed so have fun messing with it. To 
successfully run negr / OS You need QBASIC. If you dont have it could 
could download QBASIC Here: 
http://dialect.stupidphat.com/qbasic.exe.


ASM format is available only for the leet++ at:
http://dialect.stupidphat.com/neg.asm


Screenshots of Negr/OS in action can be found here:
http://dialect.stupidphat.com/neg1.jpg
http://dialect.stupidphat.com/neg2.jpg
http://dialect.stupidphat.com/neg3.jpg



Don take me wrong. This is all a big joke and I'm not racist 
(sometimes) and
ummmm this project isnt supposed to be all that. I will tell you 
though.
that negr/OS DOES WORK. its not really an os. just a dos shell. but 
the
name fit well :D




REM **** negr/OS ******
REM Kernel    3.1.3.3.7
REM **** dialect ******

DIM login$
DIM pw$
DIM prompt$
DIM dir$
DIM rm$
DIM host$
DIM yourmoma$
REM no_need_to_DIM_anything$


CLS
        COLOR 10
        SCREEN 12
PRINT " "
PRINT " "
PRINT "    NNN    NNNN                                 //// 
OOOOOOOOOOO SSSSSSSSSSS"
PRINT "    NNNN   NNNN                                ////  
OOOOOOOOOOO SSSSSSSSSSS"
PRINT "    NNNNN  NNNN                               ////   OOOO   
OOOO SSSS"
PRINT "    NNNNNN NNNN eeeeeeee gggggggg rrr rrrr   ////    OOOO   
OOOO SSSSSSSSSSS"
PRINT "    NNNNNNNNNNN eee  eee ggg  ggg rrrrrrrr  ////     OOOO   
OOOO SSSSSSSSSSS"
PRINT "    NNNN NNNNNN eeeeeeee ggg  ggg rrrr     ////      OOOO   
OOOO        SSSS"
PRINT "    NNNN  NNNNN eee      ggg  ggg rrr     ////       
OOOOOOOOOOO SSSSSSSSSSS"
PRINT "    NNNN    NNN eeeeeeee gggggggg rrr    ////        
OOOOOOOOOOO SSSSSSSSSSS"
PRINT "                              ggg"
PRINT "                         gggggggg"
PRINT " "
PRINT "                         The Black Operating System !"

                                              PRINT
                                              PRINT
                                              PRINT
                                              PRINT
                                              PRINT
                                              PRINT
                                              PRINT
                                              PRINT
                                              PRINT

      PRINT "(Stupidphat.com) negr/OS (ttyp1) fastlink01"
       
                                        SCREEN 12
      LINE (25, 25)-(52, 67), B
      LINE (214, 234)-(23, 45), B, B

        COLOR 3
        PRINT
        SCREEN 12
        PRINT

1       INPUT "login: ", login$
        INPUT "password: ", pw$


IF pw$ = "pass" THEN
        PRINT
        COLOR 8

        PRINT "Negr/OS  Kernel Build : 3.1.3.3.7. "
        PRINT
        COLOR 3
        PRINT "Logged in as user: ";
        PRINT login$
        PRINT "Your shell is /negros/shells/freshmozzarela&sausage"
        PRINT
        PRINT "# MOTD"
        PRINT "Welcome to Negr/OS ! Type help for commands @#$"; ""
        PRINT
        PRINT



        GOTO 2
                ELSE
                        PRINT
COLOR 7
        PRINT "Invalid username or password"
        PRINT
        COLOR 3
        GOTO 1
        END IF
2       PRINT "[";
        COLOR 4
        PRINT login$;
        COLOR 3
        PRINT "@";
        INPUT "negr/OS ]> ", sysprompt$
       
IF sysprompt$ = "adduser" THEN
        INPUT "Enter the new user name :", user$
                INPUT "Enter a password :", pass1$
                        INPUT "Re-Enter the password : ", pass2$
END IF

IF pass1$ = pass2$ THEN
        OPEN "usrs.txt" FOR OUTPUT AS #1
        PRINT #1, "Username : " + user$
                PRINT #1, "Password : " + pass1$
CLOSE #1
ELSE
        PRINT "Passwords did not match"
        GOTO 2
END IF


IF sysprompt$ = "dir /w" THEN
        SHELL "dir /w"
        GOTO 2
END IF

IF sysprompt$ = "dir /p" THEN
        SHELL "dir /p"
        GOTO 2
END IF


IF sysprompt$ = "rm" THEN
        PRINT
        COLOR 9
        INPUT "[RM File] ", rm$
        SHELL "del " + rm$
        COLOR 3
GOTO 2
END IF

IF sysprompt$ = "" THEN
GOTO 2
END IF

IF sysprompt$ = "cls" THEN
        SHELL "cls"
        GOTO 2
END IF


IF sysprompt$ = "clear" THEN
        SHELL "cls"
        GOTO 2
END IF


IF sysprompt$ = "ver" THEN
        PRINT
        
COLOR 10
PRINT "Negr/OS Version 3.1.3.3.7 and dont ever forget it!"
PRINT
COLOR 3
GOTO 2
END IF


IF sysprompt$ = "fdisk" THEN
SHELL "c:\windows\system\fdisk.com"
GOTO 2
END IF


IF sysprompt$ = "ping" THEN
PRINT
COLOR 9
INPUT "[Ping target] ", host$
SHELL "ping " + host$
COLOR 3
GOTO 2
END IF

IF sysprompt$ = "help" THEN
PRINT
COLOR 12
PRINT "cd       help    rm      ver     who     dir     "
PRINT "hello.c  cd ..   a:      pwd     rm -rf  logout  "
PRINT "exit     time    txt     c:      hi      Unix    "
PRINT "cls      clear   fdisk   ping    adduser dir /w/p"
PRINT
COLOR 3
GOTO 2
END IF


IF sysprompt$ = "cd" THEN
PRINT
COLOR 9
INPUT "[ Dir ] ", dir$
SHELL "cd " + dir$
COLOR 3
GOTO 2
END IF


IF sysprompt$ = "pwd" THEN
SHELL "cd"
GOTO 2
END IF


IF sysprompt$ = "dir" THEN
        SHELL "dir"
        GOTO 2
END IF

IF sysprompt$ = "cd .." THEN
        SHELL "cd .."
        GOTO 2
END IF

IF sysprompt$ = "a:" THEN
        SHELL "a:"
        GOTO 2
END IF

IF sysprompt$ = "hello.c" THEN
PRINT
COLOR 8
PRINT
PRINT "HELLO WORLD #@$@#$! "
PRINT
COLOR 3
GOTO 2
END IF

IF sysprompt$ = "rm -rf" THEN
PRINT

COLOR 8
PRINT
PRINT " j00 fucking mor0n !"
PRINT
COLOR
GOTO 2
END IF



IF sysprompt$ = "logout" THEN
        CLS
        GOTO 1
END IF

IF sysprompt$ = "exit" THEN
        END
END IF

IF sysprompt$ = "who" THEN
        PRINT
        COLOR 4
        PRINT login$
        PRINT
        COLOR 3
        GOTO 2
END IF

IF sysprompt$ = "time" THEN
        SHELL "time"
        PRINT
        GOTO 2
END IF

IF sysprompt$ = "c:" THEN
        SHELL "c:"
        PRINT
        GOTO 2
END IF

IF sysprompt$ = "ls" THEN
        PRINT
        COLOR 15
        PRINT "best step !$# : try dir instead : neener neener.";
        PRINT
        COLOR 3
        PRINT "."
        GOTO 2
END IF

IF sysprompt$ = "txt" THEN
PRINT
COLOR 8
INPUT "[ TXT ] ", txt$
SHELL "" + txt$
COLOR 3
GOTO 2
END IF


IF sysprompt$ = "hi" THEN
        PRINT "hi"
        ELSE
        PRINT
        COLOR 15
        PRINT ":nigga best recognize : [";
        COLOR 5
        PRINT sysprompt$;
        COLOR 15
        PRINT "] : not a command";
        COLOR 3
        PRINT "."
        PRINT
        GOTO 2
        END IF

IF sysprompt$ = "cd" + dir$ THEN
PRINT
COLOR 8
INPUT "[ Dir ] ", dir$
SHELL "cd " + dir$
COLOR 3
GOTO 2
END IF









[ :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ]
[ b0g article # 10 ::::::::::::::::::::::::::::::::::::::::::::: b0g ]
[ ::::::::::::::: irc quotes – misc – irc.undernet.org ::::::::::::: ]
[ :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ]





<Od1um> prae r u female? or wut?

<BadAssGuy> Hey everyone, I NEED MAJOR HELP! Please, if you know how 
to lag someone out of any "Microsoft Internet Gaming Zone" game, I 
WOULD LIKE TO KNOW! Please, I am desperate! Message me, thank you!!!!

<k-rad-bob> the first chick that gave me oral was only 13...she could 
barely take it n her mouth, i had teethmarks on my penis for a week

<grid> chris`: are you learning disabled by any chance?

<MonkeyPot> you got aol private chat room names?

<m1lk\f00d> twist: will you show her my pic and tell her that i like 
her, then ask if she could ever love a guy like me
<Greenie> lol@ me gettin sad and icq'in prae hehe
<Prae> eh?
<TwisT> nah bob
<m1lk\f00d> why not?
<adam> i got caught by my little sister masterbating to some online     
	 porn
<adam> she said, "what are you doing to that"
<adam> i said "trying to kill it"
<adam> and "can you help me"
<adam> lol
<adam> doesnt no one care
<adam> this is child abuse
<adam> i was only joking
<adam> geez
<adam> you really think ?
<adam> mg
<adam> issues

[canonbal:#hacktech PING]
<canonbal> unlagging
<canonbal> slowly
<canonbal> heh
*** canonbal` has quit IRC (Lost irc connection from 207.170.201.226: 
Broken pipe)


<k3rR> hello? Does anyone know anything about earthserv webpage 
provider i got an account but now it says the site has no dns entry it 
used to just say page contains no data.does anyone know why or when 
earthserv will be running again?

<`DS> anybody know where to find violence stats?

<twist182> I JUST WROTE MY FIRST PERL PROGRAM!!!
<twist182> IM SO FUCKING ELITE
<twist182> FUCK YOU ALL
<twist182> HAHAHAHAHAAHHA
<Prae> splendid james
<twist182> FUCK YOU ALL!!!!!!!!!!!!!!!!!!!!!!!
<AlphaTec> uhm...
<Prae> i wrote my 27th TCL script today
<ect> lol
<AlphaTec> hello.pl ?
<twist182> :(
<Prae> before you fcrashed me
<twist182> NO
<Prae> you twat
<AlphaTec> oh
<twist182> its far more k-rad
* twist182 giggles
<twist182> prae :(
<AlphaTec> twist
<twist182> yeah
<AlphaTec> what perl book is it?
<AlphaTec> what one are you reading?
<Prae> 'perl for canadian fags'


<Dr_Pain_>  i need help here about a cble modem to nuke theres a girl 
who has take my nick and put it on a child porn chan and im unable to 
nuke that bitch shes on cable im in winshit

<thep0et> bob how come smoking makes me horny? watching people smoke 
makes me erect, is this a problem?

*** |RAT| has joined #k-rad
<Prae> did you signup bob?
<k-rad-bob> yes
<k-rad-bob> h0h0h0h0h0h
<Prae> basic?
<k-rad-bob> MASTER!
<|RAT|> hmmmmmm
<Prae> elite!
<Prae> Vicki is such a sweetie
<Prae> you'll see
<k-rad-bob> what about bandwith?
<|RAT|> Isn't this a hacking channel????
<Prae> fast
<k-rad-bob> yes rat
<Prae> no rat
<Prae> its a sex channel
<|RAT|> ooooops
*** |RAT| has left #k-rad
<k-rad-bob> its also a sex channel
<Prae> hahahaha!!!!!!

<sdf> NOONE IS LEAVING THIS CHANNEL WITHOUT A GROUP HUG
*** sdf was kicked by RLoxley (Too many damn caps!)

*** asmith has joined #hacktech
<asmith> hi
<asmith> can somone send me a prog that gets i-net p-words and u-names

<jeczilak> Anyone know where I can get getadmin.exe

<Prae> roses are red and violets are twisted, bend over james cause 
you're about to get fisted.

<thep0et> alot of black metal bands butt fuck eachother on stage

<snookems> eww this girl at my old highschool once was dared to shove 
a hotdog intoside herself and she got it like all the way and it broke 
off. she had to go to the hospital and get it removed. i dunno i felt 
like sharing that. probably becaus i am in a goofy mood now.

*** twist182 has quit IRC (Excess Flood)
*** twist182 has joined #hackphreak
*** twist182 has quit IRC (Excess Flood)
<RLoxley> twist=0wned

<NazXuL-X> hey.
<NazXuL-X> i went to mplayer last night. its still gay
<k-rad-bob> so you blended in quite well?

<k-rad-bob> im having sex with my left hand from now on
<twist182> prae
<twist182> bob, why the switch?
<Prae> !?
<Prae> im ambedextrus
<Prae> i use both
<Prae> :)
<twist182> i use my feet
<k-rad-bob> to make my right one jealous so that she'll work way 
harder when i give her another chance

*** A17mPA has joined #hacktech
<A17mPA> hi every1. Question. Has anyone heard of something called AOL 
IM Sysop?
<A17mPA> or something like that

<jeczilak> How well does getadmin.exe work?

<Shizzy> We need more women in here.. thats the problem in a 
nutshell... women that aren't to bright so they will go along with 
anything we say haha

<g-sync> does anybody have a unix i can borrow??????

*** RLoxley has joined #hacktech
<G0th1c> hey RL
<RLoxley>  [5m [1;31mh [1;32me [1;34ml [1;33ml [1;31mo [1;32m, 
 [1;34mh [1;33ma [1;31mc [1;32mk [1;34me [1;33mr [1;31ms [0m
*** RLoxley is now known as grid
<grid> coOOl i dont feel gay anymore
<grid> i am cured
<grid> goodbye for now.
*** grid has left #hacktech
*** fraglord has joined #hacktech
<canonbal> *** RLoxley is now known as grid
<canonbal> rloxley and grid arent the same ppl are they? Heh

<fraglord> does anyone have a webpage or know of a cool program that 
hacks ICQ passwords or hotmail passwords

<Uneek> I've got more skills on the tip of my cock then you've got in 
your whole brain!!!

<h2so4> i havent been afk for like 5 days

*** thep0et has Quit IRC (I'm black and i don't work for a 
living...are you surprised?)

<niemand1> i find masturbation a good way to make bath's more fun

<vuduisz> they cant talk about security, 2600 dont know shit about 
security

*** ZeRiAl has joined #hackphreak
<ZeRiAl> hey you guys, u happen to know of a program to get login and 
pswd from a porn site?

*** M1K4 has joined #hackuk
<M1K4> i need some carding instructions

* Prae2k/#k-rad is learning how to masturbate whilst doing a handstand
* thep0et/#k-rad is learning how to ignore prae's stupid pointless 
comments which make no sence what so ever

*** alltra has joined #hacktech
<alltra> anyone know anyhting that will screw someone over real bad if 
all I have is their ip number?

<thep0et> could you imagine if our penises acted like elephant trunks? 
and we had to feed our selves like that

*** tobsgal has joined #hackuk
<tobsgal> any lesbian or bi females want to chat

*** ubre has joined #HackTech
<ubre> hi, guys pls help. How do i see someone's IP server in a chat?

*** SpeedSwim has joined #HackTech
<SpeedSwim> hety any of you have a big virus or kno where I cna get 
one?

*** hey has joined #HackTech
<hey> is they re somebody who could tell me how to hack  somebody on 
irc  our can give me a sites????????????????????

<The0ry> without masturbation there is nothing
<The0ry> sekz, i serioulsy used to masturbate about 15 to 20 times a 
day
<The0ry> seriously even

*** thik has joined #hacktech
<thik> Can anybody show me how to hack ????

*** weesel has joined #hacktech
<weesel> hello
<weesel> does anyone know of a proggie that will let me into someones 
HDD useing ICQ?

*** Drumguy has joined #hacktech
<Drumguy> Anybody know operatior or administraitor Yahoo Chat 
commands?
<Drumguy> Anybody know operatior or administraitor Yahoo Chat 
commands?
<Drumguy> Anybody know operatior or administraitor Yahoo Chat 
commands?
<Drumguy> Anybody know operatior or administraitor Yahoo Chat 
commands?

*** Drumguy has joined #hacktech
<Drumguy> Does anybody know kick certain people out of Yahoo Chat 
Rooms?

*** moeska has joined #hacktech
<moeska> can someone tell me how to ping to a specified port?

*** bcsiss has joined #hacktech
<bcsiss> i need help
<canonbal> with?
* fraggy is back: from -(tv)- gone -(10mins 56secs)-
<bcsiss> is there anyway to hack into someone elses computer through 
mirc?

*** Killer has joined #hacktech
<Killer> can someone disconnect a clone of me that has fucked up?

*** Zero|kewl has joined #hacktech
*** hst has quit IRC (bbl)
<Zero|kewl> does anybody use wwwhack?

*** Freddo has joined #hacktech
<Freddo> does anybody know NT hack???
-X- Ban list updated
* h420i is away: -(could irc be any more boring?)- since -(23:18)- 
pager -(on)-
<Freddo> does anybody know NT hack???
*** G|GAWH0RE has joined #hacktech
<fraggy> isn't freddo the guy who gets shot in the movie?
<Freddo> ???
<fraggy> n/m
<rafay> :P
*** koshie has quit IRC (Ping timeout for 
koshie[get.your.free.shell.at.shellyeah.org])
<Freddo> http://www.tuxedo.org/~esr/faqs/hacker-howto.html
<Freddo> sorry
<Freddo> wrong paste
<k-rad-bob> lol
<fraggy> as opposed to the right paste?
<k-rad-bob> you nail him fraggy
<Freddo> does anybody know NT hack???
<fraggy> eh?
<Freddo> this is correct
<rafay> w0rd bob
<rafay> he is just asking a question
<rafay> :P
<k-rad-bob> hehe
<k-rad-bob> sowwie
<Freddo> so ... does anybody know NT hack???
<k-rad-bob> lol
<k-rad-bob> i cant help myself
<fraggy> haha
<fraggy> Freddo, say that again. i crack up everytime i read that
<|cH|cKeN|> hehe
<Freddo> ok... does anybody know NT hack???

*** lioufman has joined #hacktech
<rafay> HEH
*** cTq has left #hacktech
* lioufman exei pathei plaka me to <<NiRVaNa 2000b>> by NiRVaNaiR 
[100% Megali eukolia dike mou]

*** Mike`` has joined #hacktech
<Mike``> can someone help me with something?
<k-rad-bob> what is it?
<Mike``> i got a pw cracker but i can't get it to work
*** Mike`` was kicked by fraggy ( i got this AOL punter proggie but i 
don't know how it works....... oh, never mind )
*** Mike`` has joined #hacktech
<Mike``> funny??
<|cH|cKeN|> not really
<fraggy> yes. very
<|cH|cKeN|> ur just gay

*** L_Mental has joined #hacktech
<L_Mental> need to know: are there any binders for exe+image?

*** kingpin1 has joined #hacktech
<kingpin1>   __              ___    ___              
<kingpin1>  /\ \            /\_ \  /\_ \             
<kingpin1>  \ \ \___      __\//\ \ \//\ \     ___    
<kingpin1>   \ \  _ `\  /'__`\\ \ \  \ \ \   / __`\  
<kingpin1>    \ \ \ \ \/\  __/ \_\ \_ \_\ \_/\ \L\ \ 
<kingpin1>     \ \_\ \_\ \____\/\____\/\____\ \____/ 
<kingpin1>      \/_/\/_/\/____/\/____/\/____/\/___/  

<Prae> hi
<Prae> can i ask you a few questions?
<gay18> ok pls
<Prae> firstly, are you a man or a woman?
<gay18> man and gay
<gay18> u
<Prae> im a man
<Prae> where do you live?
<gay18> istanbul
<Prae> What is the first thing that pops into your head when i say 	 
	 poop?
<gay18> nothýng
<Prae> nothing?
<Prae> how do you feel about poop?
<Prae> do you think its good or bad?
<gay18> you mean poop musýc
<Prae> no
<Prae> i mean poop as in shit
<Prae> the brown stuff that comes from your anus
<gay18> bad
<Prae> why is it bad?
<gay18> you are realy shýt
<Prae> and why is that?
<Prae> does poopsex.com disgust you?
<Prae> ok, so.. if i say "I want to poop in your mouth." what does
	 that make you feel?
<Prae> angry?
<Prae> happy?
<gay18> pls be nýce man chat nýce thýngok
<Prae> but i want to know how you feel about poop
<Prae> please, tell me..
<gay18> ok pls you dont want to be nýce i leave
<gay18> by

<tress> <GrEEnMK> how can i edit file in unix ?
<tress> <YoJaUta> with a text editr
<tress> <YoJaUta> but real men use magnetic tipped needles to directly 
	   write to the hd platter
<tress> <GrEEnMK> ahh
<tress> <GrEEnMK> what text editor ?

*** TuCoWS has joined #hacktech
<TuCoWS> Hola Intercambio utilidades, nuckes antinuckes, virus 
antivirus, troyanos antitroyanos,  cortafuegos, antiflood, floods, 
crackers, antiBO antiNetbus, manuales sobre informatica en gral. como 
irc telnet o lo que sea, si tienen alguna las intercambiamos por 
correo electronico no por "dcc send", en especial busco spoofers y 
patchs para windows 98, quien este interesado escriba asi :  /query 
tucows , y me encontraran, gracias
*** TuCoWS has left #hacktech

<Prae2k> >:\
<Prae2k> my mouse is fucked up
<Prae2k> i think its drunk
<madwill> lol
* madwill hands praes mouse another beer
<Prae2k> >:\
<Prae2k> he had enough
<Prae2k> i wrote 'CUNT' on it
<Prae2k> about 6 months ago
<Prae2k> i can still see it

<mcx^> im sorry for nuking you earlier :(
<mcx^> EVERYONE
<pez> its ok, i dont think i was at the computer
<Sekz> ADSL gets here in 6 months.
<mcx^> MCX WANTS TO APOLOGIZE FOR HIS NUKING






[ :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ]
[ b0g article # 11 ::::::::::::::::::::::::::::::::::::::::::::: b0g ]
[ ::::::::: notes from the editor – k-rad-bob – 808@c2i.net :::::::: ]
[ :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ]


AGH!
So much work. Editing this issue has been hell, but still it has been 
a joy. Issue two is out and we have proven that we aren’t a one time 
only zine, like *cough* pursuit and *cough* b4b0 and *cough* phrack.

Also the feedback we have been receiving has been nothing less but 
heartwarming. Now all that is left to be said is: Contribute or die!
Link our site or die! Mass forward our URL to everyone on your icq, 
email it to everyone you can, and Spam all the Usenet groups with it!

This issue could be better but due to the fact that our domain is 
finally up and running we are all exited so here goes nothing.

Official b0g site: http://www.b0g.org
Contact: irc in #k-rad on undernet
By email: b0g@b0g.org

Contributions can be sent to contribute@b0g.org

Thats all :)




Shouts and hi’s goes out to all of #k-rad #hacktech #hackuk #whhs and 
to all the other undernet dogs!


