Cheat Engine Forum Index Cheat Engine
The Official Site of Cheat Engine
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 


Packet Sniffing / Sending

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> General programming
View previous topic :: View next topic  
Author Message
gunminiho
Expert Cheater
Reputation: 0

Joined: 15 Dec 2008
Posts: 144
Location: peru

PostPosted: Fri Dec 03, 2010 9:20 pm    Post subject: Packet Sniffing / Sending Reply with quote

Hi i want to ask something about this subject .

i would way that sniffing and sending part aren't really hard to use, but the main reason of this thread its to focus on game itself

example i want to Send some packets to my game , not using WPE, So i understand that i need Send () address + Class address to emulate my SendPacket function and send my own packets trought my own mehod let's say not using anyother third party program but my question is

how can i find those Send() & Class Addresses without knowing the AoB ???
Back to top
View user's profile Send private message
atom0s
Moderator
Reputation: 205

Joined: 25 Jan 2006
Posts: 8585
Location: 127.0.0.1

PostPosted: Sat Dec 04, 2010 9:14 am    Post subject: Reply with quote

Debugging. Find something that you'd assume to be passed to a packet handler sooner or later, such as updates, changes, etc. and follow the flow until you land up hitting the function creating the packet or sending it.

Another easy way is to look for send() / sendto() calls and backtrace the functions that they are in to where they are called from etc. to find the functions using them and so on.

_________________
- Retired.
Back to top
View user's profile Send private message Visit poster's website
gunminiho
Expert Cheater
Reputation: 0

Joined: 15 Dec 2008
Posts: 144
Location: peru

PostPosted: Sat Dec 04, 2010 10:32 am    Post subject: Reply with quote

Wiccaan wrote:
Debugging. Find something that you'd assume to be passed to a packet handler sooner or later, such as updates, changes, etc. and follow the flow until you land up hitting the function creating the packet or sending it.

Another easy way is to look for send() / sendto() calls and backtrace the functions that they are in to where they are called from etc. to find the functions using them and so on.


By easier way you mean to look for where Send() or SendTo() are called from ?

Would work " Find Intermodular Calls " from Olly Dbg ?

i should try D:
Back to top
View user's profile Send private message
atom0s
Moderator
Reputation: 205

Joined: 25 Jan 2006
Posts: 8585
Location: 127.0.0.1

PostPosted: Sun Dec 05, 2010 8:25 am    Post subject: Reply with quote

gunminiho wrote:
Wiccaan wrote:
Debugging. Find something that you'd assume to be passed to a packet handler sooner or later, such as updates, changes, etc. and follow the flow until you land up hitting the function creating the packet or sending it.

Another easy way is to look for send() / sendto() calls and backtrace the functions that they are in to where they are called from etc. to find the functions using them and so on.


By easier way you mean to look for where Send() or SendTo() are called from ?

Would work " Find Intermodular Calls " from Olly Dbg ?

i should try D:


Sort of, in the main executable (or the module that handles the packets), right click in the code area window and goto:

Search for -> Name (label) in current module

Then when you find the Winsock calls (they may not be labeled, they may show up as their ordinal) you can right click those and choose:

Find References
or
Find References to Import

If you still have issues you can try using a plugin for Olly called 'Command Bar' and use the command:
bp send <hit enter>

And it should put a break on winsock's send command. (You can also do it for sendto etc.) then it should break whenever those are called at the start of the API. Use the stack to trace back to where it was called then.

_________________
- Retired.
Back to top
View user's profile Send private message Visit poster's website
NoMercy
Master Cheater
Reputation: 1

Joined: 09 Feb 2009
Posts: 289

PostPosted: Sun Dec 05, 2010 10:22 am    Post subject: Reply with quote

In some games you can also go with CE -> find the Address from Send() and take a look at registers, sometimes the right address is there.
Back to top
View user's profile Send private message
zile
Advanced Cheater
Reputation: 0

Joined: 11 Jul 2009
Posts: 75

PostPosted: Mon Dec 06, 2010 3:10 am    Post subject: Reply with quote

Is it possible to just record the packet sent by game through WPE, and then use Send() to send it to the server(without WPE)?
Back to top
View user's profile Send private message
NoMercy
Master Cheater
Reputation: 1

Joined: 09 Feb 2009
Posts: 289

PostPosted: Mon Dec 06, 2010 8:39 am    Post subject: Reply with quote

zile wrote:
Is it possible to just record the packet sent by game through WPE, and then use Send() to send it to the server(without WPE)?


Mostlikely the game has his own decryption in which case that will not work.
Back to top
View user's profile Send private message
atom0s
Moderator
Reputation: 205

Joined: 25 Jan 2006
Posts: 8585
Location: 127.0.0.1

PostPosted: Mon Dec 06, 2010 10:45 am    Post subject: Reply with quote

A lot of games have 'order' numbers in packets now as well which prevent injection using the method you are asking about. Packets will have a number somewhere in the bytes that typically increment per-packet to keep a consistent flow from the engine pushing the packets. Which is when you will need to hook the packet function to inject your packets "correctly".

The order numbers can also be used to ensure the client is synced with the server, if the numbers between the received and sent packets are spaced too far apart the server assume you are either lagging or disconnecting and will either attempt to correct your packet flow and catch you up, or disconnect you.

_________________
- Retired.
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> General programming All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group

CE Wiki   IRC (#CEF)   Twitter
Third party websites