|
You last visited: Today at 05:19
Advertisement
Sending Packets
Discussion on Sending Packets within the PW Hacks, Bots, Cheats, Exploits forum part of the Perfect World category.
07/26/2013, 05:02
|
#361
|
elite*gold: 0
Join Date: Feb 2011
Posts: 75
Received Thanks: 34
|
oh man, i feel like a stupid here, there is nothing wrong with that function, and all the ids sre correct, 
i just "FORGET TO MOVE TO TARGET" b4 i call "useSkill". omg lol
|
|
|
07/28/2013, 23:44
|
#362
|
elite*gold: 0
Join Date: Feb 2011
Posts: 75
Received Thanks: 34
|
Quote:
Originally Posted by Interest07
Move struct:
Code:
public void moveTo(float X, float Y, float Z, float height)
{
int actionStruct = values.actionStructPointer;
int actionList = MemFunctions.MemReadInt(pr_processHandle, actionStruct + 0x30);
int moveAction = MemFunctions.MemReadInt(pr_processHandle, actionList + 0x4);
MemFunctions.MemWriteInt(pr_processHandle, moveAction + 0x8, 0); //action finished = 0
MemFunctions.MemWriteInt(pr_processHandle, moveAction + 0x14, 1); //Action start = 1
MemFunctions.MemWriteFloat(pr_processHandle, moveAction + 0x20, X); // Set X coord
MemFunctions.MemWriteFloat(pr_processHandle, moveAction + 0x24, Y); // Set Y coord
MemFunctions.MemWriteFloat(pr_processHandle, moveAction + 0x28, Z); // Set Z coord
MemFunctions.MemWriteFloat(pr_processHandle, moveAction + 0x68, height); // Set height
if (height >= 0.0)
{
MemFunctions.MemWriteInt(pr_processHandle, moveAction + 0x64, 26625); //Set 1st var for flying up
MemFunctions.MemWriteInt(pr_processHandle, moveAction + 0x6C, 256); // Set 2nd var for flying up
}
else
{
MemFunctions.MemWriteInt(pr_processHandle, moveAction + 0x64, 26624); //Set 1st var for not flying up
MemFunctions.MemWriteInt(pr_processHandle, moveAction + 0x6C, 65536); // Set 2nd var for not flying up
}
MemFunctions.MemWriteInt(pr_processHandle, moveAction + 0x2C, 0); // Set moveType
MemFunctions.MemWriteInt(pr_processHandle, actionStruct + 0xC, moveAction); // Set new moveAction
MemFunctions.MemWriteInt(pr_processHandle, actionStruct + 0x18, 1); // Set next action position to 1
MemFunctions.MemWriteInt(pr_processHandle, actionStruct + 0x14, moveAction); // Set new moveAction
}
|
PHP Code:
Imports pwi_lib
Public Class movement
Public Sub moveTo(ByVal targetID As Integer)
Dim targetX, targetY, targetZ As Single
Dim mob As New monsters
For i As Integer = 0 To mob.count - 1
If targetID = mob.getMonsterID(i) Then
targetX = mob.getX(i)
targetY = mob.getY(i)
targetZ = mob.getZ(i)
moveTo(targetX + 1, targetY + 1, targetZ, 0)
End If
Next
End Sub
Public Sub moveTo(ByVal X As Single, ByVal Y As Single, ByVal Z As Single, ByVal height As Single)
Dim client As New e_client
Dim pr_handle As Integer = e_client.PROCESS_INFORMATION
Dim ofs as New offsets
Dim actionStruct As Integer = MemFunctions.MemReadInt(pr_handle, e_client.CHAR_DATA_BASE + ofs.ACTIONSTRCT2_Offset)
Dim actionList As Integer = MemFunctions.MemReadInt(pr_handle, actionStruct + 48)
Dim moveAction As Integer = MemFunctions.MemReadInt(pr_handle, actionList + 4)
Dim flag As Integer = MemFunctions.MemReadInt(pr_handle, moveAction + 100)
MemFunctions.MemWriteInt(pr_handle, moveAction + 8, 0)
MemFunctions.MemWriteInt(pr_handle, moveAction + 24, 1)
MemFunctions.MemWriteFloat(pr_handle, moveAction + ofs.ActionMoveX_Offset, X)
MemFunctions.MemWriteFloat(pr_handle, moveAction + ofs.ActionMoveY_Offset, Y)
MemFunctions.MemWriteFloat(pr_handle, moveAction + ofs.ActionMoveZ_Offset, Z)
MemFunctions.MemWriteFloat(pr_handle, moveAction + ofs.ActionHeight_OffSet, height)
MemFunctions.MemWriteInt(pr_handle, moveAction + 100, flag + 1)
MemFunctions.MemWriteInt(pr_handle, moveAction + 108, 0)
MemFunctions.MemWriteInt(pr_handle, moveAction + &H2C, 0)
MemFunctions.MemWriteInt(pr_handle, actionStruct + &HC, moveAction)
MemFunctions.MemWriteInt(pr_handle, actionStruct + &H18, 1)
MemFunctions.MemWriteInt(pr_handle, actionStruct + &H14, moveAction)
End Sub
End Class
Is it safe if I do this?, I mean what if i ignore the parameter "height", can make me banned?
|
|
|
07/29/2013, 00:31
|
#363
|
elite*gold: 0
Join Date: Nov 2012
Posts: 96
Received Thanks: 81
|
Quote:
Originally Posted by ntldr32
I mean what if i ignore the parameter "height", can make me banned?
|
hm banned i dont know...while testing stuff i made so much critical or invalid actions and none of my accounts got banned.
but if you dont use height on moving, your bot never work for flying or swimming mobs.
like using range chars and try then to move to mob for looting...
so what is the point on dont use height
|
|
|
07/29/2013, 01:05
|
#364
|
elite*gold: 20
Join Date: May 2009
Posts: 1,290
Received Thanks: 326
|
Server doesn't log faulty packets or setbacks based on geo calculation. Wrong height doesn't get you banned. When setback happens, players don't even get your wrong position - server only broadcasts new movement vector if it is legal. So, GMs don't notice your heightmap error either.
|
|
|
07/29/2013, 19:52
|
#365
|
elite*gold: 0
Join Date: Feb 2011
Posts: 75
Received Thanks: 34
|
Quote:
Originally Posted by Murmuring
so what is the point on dont use height 
|
bcos i dont know what is "height" on that function,
is that the Z cordinat that count from sea level (like geologist count the height of a mountain),
or its a number count from ground level (like arcitech count the height of a building)?, idk,...
i also need to know how to stop movement after we reach the requirmnt skill range,
so far to stop movement i do move to my current coordinat after reach the requird range for skill.
|
|
|
07/29/2013, 21:59
|
#366
|
elite*gold: 0
Join Date: Nov 2012
Posts: 96
Received Thanks: 81
|
take a look in the link and at page 23 for more info
|
|
|
07/29/2013, 23:58
|
#367
|
elite*gold: 0
Join Date: Mar 2010
Posts: 862
Received Thanks: 576
|
To stop use the idle action struct.Height is the height you fill in when you alt + click on a point in the map (to fly somewhere)
|
|
|
08/12/2013, 00:26
|
#368
|
elite*gold: 0
Join Date: Aug 2009
Posts: 8
Received Thanks: 0
|
I found all offsets that i need, only except is the item list base, don't know how to find...
can anyone help me?
|
|
|
08/12/2013, 11:03
|
#369
|
elite*gold: 10
Join Date: Sep 2010
Posts: 400
Received Thanks: 234
|
You should be able to find pretty much everything you need via the  Edit: Whoops, I somehow posted this in the wrong thread lol. I posted the current list offsets  the other day...
|
|
|
08/12/2013, 17:33
|
#370
|
elite*gold: 0
Join Date: Aug 2009
Posts: 8
Received Thanks: 0
|
Quote:
Originally Posted by dumbfck
You should be able to find pretty much everything you need via the  Edit: Whoops, I somehow posted this in the wrong thread lol. I posted the current list offsets  the other day...
|
My pw is pwbr, so i think it have different offsets.
but gonna try, thanks!
|
|
|
10/12/2013, 10:42
|
#371
|
elite*gold: 0
Join Date: May 2013
Posts: 14
Received Thanks: 0
|
I can get send packet in your tools :
realBaseAddress=0xB8FBCC
SendPacketAddress=0x415A7E7020000000 --??? send packet is wrong?
playerCounterOffset=0x00000980
playerIntervalOffset=0x00000934
And, How I can use sendpacket target mod_id?
Sry, My english very bad ^^
|
|
|
10/14/2013, 13:49
|
#372
|
elite*gold: 0
Join Date: Sep 2013
Posts: 146
Received Thanks: 84
|
Hi everyone - i got a question related to genie skills:
Thanks again to Interest for sharing this - so the structure should be like this:
7400<skill id>0001<target id>
As for SkillID of Extrem Poison (ID=972 -> 03 cc) and
my targetID (ID=-2146419000-> 46 41 90 00)
I think i should send thisPacket: 7400 CC03 0001 00904146
But the game tells me "Unable to cast genie skill."
Anyone knows what iam doing wrong?
____
BTW: 7400FE030001701F0500 is working just fine for holy path
|
|
|
10/23/2013, 02:38
|
#373
|
elite*gold: 0
Join Date: Dec 2008
Posts: 1
Received Thanks: 0
|
Function SellItem not run. Please help me!
Tks!
packet = "2500"
packet &= "02000000"
packet &= "10000000" 'nBytes following
packet &= "01000000" 'nDifferent items being sold
packet &= Int2Hex(itemTypeId)
packet &= Int2Hex(invIndex)
packet &= Int2Hex(amount)
|
|
|
10/25/2013, 11:06
|
#374
|
elite*gold: 0
Join Date: Oct 2013
Posts: 1
Received Thanks: 0
|
Quote:
Originally Posted by Interest07
Just in case you don't have the action structs...
Follow:
Code:
public void follow(int playerId)
{
int actionStruct = values.actionStructPointer;
int actionList = MemFunctions.MemReadInt(pr_processHandle, actionStruct + 0x30);
int followAction = MemFunctions.MemReadInt(pr_processHandle, actionList + 0x1C);
MemFunctions.MemWriteInt(pr_processHandle, followAction + 0x8, 0); //Set error = 0
MemFunctions.MemWriteInt(pr_processHandle, followAction + 0x20, playerId); //Set playerId to follow
//MemFunctions.MemWriteInt(pr_processHandle, followAction + 0x48, 0); //Set stopped following = 0
MemFunctions.MemWriteInt(pr_processHandle, actionStruct + 0xC, followAction); //Set new action at position 1
MemFunctions.MemWriteInt(pr_processHandle, actionStruct + 0x18, 1); //Set next action position to 1
MemFunctions.MemWriteInt(pr_processHandle, actionStruct + 0x14, followAction); //Set new action type follow as next action
}
Interaction struct (regular attack, pickup item, initiate dialogue with npc, use skill or harvest resource):
Code:
private void interactWith(int objectId, int interactionType, int skillPointer)
{
int actionStruct = values.actionStructPointer;
int actionList = MemFunctions.MemReadInt(pr_processHandle, actionStruct + 0x30);
int interactWithAction = MemFunctions.MemReadInt(pr_processHandle, actionList + 0x8);
MemFunctions.MemWriteInt(pr_processHandle, interactWithAction + 0x8, 0); //action finished = 0
MemFunctions.MemWriteInt(pr_processHandle, interactWithAction + 0x14, 1); //Action start = 1
MemFunctions.MemWriteInt(pr_processHandle, interactWithAction + 0x24, 0); // Action not start = 0
MemFunctions.MemWriteInt(pr_processHandle, interactWithAction + 0x20, objectId); // Set object id to interact with
MemFunctions.MemWriteInt(pr_processHandle, interactWithAction + 0x38, interactionType); // Set the type of interaction, 0 = regAtk, 1 = pick item, 2 = talk to NPC,3 = useSkill, 4 = gatherResources
MemFunctions.MemWriteInt(pr_processHandle, interactWithAction + 0x34, 0); // Set error = 0
MemFunctions.MemWriteInt(pr_processHandle, interactWithAction + 0x50, skillPointer); // Set skillPointer
MemFunctions.MemWriteInt(pr_processHandle, actionStruct + 0xC, interactWithAction); // Set new actionType
MemFunctions.MemWriteInt(pr_processHandle, actionStruct + 0x18, 1); // Set next action position to 1
MemFunctions.MemWriteInt(pr_processHandle, actionStruct + 0x14, interactWithAction); // Set new actionType
}
Move struct:
Code:
public void moveTo(float X, float Y, float Z, float height)
{
int actionStruct = values.actionStructPointer;
int actionList = MemFunctions.MemReadInt(pr_processHandle, actionStruct + 0x30);
int moveAction = MemFunctions.MemReadInt(pr_processHandle, actionList + 0x4);
MemFunctions.MemWriteInt(pr_processHandle, moveAction + 0x8, 0); //action finished = 0
MemFunctions.MemWriteInt(pr_processHandle, moveAction + 0x14, 1); //Action start = 1
MemFunctions.MemWriteFloat(pr_processHandle, moveAction + 0x20, X); // Set X coord
MemFunctions.MemWriteFloat(pr_processHandle, moveAction + 0x24, Y); // Set Y coord
MemFunctions.MemWriteFloat(pr_processHandle, moveAction + 0x28, Z); // Set Z coord
MemFunctions.MemWriteFloat(pr_processHandle, moveAction + 0x68, height); // Set height
if (height >= 0.0)
{
MemFunctions.MemWriteInt(pr_processHandle, moveAction + 0x64, 26625); //Set 1st var for flying up
MemFunctions.MemWriteInt(pr_processHandle, moveAction + 0x6C, 256); // Set 2nd var for flying up
}
else
{
MemFunctions.MemWriteInt(pr_processHandle, moveAction + 0x64, 26624); //Set 1st var for not flying up
MemFunctions.MemWriteInt(pr_processHandle, moveAction + 0x6C, 65536); // Set 2nd var for not flying up
}
MemFunctions.MemWriteInt(pr_processHandle, moveAction + 0x2C, 0); // Set moveType
MemFunctions.MemWriteInt(pr_processHandle, actionStruct + 0xC, moveAction); // Set new moveAction
MemFunctions.MemWriteInt(pr_processHandle, actionStruct + 0x18, 1); // Set next action position to 1
MemFunctions.MemWriteInt(pr_processHandle, actionStruct + 0x14, moveAction); // Set new moveAction
}
|
Im trying to useskill with the code on my bot, I have to convert it into vb language and this is my code.
Code:
Dim skillListPointer() As Integer = {&H00B9029C, &H34, &H1154}
Dim skillListAddress As Integer = MemoryReadWrite.GetAddressFromPointer(skillListPointer)
Dim SkillPointer As Integer = 0
Dim SkillId As Integer = 0
For i As Integer = 0 To 100
SkillPointer = MemoryReadWrite.GetAddressFromPointer(skillListAddress + i*&H4)
SkillId = MemoryReadWrite.GetAddressFromPointer(SkillPointer + &H8)
If SkillId = 441 Then '441 (skill id of ○Pyrogram, a MG skill)'
interactWith(MonsterId, 3, SkillPointer)
Exit For
End If
Next
interactWith sub
Code:
Public Sub interactWith(objectId As Integer, interactionType As Integer, skillPointer As Integer)
Dim actionPointer() As Integer = {&HB9029C, &H34, &H1128}
Dim actionStruct As Integer = MemoryReadWrite.GetAddressFromPointer(hProcess, actionPointer)
Dim actionList As Integer = MemoryReadWrite.ReadInteger(hProcess, actionStruct + &H30)
Dim interactWithAction As Integer = MemoryReadWrite.ReadInteger(hProcess, actionList + &H8)
MemoryReadWrite.WriteInteger(hProcess, interactWithAction + &H8, 0) ' action finished = 0'
MemoryReadWrite.WriteInteger(hProcess, interactWithAction + &H14, 1) ' Action start = 1'
MemoryReadWrite.WriteInteger(hProcess, interactWithAction + &H24, 0) ' Action not start = 0'
MemoryReadWrite.WriteInteger(hProcess, interactWithAction + &H20, objectId) ' Set object id to interact with'
MemoryReadWrite.WriteInteger(hProcess, interactWithAction + &H38, interactionType) ' Set the type of interaction, 0 = regAtk, 1 = pick item, 2 = talk to NPC,3 = useSkill, 4 = gatherResources'
MemoryReadWrite.WriteInteger(hProcess, interactWithAction + &H34, 0) ' Set error = 0'
MemoryReadWrite.WriteInteger(hProcess, interactWithAction + &H50, skillPointer) ' Set skillPointer'
MemoryReadWrite.WriteInteger(hProcess, actionStruct + &HC, interactWithAction) ' Set new actionType'
MemoryReadWrite.WriteInteger(hProcess, actionStruct + &H18, 1) ' Set next action position to 1'
MemoryReadWrite.WriteInteger(hProcess, actionStruct + &H14, interactWithAction) ' Set new actionType'
End Sub
I've tried it in PW-ID and just got a report bug 
anybody can explain it?
|
|
|
11/24/2013, 06:34
|
#375
|
elite*gold: 0
Join Date: Oct 2008
Posts: 1,243
Received Thanks: 670
|
Quote:
Originally Posted by Interest07
I use MHS to set a breakpoint at the sendPacketFunction (0x659450 in PWI atm) to run this script:
Code:
void On_BP_1(LPVOID lpvAddress, LPPROC_INFO_MHS lpProcInfo)
{
DWORD pktSize_ptr = lpProcInfo->pcContext->Esp+8;
DWORD pktSize = 0;
ReadProcessMemory(lpProcInfo->hProcess, (void *)pktSize_ptr, &pktSize, 4, NULL);
DWORD pkt_ptr_ptr = lpProcInfo->pcContext->Esp+4;
DWORD pkt_ptr = 0;
BYTE bp_newpacket[255] = {0};
char bp_packet[1024] = {0};
ReadProcessMemory(lpProcInfo->hProcess, (void *)pkt_ptr_ptr, &pkt_ptr, 4, NULL);
ReadProcessMemory(lpProcInfo->hProcess, (void *)pkt_ptr, &bp_newpacket, pktSize, NULL);
for (int i = 0; i < pktSize; i++){
SPrintF(&bp_packet[i*3], "%02X ", bp_newpacket[i]);
}
DWORD callingFunctionAddress = 0;
DWORD callingfunctionAddress_ptr = lpProcInfo->pcContext->Esp;
ReadProcessMemory(lpProcInfo->hProcess, (void *)callingfunctionAddress_ptr, &callingFunctionAddress, 4, NULL);
PrintF("[%08X] Packet: %s",callingFunctionAddress, bp_packet);
}
|
Hi Interest07,
I had opened process elementclient.exe in mhs, open disassambler in it, then went to sendpacketaddress (0x6F55E0 for indo) , opened script editor, saved it to On_BP_1.lss (it's On_BP_1 , one, right ?) in mhs folder, but nothing happened.
when should I start seeing packets coming ? or maybe I missed something    , also, the add breakpoint menu setting only has script function and parm, there is no setting to point it to the script file, how mhs knows where to run the script.
here is the screenshot, please check what's missing to be done
|
|
|
 |
|
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 05:20.
|
|