PWI - Guide for finding chat message offsets - C# code included
Discussion on PWI - Guide for finding chat message offsets - C# code included within the PW Hacks, Bots, Cheats, Exploits forum part of the Perfect World category.
dumbfck: you won the wet tshirt contest
very nice, see chat message from time you dont where ingame.
thx for the info to the ah refresh.
so i better check for changed 1 item id in list, before i read next page out.
what tools from me do u exactly mean ?
so i can send some sources, if its not virus releated
maybe i found the time to finish my personal hp with the stuff i release public.
at the moment no free time, much work and i went to another city next month.
so not sending packets ingame, fill packets in reallife with my stuff
from what i read...u sound like some one who long time code and reverse.
im allways happy to read from you
Interest07:
hmmm for me it takes some hours to make the grafical stuff, butt sometime days to code my stuff for pwi.
theres a lot new and i never worked on how to get offsets.
so this time, i can only code...for what i found offsets.
the packet sending struct in autoit makes me problems at this time.
your sample is in c# and i try to convert it to autoit.
but i know not enough about this for the moment, so i think i send mouseclick on page refresh ingame meanwhile *erm*
i not answer here the rest of ur posting.
the reason is: ich spreche besser deutsch als englisch
so i pm u.
meanwhile some look on my ah listener in flash.
very easy to insert flash as autoit gui and it looks much better.
some nice style, mouse over and i realy like the iphone styled countdown i code yesterday
take me 2-3 hours to make the gfx in photoshop and code the function in actionscript.
the red agent, is the mouse over.
the item description background moves from top to bottom on page reload and some stuff u wont see on a screenshot.
at the moment im on the filters functions...so what u see is not all finished.
as u, i code most stuff for me....but i like the cool looking and feel prolly when i use my tools
what tools from me do u exactly mean ?
so i can send some sources, if its not virus releated
Well, I'm not sure how useful they'd be to me, as I can normally manage to find mp3s and stuff, but they just sound like some nice little gadgets =]
Wish I knew how to fix viruses though lol - That's pretty impressive.
Quote:
Originally Posted by omarranimado
from what i read...u sound like some one who long time code and reverse.
Well, I'm not a master at any of it lol. Just done a little bit of a lot of programming languages hehe. All started with embedded ASM / C programming (i.e., microcontrollers etc).
As for reversing - I've only really discovered it in the last 5-6 months. I have a LOT to learn before I can call myself a reverser / hacker, but I'm finding it really interesting at the moment and getting some great tips and ideas from this forum.
Quote:
Originally Posted by omarranimado
the packet sending struct in autoit makes me problems at this time.
your sample is in c# and i try to convert it to autoit.
I figure it's time I start looking at AutoIt lol... So here's the AutoIt equivalent, in the format used in
Seems that the _hex function reverses the bytes, so if your ID was 0x00123456, you'd need to call the function like this:
Code:
refreshAhPage($pid, 0x56341200)
I was too lazy to dig any deeper, or read the playerId from the client memory ^_^
Your flash AH stuff is looking awesome by the way. You're really working fast on it hehe.
@Interest07 - Holy shit, you built that list yourself? What offsets are those values found in relation to the item object / structures? I can't find anything in the elements.data file that seems to correlate with your values there. I'm wondering if there might be something near those values though.
@Smurfin - Not sure if I have many other tricks up my sleeve now hehe. If I find any, I'll probably gradually post them here.
And as for that sELedit program, I can take no credit for that. That's from
Download the pwTools SVN-Downloader.zip file from that page, unzip it and run the pwtools-binaries.bat file - It will automatically download everything from the SVN =]
There are a lot of cool looking tools in there. They spark a lot of ideas ^^
I assume you know the offsets to get to items, then within items it is +0x90 for socket list (not that important, 0x94 for nr of sockets) and 0xA4 for addon list (0xA8 for nr of addons)
then in that list
Code:
newItemMod.modId = MemFunctions.MemReadInt(pr_processHandle, values.addOnList + i * 0x1C);
newItemMod.modValue = MemFunctions.MemReadInt(pr_processHandle, values.addOnList + i * 0x1C + 0xC);
I'm not quite sure why those values aren't matching the ones you can find in the seledit program (I've tried it as well). But these are working for me. So yeah it goes wrong occasionally cos it's reading the item description and it takes some trouble to figure out which id corresponds to which line of text (automatically ofc, if i were to manually look for it, it would be easy but time consuming)
I'm considering just changing the addonId in memory and keep reading the description for the changed line. But I'm thinking it would kinda depend on which item type you are using whether you get an actual valid description. If not you get Unknown (value)
I don't get the last 2 lines of the packet "00-00-00-01-14". I get different numbers here, but I don't have a clue what they are. A few examples are "00-43-4A-A4-30" or "00-4D-AA-AC-70". They look like random numbers to me. Anyone has a clue what this is?
Quote:
Originally Posted by dumbfck
I was too lazy to dig any deeper, or read the playerId from the client memory ^_^
The PlayerId can be found as follows: [[[[baseCall] + 0x1C] + 0x34] + 0x46C]
Some of the stuff near the end of the packet string is to do with the current item offset / filters etc, as far as I can tell. refer to my original C# post - I forgot to add the comment in my AutoIt example.
I didn't investigate the filters much further, but I think the very last two bytes on the line commented // start item offset are the current item offset... I.e., there are 16 items per page, so an offset of 0x10 would be page 2. You'd only need this if you're planning to read through a bunch of pages. If you just want to stay on the first page, set this to 0. If you want to refresh the current page you're on, I posted an offset to extract the current AH page a few pages back in this thread.
Have you tried sending with this value as 0? When I tested it earlier, it seemed to work ok for refreshing the first page.
Interest07 - Thanks for the offsets =]
Well.... I dunno if it's just coincidence, but the first two items I checked seem to have values that correlate to sELedit!
Example:
From the item base, +0x1C we can see the value 0x4E1 = 1249 decimal
If we look at property ID 1249 in sELedit, I think the first int32 after the wstring means the number of possible values that this addon can have. This is perhaps a bad example lol, as both options are 118 - However, that 118 correlates to the value at itemBase + (1*0x1C) + 0xC
(0x76 = 118) which matches the +118 Phys. Res. on the item.
Then at itemBase + (2*0x1C) + 0xC we can see
0x45D = 1117 decimal. Take a look in sELedit and this is item property A_H004, with two possible values: 6 or 7. Look just below the 0x45D value in CE and we can see mine has a value of 7, which correlates to the Magic+7 addon of the weap =]
The 6-7 correspond to the item's possible Magic addon outcomes when manufacturing.
I tested on a piece of armour too and got the same results. They all had hits in sELedit.
I need to test some more, but if this is consistent, all we need to do is find out how to automagically convert A_DEF5 to "Phys. Res. +" etc.
Unfortunately, with sELedit, the guy who made it has only released config files for PWI and CN versions. I don't know if he has some magical way of getting the file structures, but as far as I can tell, (at some point at least) it was all done manually and he's had to figure out what all the lists correspond to. That's pretty painstaking, having taken a look at the file structure myself.
I found that list 69 is recipes for items =]... I should prolly tell him so he can update his configs hehe.
Yes, it works with that packet. But I am scared that PWI will find out by checking the packets that they receive. All these packets contain the same "error". My character will be banned like that, so I prefer to send correct packets.
Just did some more testing - Seems the filter values are the bytes directly after the playerID. As for the last:
0x00, 0x00, 0x00, 0x00
0x00, 0x00, 0x00, 0x00 <-- Item offset
0x00, 0x00, 0x00, 0x01
0x14
I can't seem to do anything to get different values in there, except for the item offset. Refreshing page 0 always yeilds 0x00s for those bytes for me. Kinda makes me wonder where and how you're seeing these values?
The way I check... Set a breakpoint in Olly at the first instruction inside the sendPackets function (address 0x64FB50 in PWI v510)
Then click the refresh page, or next / previous page buttons in AH. When Olly breaks, right click the second value in the stack -> show in dump.
This will show the packet string that is being sent. The third value in the stack is the byte count for the packet.
Hi guys,
Could you please post a guide for extract the item data form the Data files?
I am stuck when finding the real name of an item in inventory but I got the rendered text whenever your mouse is hover this item...
Well, I'm not sure how useful they'd be to me, as I can normally manage to find mp3s and stuff, but they just sound like some nice little gadgets =]
Wish I knew how to fix viruses though lol - That's pretty impressive.
virus studie are much impressive.
they way some god work is not so impressed as the work will be.
everytime it used the lazyness of the user.
here some example:
hide ur tool from user views....hows that going ?
just easy...set ur tool between user gui and system.
if user use stuff like windows file search, taskmanager: the gui send a comand to system: gui -> system
now our tool is between: gui-> tool -> system
got from gui the comand to search for xyz.
he check if in the search is maybe the filename of virus.
if so...he wait for system result: system -> tool XXX Gui
now virus delete from search result his own name, send the result now back to user gui: tool -> Gui
user see "patched" result: no virusname found
u can use this way for a lot, like registry, files...
think about it.
more hard work is, hide functions from antivirus soft..like injection.
Quote:
Originally Posted by dumbfck
Well, I'm not a master at any of it lol. Just done a little bit of a lot of programming languages hehe. All started with embedded ASM / C programming (i.e., microcontrollers etc).
As for reversing - I've only really discovered it in the last 5-6 months. I have a LOT to learn before I can call myself a reverser / hacker, but I'm finding it really interesting at the moment and getting some great tips and ideas from this forum.
yeah reversing is fun.
its hard work and from the beginnings...wen u only change a byte to patch registration process...to today, some interesting ways and impressions.
im also no real man for that, just learn on every problem.
in my last case, i need to convert some tousend sound samples from ejay music maker.
there hardcoded in a pack file.
so first find out how they stored, next code a tool to extract them.
then found out files are in a ejay sound format: pxd
so reversing the dll again to find out what functions for that inside.
next find out how the function is called and then code a tool to convert pxd sample to mp3 sample.
was fun and sometime i got crazy
Quote:
Originally Posted by dumbfck
I figure it's time I start looking at AutoIt lol... So here's the AutoIt equivalent, in the format used in
Seems that the _hex function reverses the bytes, so if your ID was 0x00123456, you'd need to call the function like this:
Code:
refreshAhPage($pid, 0x56341200)
I was too lazy to dig any deeper, or read the playerId from the client memory ^_^
thanks for this!
i give it a try wen i went to new city.
i wonder why in interests c# sample are so much stuff like: 0x25, 0x00, 0x1A, 0x00
and how to convert this to autoit, like u did: $packet = '25001A00'
that was my problem, i start like this:
$packet = '25'
$packet = '00'
$packet = '1A'
at the moment i use client unfreeze, send mouseclick to refresh button.
but im interested to understand how the packet stuff goes, seams lot more what can be done with this and interests me
Quote:
Originally Posted by dumbfck
Your flash AH stuff is looking awesome by the way. You're really working fast on it hehe.
thanks for that
but i have no time now and it goes so slooooow at the moment
only 7 days left and then i move to another city...then time without internet comes to me.
but someday....i rule the world *erm* finish my tool
btw: this board is realy nice.
1 of 3 places were much discussion about pw, maybe more..but cant read chinese
Yep and as for the part in <a><b><c>
a - unknown - always seems to be 3
b - Message type - Same as the message type value in the message struct.
c - Unknown - Always seems to be 0
omarranimado - Awesome, thanks for the dumbfck edition of the MP3 program, that's really cool ^_^
Unfortunately, I couldn't get it to work on XP. I'm guessing it was built for Win7 / Vista?
It threw the error "Cant initiate Bass.dll"
I traced it back a little bit - Bass.dll needed wer.dll and ieshims.dll - So I tried to install those. But, they required ncrypt.dll - Which in turn required bcrypt.dll.
On trying to register bcrypt.dll, I got a different error, and dependency walker said
"Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module."
At this point, I gave up lol.
Looks like a lot of that stuff is included in IE8 on Win7 and Vista, but unfortunately not on XP.
If I get my second box up and running again (Win7) I'll give it another try. But thanks again anyway =]
Interest07 - D'oh! Thought it seemed to good to be true
Guess I got lucky with those two items. Definitely gonna take a deeper look at this sometime though.
*Edit:
Quote:
Originally Posted by SunB
Hi guys,
Could you please post a guide for extract the item data form the Data files?
I am stuck when finding the real name of an item in inventory but I got the rendered text whenever your mouse is hover this item...
We're still working on this - hopefully we'll have a solution soon =]
u mean like ^FFE400 ?
thats #FFE400 in html style like <font color="#FFE400">Text</font>
this color, worldchat
rest is postet id, smiley...
take a look in first post spoilers:
^^its not founded from me, i just used the offsets
just a tipp, ppl counter is like:
I missed the string separation from dmbfck's code then, only the chat type, I hope autoit can handle multiple colors in GUICtrlCreateListView box, because it can't display multiple colors in an editbox all colors in there will use the last color setting, it'll look ugly and doesn't match the chat type color.
tks for the info, I'll double check my script later whether it has the correct format for the offsets or not, if all else fails then probably the offsets are different because pw indo is still in older version or it's just me
Quote:
Originally Posted by dumbfck
Yep and as for the part in <a><b><c>
a - unknown - always seems to be 3
b - Message type - Same as the message type value in the message struct.
c - Unknown - Always seems to be 0
owh ok, so far only have seen the 'a' , should run the chatlog longer and see what type it is in the game if it ever appears here. Could be a horn or something else.
omarranimado - Awesome, thanks for the dumbfck edition of the MP3 program, that's really cool ^_^
Unfortunately, I couldn't get it to work on XP. I'm guessing it was built for Win7 / Vista?
It threw the error "Cant initiate Bass.dll"
I traced it back a little bit - Bass.dll needed wer.dll and ieshims.dll - So I tried to install those. But, they required ncrypt.dll - Which in turn required bcrypt.dll.
On trying to register bcrypt.dll, I got a different error, and dependency walker said
"Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module."
At this point, I gave up lol.
hm weierd, its not a system dll.
just a dll to work with streaming audio.
Quote:
BASS is an audio library for use in Windows and Mac OSX software. Its purpose is to provide developers with powerful and efficient sample, stream (MP3, MP2, MP1, OGG, WAV, AIFF, custom generated, and more via add-ons), MOD music (XM, IT, S3M, MOD, MTM, UMX), MO3 music (MP3/OGG compressed MODs), and recording functions. All in a tiny DLL, under 100KB* in size.
On Windows, BASS requires DirectX 3 or above for output, and takes advantage of DirectSound and DirectSound3D hardware accelerated drivers, when available. On OSX, BASS uses CoreAudio for output, and OSX 10.3 or above is recommended. Both PowerPC and Intel Macs are supported.
in source u see:
Quote:
;################################################# #############################
; function: load bass.dll
;################################################# #############################
_Bass_startup(@ScriptDir & "\daten\bass.dll")
If @error Then
MsgBox(0, "Fehler", "bass.dll not found!")
Exit
EndIf
;Initalize bass. Required for most functions.
_BASS_Init (0, -1, 44100, 0, "")
;Check if bass iniated. If not, we cannot continue.
If @error Then
MsgBox(0, "Fehler", "Cant initiate Bass.dll!")
Exit
EndIf
your the first who cant run it
hmmm...im shure u have directx
u can tell me more ?
Quote:
Originally Posted by Smurfin
I missed the string separation from dmbfck's code then, only the chat type, I hope autoit can handle multiple colors in GUICtrlCreateListView box, because it can't display multiple colors in an editbox all colors in there will use the last color setting, it'll look ugly and doesn't match the chat type color.
yep, autoit can make colored listview colums.
heres a sample for that:
guide: debug pwi, find function addresses and offsets, write a bot(c++ code included) 09/04/2022 - PW Hacks, Bots, Cheats, Exploits - 123 Replies hi,
let's start right away.
what you can learn:
- trace and call ingame-functions like attack, cast spell, pick up, moveto, ...
- traverse object lists like items, mobs, players
- read ingame structures (class objects) and how they play together
- write your own fully client-side bot that doesnt need to simulate mouse/keyboard input and doesnt need to read pixels
Finding offsets? 12/04/2009 - CO2 Programming - 2 Replies Btw trying to make an aimbot :P just throwing that out there
EDIT: This is what iv'e found so far,am I on the right track? this is for a v5165 private server that I own,When I was jumping around on one of my chars,around another character of mine that had the proccess on her client,these are the addresses that came up,eventually I got down to the last x and last y address,and every jump they were right,but the question is am I doing this right
Heres what I found:
01175390 - proper x...
problem-finding and updating CE Offsets 11/03/2009 - Dekaron - 2 Replies Hey guys,
Ive checked the 2moons exploit hacks and stuff and i used the tutorial how to find and update the offsets using Cheat engine by using Array of bytes and the Value of the hack..and i get a new address.so far so good.
Now the problem is when i open Cheat engine(the updates file which i got the scripts of the hacks in,Just need to update offsets) and i do edit Script.once i change the Adress i try to save but the file is being saved as a CEA file,and i don't know how to open it.
The...
mr argus, finding offsets. 02/14/2008 - Final Fantasy XI - 0 Replies Well, I have been reading the tutorial on how to find them, and all was going well, until i ran into a snag. After following the instructions about 30 times over and over again, and banging my head into my desk a couple times, I decided I needed help from people who already know how to find them. I have searched all around and cant find any other tutorials except for the single one on how to find ownposition. Is there any chance someone could make a video tutorial on how to get all the offsets?...
Finding Memory Offsets in WoW? 07/12/2007 - World of Warcraft - 3 Replies Hey people,
i make bots, and so far i had some guy finding the offsets for me. how to do? do u know?