Register for your free account! | Forgot your password?

You last visited: Today at 12:31

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Sending Packets

Discussion on Sending Packets within the PW Hacks, Bots, Cheats, Exploits forum part of the Perfect World category.

Reply
 
Old 04/15/2011, 12:38   #196
 
elite*gold: 10
Join Date: Sep 2010
Posts: 400
Received Thanks: 234
Quote:
Originally Posted by Smurfin View Post
lol I was asking about resources for ingame chat system like its pointers/offsets/structures not material resources, but thanks anyway.

guess he's busy or not monitoring this thread anymore.
Hope this helps

*Edit: Sorry for spamming the link everywhere btw, but there have been several threads with requests for it, so it kinda keeps the flow going
dumbfck is offline  
Old 04/15/2011, 15:56   #197
 
Interest07's Avatar
 
elite*gold: 0
Join Date: Mar 2010
Posts: 862
Received Thanks: 576
Quote:
Originally Posted by dumbfck View Post
Hope this helps

*Edit: Sorry for spamming the link everywhere btw, but there have been several threads with requests for it, so it kinda keeps the flow going
I wouldn't worry about it, as long as they're not trojan infested 'dmg hacks' and contain useful info feel free to spam it lol

I see i promised to dig them up lol, oops
Interest07 is offline  
Old 04/15/2011, 19:52   #198
 
Smurfin's Avatar
 
elite*gold: 0
Join Date: Oct 2008
Posts: 1,243
Received Thanks: 670
hehe it's ok , I was about to resurface the question again though, for auto escaping a boss if he shouts a certain line before it deals crazy dmg.
Smurfin is offline  
Old 04/18/2011, 20:52   #199
 
elite*gold: 10
Join Date: Sep 2010
Posts: 400
Received Thanks: 234
Just linking the here for continuity ^^
dumbfck is offline  
Old 05/26/2011, 04:59   #200
 
elite*gold: 0
Join Date: Feb 2008
Posts: 33
Received Thanks: 0
how do u record the action actually?

i'm in the making auto follow char.. manually need to double click on name while in pt and it will follow that person..
maniack88 is offline  
Old 05/27/2011, 11:33   #201
 
elite*gold: 10
Join Date: Sep 2010
Posts: 400
Received Thanks: 234
If I understand correctly, are you asking how to actually find out what packet data is required for an action? If so, here goes....

Firstly, you need the sendPackets offset... Can find that on , which is currently: 0x653380
So, open up OllyDbg and set a breakpoint at this address. You will find it breaks here at random occasionally - The client sends packets requesting updates for things sometimes, so you have to be ready to hit run in Olly (F9) then very quickly perform the required action in game before you get another false trigger.
So, with that in mind, make sure Olly is running, then do something in game... For this example, I hit the meditate shortkey.
Olly should break, as per picture 1:


Assuming all has gone well so far, if you now look in the stack window in Olly, the 2nd and 3rd values from the top are the ones you're interested, as outlined in the above pic.
The 2nd stack value (the top one in my red box) is the address of the packet data that is being sent (address 0x29B60A58). Note that this address changes every time a packet is sent.
Now, right click on this address in the stack and choose 'Follow in dump'.


The memory window should now set it's origin at the address we want.
Now, note the 3rd value in the stack (the lower number in the red box on the first picture). This is the size of the packet, i.e., 2 bytes in this case.
So, looking at the memory window:


We see the first two bytes are 0x2E, 0x00
If you take a look at the , you can see that this matches with the data packet Interest07 has specified there.

Note that some packets have parametric information too, such as playerId, or NPC / mob / resource IDs, etc. It's up to you to figure that stuff out

Sorted =]

I have a feeling I may have misinterpreted the above question, but hopefully this is useful nonetheless :P
dumbfck is offline  
Thanks
3 Users
Old 05/27/2011, 13:39   #202
 
elite*gold: 0
Join Date: Jan 2011
Posts: 22
Received Thanks: 0
guys what i can do with that codes? please explain me
mastaro is offline  
Old 05/27/2011, 13:51   #203
 
elite*gold: 10
Join Date: Sep 2010
Posts: 400
Received Thanks: 234
Lots of stuff... Read the first post
In a nutshell, most things you do in game result in packets of data being sent to the server, e.g., attacking a mob, initiating a conversation with an NPC, moving items around in your inventory, using items, the list goes on.
Interest's first thread shows the vast majority of these packet 'codes' - I have just added this information to help you find any that are not listed in his original post.
dumbfck is offline  
Old 05/27/2011, 14:15   #204
 
Interest07's Avatar
 
elite*gold: 0
Join Date: Mar 2010
Posts: 862
Received Thanks: 576
Please note, they're not for 'hacking', but for automating actions such as autopotting or botting.
Interest07 is offline  
Old 06/07/2011, 07:52   #205
 
