![]() |
Forsaken World collaboration
1 Attachment(s)
I am looking for help mapping the opcodes for PWE's latest game Forsaken World. It's a whole new ball game; every single code is different.
My main computer apparently can't launch the game because of its new protection not working properly on certain x64 configurations; and my other computer is too slow to be painfully working on it. I can provide the tool for you to hook to the game client and it will dump the opcodes whenever something is sent to the server (you will need NET Framework 4.0 though); or you can grab MHS and setup breakpoints + scripts to dump manually. Download: - the tool can be downloaded from the attachment and it works for all PWE games. - you will need NET Framework 4.0 to run it ([Only registered and activated users can see links. Click Here To Register...]) - you may also need MS C++ 2010 Redistributable ([Only registered and activated users can see links. Click Here To Register...]) (EDIT: I posted the MS C++ 2008 Redistributable earlier which won't work; needs the 2010 version) Requirement: - your own FW CB account - some knowledge of hexadecimals and offsets will make things easier For starters, here are some current offsets for the latest client: Send function address = 0x7876B0 Base = 0xD14280 Self player's structure = [Base + 0x20] + 0x24 NPC hash list = [[[Base + 0x20] + 0xc] + 0x20] + 0x18 NPC sequential list = [[[Base + 0x20] + 0xc] + 0x20] + 0x48 NPC's name offset = 0x1c8 NPC's unique Id = 0x150 (8 bytes long = 64 bit) (example: 0x8000000000001A56) Player's hash list = [[[Base + 0x20] + 0xc] + 0x1c] + 0x18 Player's sequential list = [[[Base + 0x20] + 0xc] + 0x1c] + 0x88 Player name's offset = 0x54c Player's Id = 0x220 (also 8 bytes = 64 bit) Loot hash list = [[[Base + 0x20] + 0xc] + 0x24] + 0x18 Loot's name = 0x1e0 Loot's unique Id = 0x130 (8 bytes) Opcodes format: ============ Cancel = "001D" NormalAttack = "02001C" Select = "{0:X16}0007" Interact = "{0:X16}0046" (engage dialog with NPC) UseInventory = "{0:X8}00{1:X2}01000032" where {0} = item Id, {1} = inventory slot UseEquipment = "{0:X8}00{1:X2}00000032" where {0} = item Id, {1} = equipment slot UseSkill = "{0:X16}0102000000000000000000000000{1:X8}0020 " where {0} = target Id, {1} = skill Id Opcodes function in C# ================+ Code:
byte[] HexToBytes(string str)Code:
// Selecting targets |
:( don't have an account there, or I would love to have a go at it lol
|
Registered for CB, waiting on any email notification from them.
|
Awaiting approval for CB. Then of cource, I'll join collaboration
|
BTW, in your attach you've forgot PWDump.dll =/
|
It's embedded resource in the net assembly; should work fine. You can try it on PW.
|
interesting that theyre using 8 bytes long ids now... any clue as to why? :o
I can't imagine they have THAT many NPCs |
They're just making it a harder time for us which is kinda stupid really; their protection is very lame and stupid; only hurt legitimate players (like me can't start the game).
At least they force me to rewrite my bot to support both 32bit and 64bit Ids in one bot. |
I use XP 64bit, oh well might be in for some issues if I try that game, but I'm already used to it by now, couldn't even connect my phone to my PC cos the software didn't support my windows. Have to mail my own applications to my phone to use them *sighs*
Oh well, I'm pretty sure it won't stop anyone from doing what they want with their games, especially not you lol :D |
Quote:
--------------------------- elementclient (3340) --------------------------- Unable to hook process. --------------------------- OK --------------------------- I have .NET Framework 4.0 and I also tried after reinstalling MS C++ Redistributable. When I say reinstall I mean "repair" because I had full installation of Visual Studio 2008 already installed and appart from remove, repair was the only option left. PWEDump analyze failed before and after with same error. Attempted PW version was PWI 446 (current) as well as one version before current patch, numeric version of which I do not recall. System specs are: Windows XP 32bit (eng) Intel Pentium 4 3.20Ghz 3070Mb RAM Reason for reporting this issue is not my desire to use it on PW, just wanted to test if all is ok, in case I do get CB key for Forsaken World, which I have not received as of yet. |
Did you get a popup about missing MSVCR100.DLL? I built the DLL in VS2010 and it's linking with this version. If you are missing this, you can google and download it and place in the Windows\System32 folder.
Other than that, I don't see any other possible problem. You can view the source code by using Reflector (free). The hooking process is straight forward. EDIT: I gave the link to the MS C++ 2008 Redistributable by mistake on my first post; you need the 2010 version which now has the correct link. |
The 2010 version of MS C++ Redistributable did the trick, it now works as it should. Thanks for the modified link.
Just for reference, no, I did not get a popup about missing MSVCR100.DLL before. |
here is a dump of some things.
Code:
Analyzing process game (1316) |
Vuduy what all do you need? I'd be glad to help but do you just want me to record and dump it here? Or are you looking for specific stuff?
|
Anything that is useful. Example, cast skills, get the dump and formalize the opcodes; different type of skills may have different opcodes eg. instant cast skill (no cast time) vs normal cast skills.
Also get opcodes for summoning/stowing pets, feeding pets, and any other activities with pets. Get opcodes for inventory item usage, like using pots, using mounts, or any other special items. Get opcodes for buying, selling, repairing. Also, find data offsets like HP, MP, level, gender, etc... all the useful properties for NPC, player and provisions. |
| All times are GMT +2. The time now is 16:25. |
Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.