Register for your free account! | Forgot your password?

Go Back   elitepvpers MMORPGs Perfect World PW Hacks, Bots, Cheats, Exploits
You last visited: Today at 18:42

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

Advertisement



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.

Reply
 
Old   #136
 
elite*gold: 0
Join Date: Jun 2010
Posts: 12
Received Thanks: 7
Quote:
Originally Posted by dumbfck View Post
I'll add some finishing touches and update the first post a bit later today... well the first post in the other thread
Nice to see someone new here with the enthusiasm to really get stuck in and figure this stuff out ^_^
Oh yeah, lol. Wrong thread... I think I was almost cross-eyed by the time I came here to update the thread. And thanks, this stuff is fun.

Quote:
Originally Posted by dumbfck View Post
One thing I never got around to checking last time because I wasn't familiar with the technique... I'm hoping that this call can be somehow derived from one of the function pointers in the chatbox's vTable (not sure if that's even the correct term, but that's what I'm gonna call it lol) in a similar way that the setChatText is. E.g., the setChatText() address can simply be found at [[[chatBoxBase]+0]+0x44]
I don't think the sendChat() function is directly referenced in that table, but I suspect that there's something else there that calls it
Pretty likely, I agree. I think elementclient was written in C++ because I see a lot of references in their code to std::string (the "string" class from C++ Standard Template Library). That being the case, it makes sense that the chat box would have a vtable; it's probably a class. I never thought about looking for method pointers like that before (I'm a complete nab at reverse-engineering stuff lol) so that's an awesome tip. I can't wait to get home tonight and see what else is lurking there.

Quote:
Originally Posted by dumbfck View Post
Been finding lots of cool stuff in the client ever since I found out about those tables hehe.
Awesome. Major props for finding the objects and vtables in the first place!
Shopko is offline  
Old   #137
 
elite*gold: 10
Join Date: Sep 2010
Posts: 400
Received Thanks: 234
dumbfck is offline  
Thanks
1 User
Old   #138
 
elite*gold: 0
Join Date: May 2010
Posts: 220
Received Thanks: 204
wow such a lot info in the last days, time to update the treasure map thread
will do it tomorrow, thanks to you all !
amineurin is offline  
Old   #139
 
elite*gold: 0
Join Date: Feb 2012
Posts: 18
Received Thanks: 0
dumbfck, how u find this offsets? can u give some manual pls
Quote:
Originally Posted by dumbfck View Post
[[[[[[[[[BASE_CALL]+1C]+18]+8]+2BC]+208]+150]+ i*5D0 + B0]+0]
AHTOLLlKA is offline  
Old   #140
 
elite*gold: 10
Join Date: Sep 2010
Posts: 400
Received Thanks: 234
Quote:
Originally Posted by AHTOLLlKA View Post
dumbfck, how u find this offsets? can u give some manual pls
I won't go into great detail because:
A) Most of the GUI stuff has been covered in a few of my other threads
B) There's some instruction on finding these offsets in this very thread (albeit some background info is required for those)
C) They're a bastard to find from scratch
D) It's late and I'm drunk :P

However,
I think I've documented elsewhere on these forums that the main GUI/Dialogue object list (i.e., windows) is located at:
[[[[[baseCall]+0x1C]+0x18]+0x08]+0xC4]
So, that will give you an ordered list of all available dialogues. This is a bit better than my old method which uses an unordered list of windows located at GuiBase1 as documented in my thread.

I've also documentred somewhere on here that there are two incredibly useful offsets for GUI related stuff at:
[[[[[baseCall]+0x1C]+0x18]+0x8]+0x244]
and
[[[[[baseCall]+0x1C]+0x18]+0x8]+0x248]
Load these up in CE and when you hover over a dialogue object (window) in game, they will show you the window you're hovering over (the 0x244 one) and the inner object of that window that you're hovering over (the 0x248 one).
These offsets have not changed in as many updates as I can remember!