elite*gold: 0
Join Date: Feb 2008
Posts: 33
Received Thanks: 0
i tried to make auto follow but it keep on failing.. guess i dont have the skills
maniack88 is offline  
Old 06/16/2011, 11:21   #206
 
elite*gold: 0
Join Date: Oct 2007
Posts: 10
Received Thanks: 1
hi everyone , how to make char fly by using packet ?
thanks
unfaceguy is offline  
Old 06/16/2011, 17:41   #207
 
elite*gold: 0
Join Date: Dec 2010
Posts: 2
Received Thanks: 2
Fly with a packet.

To make a character fly using packet, you need the following:
an equipped aerocraft
itemType ID for the currently equipped aerocraft (can be gotten by scanning the equipment inventory, or from if you know the name of the item, look it up and the itemTypeID will be the number at the end of the resulting URL in your browser e.g. when searching for "Wings of Winged Elves", I got the URL http://www.pwdatabase.com/items/2096, so 2096 is the itemTypeID.
the "equipment inventory index" for the aerocraft (I think it might always be 12)

Then you just send a "useItem" packet with the itemTypeId and the index value, telling it to look in the equipment inventory list (instead of your character's bag).
burple6 is offline  
Thanks
1 User
Old 06/16/2011, 21:35   #208
 
Interest07's Avatar
 
elite*gold: 0
Join Date: Mar 2010
Posts: 862
Received Thanks: 576
And to actually move with packets you can do something like this for example:

Code:
        private void moveByPackets(Coordinates destination, PacketMoveType moveType)
        {
            float speed;
            short moveCounter = 0;

            Coordinates currentCoords = new Coordinates(player.coordinates);

            switch (moveType)
            {
                case PacketMoveType.Flying:
                    //Flying
                    speed = player.flySpeed;
                    break;

                case PacketMoveType.Jumping:
                    //Jumping
                    speed = player.runSpeed;
                    break;

                case PacketMoveType.Running:
                    //Running
                    speed = player.runSpeed;
                    break;

                case PacketMoveType.Walking:
                    //Walking
                    speed = player.walkSpeed;
                    break;

                case PacketMoveType.Swimming:
                    //Swimming
                    speed = player.swimSpeed;
                    break;

                default:
                    //Something else
                    Debug.WriteLine("Invalid moveType");
                    speed = player.runSpeed;
                    break;
            }

            short timeInterval = 1000; // in ms

            float timeNeeded = destination.distance(currentCoords) / speed; //time in seconds

            float dX = ((destination.x - currentCoords.x) / timeNeeded) * timeInterval / 1000; //distance in xDirection in 1 second * time traveled
            float dY = ((destination.y - currentCoords.y) / timeNeeded) * timeInterval / 1000; //distance in yDirection in 1 second * time traveled
            float dZ = ((destination.z - currentCoords.z) / timeNeeded) * timeInterval / 1000; //distance in zDirection in 1 second * time traveled

            if (speed > 0)
            {
                while (timeNeeded > (float)timeInterval / 1000)
                {
                    moveCounter = player.moveCounter;
                    currentCoords.x += dX;
                    currentCoords.y += dY;
                    currentCoords.z += dZ;

                    sendPacket.move(currentCoords.x, currentCoords.y, currentCoords.z, timeInterval, speed, (byte)moveType, moveCounter);

                    player.coordinates = currentCoords;
                    player.coordinates2 = currentCoords;
                    player.coordinates3 = currentCoords;
                    player.coordinates4 = currentCoords;

                    moveCounter++;
                    player.moveCounter = moveCounter;

                    timeNeeded -= (float)timeInterval / 1000;
                    Thread.Sleep(timeInterval);
                }

                if (timeNeeded > 0)
                {
                    moveCounter = player.moveCounter;
                    currentCoords.x += dX * timeNeeded;
                    currentCoords.y += dY * timeNeeded;
                    currentCoords.z += dZ * timeNeeded;

                    sendPacket.moveStop(currentCoords.x, currentCoords.y, currentCoords.z, (short)(timeNeeded * 1000), speed, (byte)moveType, moveCounter, 0);

                    player.coordinates = currentCoords;
                    player.coordinates2 = currentCoords;
                    player.coordinates3 = currentCoords;
                    player.coordinates4 = currentCoords;

                    moveCounter++;
                    player.moveCounter = moveCounter;
                }
            }
        }

Code:
        private int moveAddress;
        private byte[] moveAddressRev;

        private byte[] movePkt = new byte[] 
        { 
            0x00, 0x00,                 //Header
            0x00, 0x00, 0x00, 0x00,      //x coord
            0x00, 0x00, 0x00, 0x00,      //y coord
            0x00, 0x00, 0x00, 0x00,      //z coord
            0x00, 0x00, 0x00, 0x00,      //x coord
            0x00, 0x00, 0x00, 0x00,      //y coord
            0x00, 0x00, 0x00, 0x00,       //z coord
            0x00, 0x00,                 //interval
            0x00, 0x00,                 //speed
            0x00,                       //moveType
            0x00, 0x00                  //counter

        };

        public void move(float xCoord, float yCoord, float zCoord, short interval, float speed, byte moveType, short moveCounter)
        {
            //Get size of the packet
            int packetSize = movePkt.Length;

            if (moveAddress == 0)
            {
                //load packet in memory
                loadPacket(movePkt, ref moveAddress, ref moveAddressRev);
            }

            byte[] xCoordRev = BitConverter.GetBytes(xCoord);
            xCoordRev.Reverse();
            MemFunctions.MemWriteBytes(pr_processHandle, moveAddress + 2, xCoordRev);
            MemFunctions.MemWriteBytes(pr_processHandle, moveAddress + 14, xCoordRev);

            byte[] yCoordRev = BitConverter.GetBytes(yCoord);
            yCoordRev.Reverse();
            MemFunctions.MemWriteBytes(pr_processHandle, moveAddress + 6, yCoordRev);
            MemFunctions.MemWriteBytes(pr_processHandle, moveAddress + 18, yCoordRev);

            byte[] zCoordRev = BitConverter.GetBytes(zCoord);
            zCoordRev.Reverse();
            MemFunctions.MemWriteBytes(pr_processHandle, moveAddress + 10, zCoordRev);
            MemFunctions.MemWriteBytes(pr_processHandle, moveAddress + 22, zCoordRev);

            byte[] intervalRev = BitConverter.GetBytes(interval);
            intervalRev.Reverse();
            MemFunctions.MemWriteBytes(pr_processHandle, moveAddress + 26, intervalRev);

            short shortSpeed = (short)(speed * 256 + 0.5);
            byte[] shortSpeedRev = BitConverter.GetBytes(shortSpeed);
            shortSpeedRev.Reverse();
            MemFunctions.MemWriteBytes(pr_processHandle, moveAddress + 28, shortSpeedRev);

            MemFunctions.MemWriteByte(pr_processHandle, moveAddress + 30, moveType);

            byte[] moveCounterRev = BitConverter.GetBytes(moveCounter);
            moveCounterRev.Reverse();
            MemFunctions.MemWriteBytes(pr_processHandle, moveAddress + 31, moveCounterRev);

            sendPacket(moveAddressRev, packetSize);
        }
You don't actually need to reverse the bytes etcetera, but I had already written the code before I realised that and couldnt be bothered to fix it
Interest07 is offline  
Thanks
6 Users
Old 06/18/2011, 16:53   #209
 
elite*gold: 0
Join Date: Jan 2010
Posts: 26
Received Thanks: 2
How do you find the move address ?
roflmfaoo is offline  
Old 06/18/2011, 18:35   #210
 
Interest07's Avatar
 
elite*gold: 0
Join Date: Mar 2010
Posts: 862
Received Thanks: 576
Quote:
Originally Posted by roflmfaoo View Post
How do you find the move address ?
Check the post in this thread where I explained how to send packets with C#. The moveAddress is just an address with enough memory allocated in the client to store your packet. You don't need to find this address as it is returned by the MemFunctions.AllocateMemory function.
Interest07 is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
Help with sending packets in autoit
08/16/2010 - AutoIt - 1 Replies
ive been lookin around different sites for ways to send packets to the game server. the only examples i see is to create a server and a client which i dont need, i think. well to the point now, can someone lead me in a direction or tell me how to send packets to a game? also if i send packets then that means i dont need the game to be active, correct? Because in autoit when u use keys u need to have the game active, and control send does not work. ty
Sending Packets !!!
09/07/2008 - Kal Online - 14 Replies
now i know how to sniff / analyse packets ... but what then ? :) how can i send packets ?? to pimp or mix weapon for example i just need the way to send , and then i can depend on myself :D
Sending Packets (need advice)
03/20/2008 - Conquer Online 2 - 7 Replies
OK well im finaly trying to stop leaching off of everybodys work its been great n all download n play :D But im tired of being a begger n the past couple months ive been learning as much as i can about macros memery add blah blah you know ... After playing around with ce and ahk the past couple months i stumbled across wpe pro, theres not alot of tuturals and its hard to find good help. Well heres what ive been doing so far, open my CO then i attach it to my sniffer. I change my...
Scamming by sending packets???
04/15/2006 - Conquer Online 2 - 1 Replies
Well my friend and i came up with the idea to send packets to the server to show a certain item in the trade window. We want to use this as a type of scam. I didnt see this in any other threads and was wondering if anyone knew if this is possible and if they could point use in the right direction. My friend was pretty good with packets in CO 1.0 but we arent really sure to go about doing it. If anyone one could please lend a helping hand? P.S.- Before I get flamed for this because i know i...
Sending packets
10/12/2005 - Conquer Online 2 - 10 Replies
I've a question. Is it possible to send 1 packet multiple times at the exact same time?



All times are GMT +1. The time now is 12:33.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.