Creating a bot starts with understanding what a bot is and what it requires.
So between the Client and the server are lots of packets send and received. they all contain information about something which needs to be updated or changed in the gameworld. The bot needs be between this stream of packets so you can block certain packets and send your own.
So what you have to do is create a program which accepts a connection from the client and connects to the server. Then you send all the packets from the client to the server and from the server to the client. But at this moment you can't read a lot since the packets from the client to server are encrypted. For this you can use the SilkroadSecurityApi which drew benton made. This handles the server side and client side security. He made a few examples on how to use his api so you might want to check them out.
Once the security is all done you're all set to create the actual bot. First thing you need to do is to read the packets from the server -> client because you need to know what's going on. The format of all the silkroad packets is the following:
Code:
data size[WORD]
Opcode[WORD]
security byte[BYTE]
security byte[BYTE]
packet data[BYTE(4090)]
You use the opcode to determine what packet is being send. For example if the opcode is 0x3013 the data in the packet contains the character information. How the data is packet is still unknown but drew benton also made an awesome tool called edxSilkroadLoader which allows you to log the parsed packets. So basicly you know the format of the packets but you still need to figure out what the values mean. Ofcourse some packets can have different formats but for some packets it just takes a lot of time.
So once you've read all you need to know you can start sending packets to select monsters or walk arround in the gameworld.
That's basicly it you can made it as simple as you want or super advanced.