Welcome Guest ( Log In | Register )



 
Reply to this topicStart new topic
> Yahoo! Protocol: Part 15 - Yahoo! Trainer
tansqrx
post Mar 27 2007, 04:52 AM
Post #1


Super Member
Group Icon

Group: [HOSTED]
Posts: 555
Joined: 25-April 05
Member No.: 4,374
myCENTs:68.76



Since the writing of this article the Yahoo! Trainer mentioned has gone through several revisions. The original code may not fully function but can be found at http://www.ycoderscookbook.com/Files/Yahoo Login Sockets.rar.. The current iteration of the trainer is called YCC Trainer and can be found at http://www.ycoderscookbook.com/Files/YCC_Trainer.zip. The latest version currently does not have all of the functionality of the first version but the code has been rewritten to make it more understandable and a better learning tool. If reading from a different site, all of my code can be found at www.ycoderscookbook.com.

Overview

The second objective of my research was to see if it is possible to create my own booter program. A program was successfully developed that is able to log into the Yahoo! network and run boot code from any username. The resulting program is named the Yahoo! Trainer and is written in Microsoft Visual Basic.Net 2003. While many programs are available that are considered booters, none of them are designed from a research point of view. More over, only a few programs come with source code and the ones that do are written in Microsoft Visual Basic 6 and are poorly coded. The full source code to the Yahoo! Trainer can be found at http://www.ycoderscookbook.com/Files/Yahoo Login Sockets.rar. Below are the highlights and overview of the Yahoo! Trainer.

Operations

Figure 34 shows the main screen of the Yahoo! trainer. The same operation used to sign into the Yahoo! network via Yahoo! Messenger is used in the Yahoo! Trainer. The user enters the username and password and then clicks, "Login". An important feature to the trainer is the debug window located to the right of the main window. This dialog box shows what data is being sent and received by the program. The debug form also allows the individual data fields to be shown and a step by step login procedure performed. Once logged in the user's buddy list is shown in the main window. Unlike the standard Yahoo! Messenger client, the Yahoo! trainer has additional functionality which allows booter code to be run as shown in the "booting" group box. Although not critical to this paper, the Yahoo! trainer also incorporates instant messages to any user through a dialogue box or buddy list.



Figure 34 - Yahoo! Trainer Main Screen

Program Structure

The Yahoo! Trainer uses seven classes to perform its operation as shown in Figure 35.



Figure 35 - Yahoo! Trainer Class Structure

ClientSocket

The bottom most and most used component is the ClientSocket class. The ClientSocket class is a multi-threaded TCP socket library used for all network communication. The class is an adapted version of the code written by "The Silence" in an article posted on www.codeproject.com [http://www.codeproject.com/vb/net/Silence_Socket.asp]. The major change to the original code has been to make the library use a TCP socket instead of a TCP client

modYahooPackets

The modYahooPackets class holds all the functions necessary to create a Yahoo! packet. All packets and related subsections are comprised of an array of bytes. Because some communication with the Yahoo! servers requires non-ASCII characters, all data must be kept in a raw byte format. The modYahooPackets class contains functions for concatenating byte arrays, extracting bytes, creating packet service types, status messages, and finding packet lengths to name a few.
The modYahooUser class has an instance created for each username that is logged in. Although not fully implemented, this class is designed to handle multiple users being logged in at the same time. Drawing from functions in the ClientSocket and modYahooPackets classes, the modYahooUser class is where a packet to be sent is constructed. Table 1 shows how combining operations from other classes are used to send an IM to another user.

CODE
modYahooPackets.byteCat(aBytePayload, modYahooPackets.pAddField("5", strRecipant))
modYahooPackets.byteCat(aBytePayload, modYahooPackets.pAddField("49", "FILEXFER"))
modYahooPackets.byteCat(aBytePayload, modYahooPackets.pAddField("1", strUsername))
modYahooPackets.byteCat(aBytePayload, modYahooPackets.pAddField("13", "5"))
modYahooPackets.byteCat(aBytePayload, modYahooPackets.pAddField("54", "MSG1.0"))

modYahooPackets.byteCat(aByteRequest, "YMSG")
modYahooPackets.byteCat(aByteRequest, Chr(0))
modYahooPackets.byteCat(aByteRequest, modYahooPackets.pProtocol(11))
modYahooPackets.byteCat(aByteRequest, modYahooPackets.pLength(aBytePayload))
modYahooPackets.byteCat(aByteRequest, modYahooPackets.pType("P2PFileXfer"))
modYahooPackets.byteCat(aByteRequest, modYahooPackets.pStatus("Available"))
modYahooPackets.byteCat(aByteRequest, modYahooPackets.pSessionID("Null"))
modYahooPackets.byteCat(aByteRequest, aBytePayload)


Table 1 - Combining functions to create the Shared Files Boot

frmMain

frmMain is where most of the user interaction is captured.  The user is able to select the Yahoo! server to log into, select username and password, see his buddy list, IM, or run boot code.

frmDebug

It was an early design decision to include a method to show incoming and outgoing packets from the client in real time.  The Debug window provides this functionality by showing packets in a datagrid.  Other specialized data and operations are also shown on this form.

modPMBox and modVisualEffects

The ability to send IM's from the Yahoo! Trainer was not a goal for this paper but was added along the way to help understand the Yahoo! protocol.  The modPMBox class supports the use of multiple IM boxes and conversations with other users. 
Likewise, the modVisualEffects class is not an integral part of the Yahoo! Trainer for this project.  modVisualEffects is used to support the features and functions found on the debug form.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic

Collapse

> Similar Topics

Topics Topics
  1. Learn how to surf anonymous on the net! [Part - 1](34)
  2. Have You Ever Been To Yagoohoogle?(15)
  3. Creating A Game In Rpg Maker 2000/2003(18)
  4. Creating You Own Game In RPG Maker 2000/2003(12)
  5. Yahoo! Messenger Protocol Tutorial - Part 2(2)
  6. Finding Yahoo Account Creation Date(1)
  7. Easy Message: The Ultra Light Multi-Protocol Messenger(3)
  8. [tutorial] Basics Of C Programming - Part 1(11)
  9. [tutorial] Basics Of C Programming - Part 2(21)
  10. C# Tutorial : Lesson 7 - Creating Value Types & Reference Types - Part II(1)
  11. Captchas + Yahoo! Chat = No Bots (for Now)(22)
  12. Yahoo! Messenger 9 Beta Preliminary Review(15)
  13. Do Google Search Better Than Yahoo?(15)
  14. Flashget Download Manage(0)
  15. Yahoo! Dodges The Bullet(4)
  1. Is The Sandbox Only For Google?(0)
  2. Yahoo! Messenger Talking To Google Talk?(7)
  3. Get Paid To Search Yahoo!(10)
  4. History Of Yahoo(2)
  5. Yahoo! Search Boss(5)
  6. Yahoo! Messenger Power User(2)
  7. Design A Contact Form In Flex Part 1(0)
  8. Yahoo! Messenger Challenge Response Algorithm(11)
  9. How To Design A Contact Form Part 3(0)
  10. Gimp Animation Tutorial(16)
  11. Yahoo! Profiles Updated(2)
  12. Yahoo! Messenger Firewall Changes(0)
  13. New Ceo For Yahoo!(0)


 



- Lo-Fi Version Time is now: 23rd November 2008 - 12:33 AM