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.
do you know how to make an autofinder for base_something ?
Yeah I reckon I could make a regex for this. The code in that area doesn't appear to have changed through the last few big updates =] Later, though. Off to a BBQ tonight ^^
@PW-Prophets - I'm glad you found it useful and I'd be honoured if you use my findings in your bot =], you're doing a great job on it!
A little puzzled by this though:
Code:
For $i=188 To 198
This is why the lastChat count thing is useful - To retrieve the last 10 messages, you could use something like:
(pseudocode)
Code:
for $i = lastChatOffset - 10 to lastChatOffset
If $i < 0 Then
$i = 0
...
Although you said it's only test code, so I guess you've figured this out by now ^^
And I like the idea of the sound alert, I assume on receiving a PM?
You might be interested in some code I'm working on for a PW / MSN style thingy, which does a little MSN style toaster popup thing when you receive a message =] - Will share later if interested.
Quote:
Originally Posted by Interest07
Occasionally you'll come across acatshop selling vit stone for only 2 million instead of 20 million and things like that
-Faps.-!
Quote:
Originally Posted by Interest07
Got my ah gold finder working, now just need to figure how to neatly convert my sql data into a graph on my site >.>
Personally, I'd look at jQuery for this - They have some amazing libraries for this sort of stuff now. Gimme a shout if you want any additional input on this, sounds right up my street =]
(I have a background in php / html / mysql / JS / etc )
I've also been working on a local SQL database setup using SQL compact. It doesn't require a full SQL installation as it stores everything in a portable file.
I've reverse engineered ronny1982's awesome seLEdit program from his sTools package (previously - I can't seem to find the sTools link now, which is the newer updated version of pwTools for the genesis release)
I've recoded it in C# and added everything to a SQL compact database. This would allow for much faster searching of information on items / mobs etc. I have plans for this in several of my projects =]
Quote:
Originally Posted by PW-Prophets
Not everything has to be open source and this is one thing I want to remain behind closed doors =). I hope you figure it out, but do hope you choose not to post it in open forums thanks.
Quote:
Originally Posted by omarranimado
dont see a reason why not.
i got infos from here who helped me, so i think i help others too.
thats the way open source goes...without open source, i cant learn coding easy like now.
coding is fun for me and im shure for a lot other ppl too.
but u cann tell me a reason for not publishing it.
I agree with the Prophets on this one. The Prophets have already given us a pretty awesome open souce bot for free, with a LOT of ideas and information in it, so it's not like they're leeching. They're also very active on their bot thread too, giving advice and stuff. And some things you just like to keep to yourself for a while. If you find something amazing, I believe you're entitled to enjoy it for yourself for a while before letting everyone else in on the secret.
On the other hand, if you have something awesome and don;t want to share it, it's perhaps a bit of a tease to mention you know how to do it but aren't gonna share it lol. Kinda like showing a bone to a dog then putting it in the cupboard =P
I have a few secrets up my sleeve too, but I'm mostly happy to share them with someone who inquires about it - Although only to those who show they are making their own efforts at stuff. Not just gonna give out nice code to someone who says "GIF ME BOT / DMG H4X / CODE NAO!" ^_^
Another reason people might hold back on sharing stuff is because they don't want to see it patched out in the next game update - E.g., Interest's Rayden wall hack =P
Quote:
Originally Posted by omarranimado
after playing with ur ah stuff, i just think about that i have to open shop first.
For scanning Archosaur catshops, pretty much all the info you need can be found in this forum. I believe you can send a packet for looking into a player's cat shop. Much like initiating a conversation with an NPC, the mechanism is very similar.
Quote:
Originally Posted by omarranimado
more problem actual is the ★
seams not the right one to be...i take a closer look later.
Could be one of two things here.
Firstly, install support for Eastern Asain languages - Might need your XP / Vista / Win7 disc for that, or download from microsoft.
This will allow you to display all the chinese characters that are contained in tons of strings in PW
Secondly, install the PWI font to your system. The game only uses it locally. You can find the fonts in the \fonts directory of your game installation.
You can also find them in one of the .pck files (I think config.pck?) - I'm not sure if the'yre exactly the same but I think I the names are.
I'm glad there's some interest in this thread, makes it feel worthwhile =]
I like the idea of the sound alert, I assume on receiving a PM?
You might be interested in some code I'm working on for a PW / MSN style thingy, which does a little MSN style toaster popup thing when you receive a message =] - Will share later if interested.
Yea I plan to have it alert on receiving a PM and this will be in the open source release may 1st. On that day we will release a new Pre-Release so I do not have to much time to program more into the Alert system.
Wow, everything from the .data files in an SQL database? Sounds really sweet.
Does that include item names and item mods with ids (like +hp, +xstr, etcetera) cos I'm slowly building up a database of that from having my bot look in item description every time it encounters a new one. But that's a slow process, and not all items are for sale in shops. And yeah I know I cuold rip item names from pwdatabase if I was desperate but not the addon ids .
also @ omarranimado
I've found this Open Flash Chart thingy that I'm trying to use atm, think I'll prolly manage to get it working (already managed to get it in a really badly formatted line scatter plot). It uses a combination of php and JS to stuff the data into a flash chart.
If you happen to know any real easy methods it would be appreciated of course. I've never really done anything with building sites (besides one recently to display all the catshops) so it's a nice learning curve. I'd rather not code any flash myself though, as I've decompiled some flash things before and I did not like the way it all looked. PHP is fine, as is JS I suppose. I've never seen jQuery before, I might just do a google on that
Hmph building a simple site with some interactive graphs is not as dull as I thought it would be. Gotten a bit more respect for people that make sites, always thought it was very simple lol
Flash does look pretty nice hehehe. Maybe I should give it a try sometime...
This is what my catshop 'site' currently looks like. It's not open for public though, as I hardly ever update it anymore anyway. I only run it when I'm looking for a specific item myself as it'll only make around 5-7 mil a week on average if I have it running 24/7. That is with very intermittant high value sales going for cheap. Regular stuff would only net me a few hundred k a day, with the occasional 5m+ from people typoing.
Data from a singled out catshop:
Data if you are looking for a specific item:
Very nice way to spot the token scammers as well lol
List of all catshops:
Or search by item name of course:
All very crude stuff, and not too hard to implement, just a regular MySQL database with some php fetching it. When it comes to graphs however... my first attempt so far that actually displays something
The prices are (x1000) on the y-axis. The x-axis.... well that's a unix time-stamp (in seconds). lol
@dumbfck:
thanks for the infos
the charset and font i allready have installed.
the star is shown alltime, he get lost wen i insert it to array.
so i have to replace the unicode char from string to normal char for the array.
with the unicode tab (u0009) it works fine, yesterday i see quick in the unicode charbase.
there more then one black star inside and i think, i take the wrong one
thats some cosmetic, i alltime do at last.
more fun on the functions and how to make small code with god results.
to the open source thing:
maybe im a bit to oldschool for the ppl here, i think about it.
i programm a lot tools in the last 12 years, first some delphi stuff, then went quickly to masm.
i code security tools to seek for malware and trojans.
for that i have to code those stuff too, to get understand the way they work.
i release my stuff + source, so others can learn and to make the competition agains malware/trojans bigger.
its fun to see some one hide his file completly from ur computer and u learn how easy this goes.
then find a way to make it visible and deinstall it.
but this is just a game, also i agre to the point that there are so much leechers outside.
from time to time i look in old coding boards...what do i read ?
"how can i change picture/logo in app with resource editor ?"
and stuff like this...more ripping then coding today
so i hate it, if ppl rip stuff and claim there are the big big coders.
i alltime give credits.
i code since some years most time only stuff for me, since i work hard and have little free time.
since i found autoit, i use this to save my time.
u can make such great stuff on the easy way.
like coding a ripper wo rip of my ten tousends of ejay sound samples.
reversing there dll, code a tool what rip with the dll all samples to wav/ogg.
makes fun reversing the dll, coding the tool...then it run more then 2 days ripping those tousends of samples.
now i have no use for it
or my girlfriend...evertime to lazy to search in google for a mp3 and download it.
so i code a small tool, seeking for a mp3 in mp3 search engines.
she can play/donload the result now from a nice looking gui.
for me only fun coding it, but i dont use it
so the point is...
whitout sources and help from others, i dont can do all this so easy.
so i release my stuff, to help others like they helped me.
as i see here.....only a handfull ppl release stuff and help.
the rest is leeching and maybe 4 percent are willed to learn stuff, like smurfin or me.
i will do it like this, i dont release stuff public here.
in discussion i give tips and if some one want a source or more, he can write me a pm and i take a look who is the one asking
any way...heres my masm client window renamer.
size is 5kb and source is inside.
i make him because i dont want for this simple job a 500kb thingy and all i see work like this: enter old name, enter new name.
im old man, cant type so much *lol* so my tool seek all windows, you select the one to change and enter new name
thats what i mean, small code, easy function for easy handling = great result.
Flash does look pretty nice hehehe. Maybe I should give it a try sometime...
yeah flash is nice and powerfull, heres what my ah looks now.
next will be some search buttons, a refresh timer wo send time to bot, alarm if special item/s for god price are found and lets see what i thinking of.
theres yet only 1 line, since im at the moment to stupid to get the sendpacket for page refresh in autoit to work *hrmpf*
if i not get it out, i think to make a mouseclick at button location...the lazy way.
btw. do i have wait time for refresh wen send the refresh packet ?
normal u have to wait some seconds before refresh ah page.
^^u can sort right now for items, duration, prices...copy auction id to memory, to paste ingame to ah.
maybe later if all work, send the id direct to bot...he send to ah and buy item automatic.
Quote:
Originally Posted by Interest07
Very nice way to spot the token scammers as well lol
lol yes thats it
Quote:
Originally Posted by Interest07
All very crude stuff, and not too hard to implement, just a regular MySQL database with some php fetching it. When it comes to graphs however... my first attempt so far that actually displays something
wow, from the results you can show this looks very great
from the graphic *erm* i see what u say that u not the graphics man
on the item id is a link, u link shurely to pwdatabase or ?
with php u can read out the infos from there too.
so not realy need of extracting stuff from pw game datas.
bad is, if the page sometime never exist...u had to extract it from game data
but what i see looks very nice and impression.
only the look of it make me run away
better dont use tables, u can make css container to show the stuff.
so more easy later, to make some graphic like borders, background gfx and hower stuff.
example: make a div with item id.
if mouse move over, read out stuff from pw database or ur own and show small pop up on mouse position with infos.
i work a bit the same way, first make the functions, then later plan a concept on how to show much stuff on small place graphical.
so its time saving to use all and u see much info on one place.
cant wait for the day i have such infos to handle with
for now i have only little time, so my stuff will take a while...step for step.
Quote:
Originally Posted by Interest07
The prices are (x1000) on the y-axis. The x-axis.... well that's a unix time-stamp (in seconds). lol
ah this way u mean.
this is easy to make, think about a visitor counter for a website.
they show the visited user like the same way, for weeks or months.
u can grab a ready source from the web to take a look how did it work or i can code u a small example.
would be nice to see the charts for day,week,months.
with real price, maybe time durations or amount of sell/buy gold.
like this picture:
lets say u have a gold price and amount, check later same price and amount.
if amount different u can count that as sold gold.
man, i wish i have holiday...my girlfriend makes trouble yesterday coz i code the evening and if she speak to me i say only stuff like this "hmm, hmm" or "shure, yes...erm what did u say ?"
send me a pm with the results example for the graphical lines.
the format u use to post to this graphic line u use.
i code some better looking way
Nice to see how quickly you guys are putting your AH projects together
They're all looking great already.
omarranimado - Yeah, you need a delay after sending the refresh page packet. I've set this to about 1.5 seconds in my tests. Alternatively, you could keep checking the last item in the list and wait until the pointer for the full descripton string contains a valid pointer. Before everything is populated, they're initialised with a constant value in each item. I'll have a look soon to see where to extract this value from.
By the way, some of those tools you've made sound pretty neat ^^
Oh - and in C#, if I recally correctly, you can have arrays / dictionaries of unicode strings - Or any type of encoding for that matter. That would save you from having to alter the characters for storage purposes. I'm not sure how to do this in other languages.
maniack88 - Not sure when I'll get to finish it, but I'll try to clean it up and maybe release it as it is fairly soon. I have loads of other stuff on atm, including finishing building my house ^^ So I don't really get as much time as I'd like for my programming projects hehe.
As for the graphing, stuff, you guys might find interesting =]
Then the base offset will be in Match.Groups[1] and the last chat index will be in Match.Groups[2] (or however that's written in your preferred programming language :P)
I'm off out in a minute, so no time to build up the code lol - Hopefully you'll figure it out though
yeah flash is nice and powerfull, heres what my ah looks now.
next will be some search buttons, a refresh timer wo send time to bot, alarm if special item/s for god price are found and lets see what i thinking of.
theres yet only 1 line, since im at the moment to stupid to get the sendpacket for page refresh in autoit to work *hrmpf*
if i not get it out, i think to make a mouseclick at button location...the lazy way.
btw. do i have wait time for refresh wen send the refresh packet ?
normal u have to wait some seconds before refresh ah page.
^^u can sort right now for items, duration, prices...copy auction id to memory, to paste ingame to ah.
maybe later if all work, send the id direct to bot...he send to ah and buy item automatic.
Sounds like a plan
What packet are you having trouble with precisely? And yeah, depending on your ping, you will have to wait a while for the page to update. I usually just take about 2 seconds to be sure, as there is no reason to be as fast as possible really
Quote:
lol yes thats it
wow, from the results you can show this looks very great
from the graphic *erm* i see what u say that u not the graphics man
I've always been useless with graphics (as you can see from other tools I've made as well ) I generally only make things I use myself or share with a select few and purely for functionality. I don't really want to 'waste' my time on the pretty stuff, I mainly want it to work lol. I do always get a bit jealous when I see all the spiffy professional looking things, but I'm too easily satisfied I suppose.
Quote:
on the item id is a link, u link shurely to pwdatabase or ?
The link is to a list of all shops currently selling/buying that specific item(id) in order of price. I also keep track of whether items are actually bought/sold by keeping track of amounts still in catshops on each round, and keeping track of average prices etcetera.
Quote:
with php u can read out the infos from there too.
so not realy need of extracting stuff from pw game datas.
bad is, if the page sometime never exist...u had to extract it from game data
Well, what I'm looking for is not just item names, which I could get from there of course, but also for example addonId 485 which would stand for Sapphire Shard Mag. Atk., or 472 means unidentified, 473 critical rate, etcetera. I don't know where I could find those, so my bot is just building those up in my database as it come across them. If I would know how to get that from the game data files I'd be quite pleased.
I don't wanna have to store the entire description as string either lol.
Quote:
but what i see looks very nice and impression.
only the look of it make me run away
better dont use tables, u can make css container to show the stuff.
so more easy later, to make some graphic like borders, background gfx and hower stuff.
example: make a div with item id.
if mouse move over, read out stuff from pw database or ur own and show small pop up on mouse position with infos.
Yes, that would be lovely lol. Would take time to figure out how it all works though, as it does seem useful to learn, but time is limited
Quote:
i work a bit the same way, first make the functions, then later plan a concept on how to show much stuff on small place graphical.
so its time saving to use all and u see much info on one place.
cant wait for the day i have such infos to handle with
for now i have only little time, so my stuff will take a while...step for step.
Yeah Everything you need for that is around on these forums though, just have to piece it all together
Quote:
ah this way u mean.
this is easy to make, think about a visitor counter for a website.
they show the visited user like the same way, for weeks or months.
u can grab a ready source from the web to take a look how did it work or i can code u a small example.
would be nice to see the charts for day,week,months.
with real price, maybe time durations or amount of sell/buy gold.
like this picture:
lets say u have a gold price and amount, check later same price and amount.
if amount different u can count that as sold gold.
Yeah, right now I'm storing the amounts and prices for buy/sell every 10 minutes. Difficulty with assuming difference is actually bought/sold gold is that you are allowed to cancel your offer and they can expire. I've used that method for determining whether catshops have sold items but sometimes the results look a bit suspicious....
I can always do that later though if I feel it's necessary and increase the interval I check to about once every 30 seconds or so to check for bought/sold. At the moment I really just wanna check the flow of prices over time and throw some time series algorithms at it to look for trends etc.
Quote:
man, i wish i have holiday...my girlfriend makes trouble yesterday coz i code the evening and if she speak to me i say only stuff like this "hmm, hmm" or "shure, yes...erm what did u say ?"
send me a pm with the results example for the graphical lines.
the format u use to post to this graphic line u use.
i code some better looking way
*thumbs up* realy great work !
Hehehe yeah it all takes too much time And not everybody is as understanding Well, coding up the data gatherer takes a day or two, but to display the data precisely how you want it takes days and weeks
I'll PM you what I have tomorrow morning, haven't been able to work on it at all today and it's time for bed now
**** I should double check more often, or add the line for buying gold sooner. I've accidentally been throwing the data for selling gold into database twice instead of once for sell and once for buy >.<
Not sure if this will spark anyone's interest, but anyway...
[[[[[[[[[[[[[[[[baseCall]+1C]+18]+8]C4]+20]+1C4]+C]+C]+C]+C]+C]+C]+C]+8]+B8]+0]
Yeah it's a big bastard =P
This is for PWI - Will get the complete chat listing. The neat thing is, it can retrieve messages from waaaaay before the first chat you can see in your in-game chat box. It will still retain the very first messages since logging in for a couple of hours. Eventually it does reset, but we're talking after very long time.
Bear in mind that some of the item links in world chat etc. can contain 0x00 so you can end up with two consecutive 0x00 bytes - This will break any attempt at going for a straight unicode rip. You need to search for three 0x00 bytes as the 'real' string terminator. Those that are interested enough can prolly code this =]
I'd post my code, but I've lost a whole bunch of stuff since my HDD decided it had had enough and puked everywhere.
However, you'd be surprised how much you can retrieve from a dodgy HDD if you stick it in a sandwich bag and put it in the fridge overnight =]
Seriously, I've recovered three drives using this method lol. Normally manage to get 95%+ of the data back.
If anyone's interested how I got that offset list, then I'll try to explain it. I warn though, it's not for the feint-hearted. I had to trace back through the GUI rendering engine to get that lol - Mostly in Olly cause CE wasn't up to the job.
@Interest07 - Regarding the values for item modifiers... I'm fairly certain they're in the elements.data stuff. I'll try to post something on this soon - Just re-downloading the pwTools SVN stuff atm to recheck the config file - I can only find my old old version. Hopefully will have something useful for you soon =]
*Edit:
Screenie from sELedit - Properties table. The numbers don't seem to correlate with the numbers you posted, but I think this is the list for item addons etc.
Not sure if this will spark anyone's interest, but anyway...
[[[[[[[[[[[[[[[[baseCall]+1C]+18]+8]C4]+20]+1C4]+C]+C]+C]+C]+C]+C]+C]+8]+B8]+0]
Yeah it's a big bastard =P
This is for PWI - Will get the complete chat listing. The neat thing is, it can retrieve messages from waaaaay before the first chat you can see in your in-game chat box. It will still retain the very first messages since logging in for a couple of hours. Eventually it does reset, but we're talking after very long time.
Bear in mind that some of the item links in world chat etc. can contain 0x00 so you can end up with two consecutive 0x00 bytes - This will break any attempt at going for a straight unicode rip. You need to search for three 0x00 bytes as the 'real' string terminator. Those that are interested enough can prolly code this =]
I'd post my code, but I've lost a whole bunch of stuff since my HDD decided it had had enough and puked everywhere.
However, you'd be surprised how much you can retrieve from a dodgy HDD if you stick it in a sandwich bag and put it in the fridge overnight =]
Seriously, I've recovered three drives using this method lol. Normally manage to get 95%+ of the data back.
If anyone's interested how I got that offset list, then I'll try to explain it. I warn though, it's not for the feint-hearted. I had to trace back through the GUI rendering engine to get that lol - Mostly in Olly cause CE wasn't up to the job.
@Interest07 - Regarding the values for item modifiers... I'm fairly certain they're in the elements.data stuff. I'll try to post something on this soon - Just re-downloading the pwTools SVN stuff atm to recheck the config file - I can only find my old old version. Hopefully will have something useful for you soon =]
*Edit:
Screenie from sELedit - Properties table. The numbers don't seem to correlate with the numbers you posted, but I think this is the list for item addons etc.
bloody hell, that's some chain of offsets... I've stumbled into something like that before but gave up after the first 5 or so
I've tried that tool before, but it didn't seem to give me the correct stuff, so I gave up on it. I'm sure some of my values might be off, but most match what i see ingame:
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?