So, armed with this information, load up those two offset lists in CE, go to an auction house and open the auction window.
Hover your mouse somewhere in the auction listings window and look at the value shown in CE for the 0x244 offset (the hoverOuterObject, or window offset)
Make a note of this address!
At this point, when I'm just adjusting an offset chain I've already found before, I like to use .
The screenshot shows stuff in memory at:
[[[[[baseCall]+0x1C]+0x18]+0x08]+0xC4]



As you can see, it's an uninterrupted list. It's a list of window base addresses.
I know from my , that the gold listings were at:
[[[[[[[[baseCall]+0x1C]+0x18]+0x8]+0x3C0]+0x208]+0x168] + i*0x800] + 0x0]
So I know the rough area to start looking.
Now when we look in ReClass, we just scroll down a bit from 0x3C0 until we find the offset for the gold listings window which we made a note of a minute ago.



It's now at 0x40C
So, the new method has an extra offset in the middle of the chain (0xC4) so our new offset chain for the AH gold listing window is at:
[[[[[baseCall]+0x1C]+0x18]+0x8]+0xC4]+0x40C]
Fortunately, after that, the rest of the chain is the same as before!
So, we now have:
[[[[[[[[baseCall]+0x1C]+0x18]+0x8]+0xC4]+0x40C]+0x208]+0x168] + i*0x800] + 0x0]
Which is the address for the tab-delimited text description of each line in the AH gold listings.

We can now apply the same methodology to find all the other AH stuff.


Item AH page, tab delimited string for each item:
[[[[[[[[baseCall]+0x1C]+0x18]+0x8]+0xC4]+0x3D8]+0x208]+0x168] + i*0x800] + 0x0]

Item AH page, item IDs:
[[[[[[[[baseCall]+0x1C]+0x18]+0x8]+0xC4]+0x3D8]+0x208]+0x168] + i*0x800 + 0xB0]

Gold listings page, Sell list, tab delimited string for each item:
[[[[[[[[baseCall]+0x1C]+0x18]+0x8]+0xC4]+0x40C]+0x208]+0x168] + i*0x800] + 0x0]

Gold listings page, Buy list, tab delimited string for each item:
[[[[[[[[baseCall]+0x1C]+0x18]+0x8]+0xC4]+0x40C]+0x20C]+0x168] + i*0x800] + 0x0]


So much for not going into detail lol :P
dumbfck is offline  
Thanks
1 User
Old   #141
 
elite*gold: 0
Join Date: Feb 2012
Posts: 18
Received Thanks: 0
dumbfck, dude, thx!
i think my server have another offsets and i try to find it.
adress of window is 00A3D414 right ?


but i cant find it in [[[[baseCall]+0x1C]+0x18]+0x8]
what i do wrong ?
AHTOLLlKA is offline  
Old   #142
 
elite*gold: 10
Join Date: Sep 2010
Posts: 400
Received Thanks: 234
Hrm... your reclass window looks a bit different to mine - The notation seems different lol.
It's not A3D414 though, it's the value just before that. I think it's the N39ED2480 value, so drop the N. However, 39ED2480 just "seems" a rather high number. That's not to say it's necessarily wrong though.
I find it easier to use the hover offsets in CE. It's a bit clearer to read in there!

I was going to ask if you've used ReClass before and if you've set up your base address properly, but, from the screenshot, the inner hover object seems to be correctly indicating a Lst_Item gui object.
dumbfck is offline  
Old   #143
 
elite*gold: 0
Join Date: Feb 2012
Posts: 18
Received Thanks: 0
BA is correct, but anyway cant find 39ED2480 in [[[[baseCall]+0x1C]+0x18]+0x8]
in CE i get 4bytes -160715704
AHTOLLlKA is offline  
Old   #144
 
elite*gold: 10
Join Date: Sep 2010
Posts: 400
Received Thanks: 234
If you convert that to hex, that's 0x99453B8 which looks much more likely to be correct!
dumbfck is offline  
Thanks
1 User
Old   #145
 
elite*gold: 0
Join Date: Feb 2012
Posts: 18
Received Thanks: 0
Quote:
Originally Posted by dumbfck View Post
If you convert that to hex, that's 0x99453B8 which looks much more likely to be correct!
yep) its work, now i find list!
now i get
[[[[[[[[baseCall]+0x1C]+0x18]+0x8]+0x3C0]+0x208]+0x??] + i*0x???] + 0x0]
how find next offset? ur offset is 0x168, and i try many offsets after x208 but they wrong((





UPD
wow i find all what i need o_O
thx dumbfck!

i try send packet to refresh AH list ... done
but i can get any information only when click at this list (set focus at listbox)
how i can get data without focus ??
AHTOLLlKA is offline  
Old   #146
 
elite*gold: 10
Join Date: Sep 2010
Posts: 400
Received Thanks: 234
Do you mean the detailed item description, i.e., the popup box with information that you see when you hover over an item?
I can't remember if that information is already there or if it has to be fetched by injecting a function to update the description (this is how it works for items in inventory / shops / etc).
It's been a long time since I really played with all this stuff and It's a bit late at night for me to be delving into that now lol.
If there's something in the list that links directly to an item object, then most likely the update description function will be at:
[[[itemBase]+0]+0x40]
Once that's called, the actual item description would probably be at:
[[[itemBase]+0x40]

But again, this is just a guess lol, as that's how it works elsewhere in game.
dumbfck is offline  
Old   #147
 
elite*gold: 0
Join Date: Nov 2012
Posts: 96
Received Thanks: 81
If you mean the Item Text of a Auction Hall Item, then a very wise Men showed me this Way for the PWI Descent Days:

The Full Line of Auction like Name, Price, Time...
Quote:
ItemString = baseCall+0x1C+0x18+0x8+0x2D8+0x208+0x168+ I*0x800 + 0x00+0x0, wchar[CharMax]
Description if you Hover Mouse over a Auction Hall Item:
Quote:
ItemText = baseCall+0x1C+0x18+0x8+0x2D8+0x208+0x168+ I*0x800 + 0x5C+0x0, wchar[CharMax]
Murmuring is offline  
Thanks
1 User
Old   #148
 
elite*gold: 0
Join Date: Feb 2012
Posts: 18
Received Thanks: 0
no, when i press REFRESH button in AH window i dont get any information


but when i click at any line in listbox i get information


UPD
my bad(( find wrong offsets, now its ok
but structure is different((

800 dont have adress
AHTOLLlKA is offline  
Old   #149
 
elite*gold: 10
Join Date: Sep 2010
Posts: 400
Received Thanks: 234
Bear in mind that after hitting the refresh button or sending a refresh packet, it takes a finite amount of time for the server to return the information to your client, then for the client to process that information and load it into the list and display it on your screen.
I think the way I used to check for the wait time was to keep checking if the ID of the last line (line 15, if starting at 0) had been loaded yet and was different from the last time I refreshed the page (because if you've already loaded the page before, that last line will already contain something. However, you probably don't want to bother re-reading the information if there is nothing new, so checking the auction ID number of the last line is a pretty good method).
You might run into trouble though when you reach the last page, or if you've applied filters, thus meaning there may be less than 16 items displayed!
I expect there's probably a variable somewhere though that contains the count for how many items are listed on the page. Either that or there might be a default value in one of the fields that means the row is empty. After all, the client itself needs to keep track of how many items are in the list for various purposes.

For very basic testing purposes though, just put a 1-2 second delay after sending the refresh packet before reading the list.

Or perhaps I've completely misinterpreted your question? :P
dumbfck is offline  
Thanks
1 User
Old   #150
 
elite*gold: 0
Join Date: Feb 2012
Posts: 18
Received Thanks: 0
yeah)) i know that ^^
i mean, i think i have wrong structure here >
AHTOLLlKA is offline  
Reply


Similar Threads Similar Threads
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?



All times are GMT +2. The time now is 18:42.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

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