[Guild Wars] Packet encryption

Status
Not open for further replies.
Yes. I'm deciding to do it a little bit of a different way. Give an error after the character is created and required re-login to click Play to play. Sorry about the late reply, I had a rather averse reaction to drops at the eye doctor and have felt horrible most of the day. ><

----------------------------------------------------------------------------------------------------------------

Please do not spam the armor set input with tests. >_> It's been tested already and works.

Removing the scene for now would probably be the best idea. Later after the emulator is finished, you can always go back and add scenes in to make the emulator better.

For the scene crash, did you try and program it out of the emulator and client? Because the client is still probably trying to read the scene. Just a thought.
 
Removing the scene for now would probably be the best idea. Later after the emulator is finished, you can always go back and add scenes in to make the emulator better.

For the scene crash, did you try and program it out of the emulator and client? Because the client is still probably trying to read the scene. Just a thought.

What I'm doing is forcing the error 7 to prevent the client from freezing and allowing the player to quickly login again.
 
Packet Dump for build #21,314 & #21,327 can be found here:
 
Last edited:
Packet Dump for build #21,314 & #21,327 can be found here:

Thanks Theora, finally got GW proph/factions installed last night. Going to get Nightfall tonight.

Need anything else for ID's or anything?
 
frontpage said:
Any news?

The framework for instance handling has been implemented and I'm now processing the packets required to load in. About one-hundred packets need to be figured out. Oh yes, this will probably go open source at the first release.


Akai said:
Thanks Theora, finally got GW proph/factions installed last night. Going to get Nightfall tonight.

Need anything else for ID's or anything?

Nothing that I can think of for now. But thanks for the help.
 
The framework for instance handling has been implemented and I'm now processing the packets required to load in. About one-hundred packets need to be figured out. Oh yes, this will probably go open source at the first release.




Nothing that I can think of for now. But thanks for the help.

Okay, good luck. Feel free to ask for help if you need it.
 
Bleh. I was demoralized by one packet. It made no sense why sending it resulted in an error 7. After much contemplation I checked that the game server was indeed establishing an encrypted connection to the client. I found it was not. This was due to an authorization flag not being set that was set only when connected for character creation. ><

Anyway, as for current progress...:eek:



Please note: All those other characters are not actually there.

Detailed Progress:
  • Instance framework in place and working
  • Game server identifies character creation clients from the instance clients
  • Support for shared instances
  • Support for separate instances
  • Instances are deleted when no player(s) exist in them and are created when that particular instance is requested.
  • Character creation bug fixed(due to adding instance framework)
  • Login server supports all options except "Edit Account" and "Enter Store" at the character selection screen.
  • Supports the first two steps properly for loading into an instance. The third is accomplished for now by packet replay.
  • Major bug fix in the armors.ini loading code.
  • Instances have a max limit which will be configurable. If that is reached, instead of loading into the shared instance a new instance will instead be created.
  • Many bug fixes which resulted from the addition of the instance framework.
  • Login server appears to be stable. I can't crash the darn thing.
  • Game server may or may not be stable.
  • As of 12:09PM today the health bar and energy bar appear and the game client does not crash when trying to open the Skills, Inventory, or Character windows.
In addition,

The latest version of the packet dump program is compatible with the latest Guild Wars build(#21,350) which can be found:

In an unrelated addition to the addition, I"s is a great manga.
 
Last edited:
Great progress Theora. Seems you are moving right along with this project.
 
Wow, i saw the name and sorta laughed a bit at first, but seems like theres actually people who know what they are doing working on this project. Good work guys, and looking forward to an official release. :)


NC = Teh Sux! =P
 
Bleh. I was demoralized by one packet. It made no sense why sending it resulted in an error 7. After much contemplation I checked that the game server was indeed establishing an encrypted connection to the client. I found it was not. This was due to an authorization flag not being set that was set only when connected for character creation. ><

Anyway, as for current progress...:eek:



Please note: All those other characters are not actually there.

Detailed Progress:
  • Instance framework in place and working
  • Game server identifies character creation clients from the instance clients
  • Support for shared instances
  • Support for separate instances
  • Instances are deleted when no player(s) exist in them and are created when that particular instance is requested.
  • Character creation bug fixed(due to adding instance framework)
  • Login server supports all options except "Edit Account" and "Enter Store" at the character selection screen.
  • Supports the first two steps properly for loading into an instance. The third is accomplished for now by packet replay.
  • Major bug fix in the armors.ini loading code.
  • Instances have a max limit which will be configurable. If that is reached, instead of loading into the shared instance a new instance will instead be created.
  • Many bug fixes which resulted from the addition of the instance framework.
  • Login server appears to be stable. I can't crash the darn thing.
  • Game server may or may not be stable.
  • As of 12:09PM today the health bar and energy bar appear and the game client does not crash when trying to open the Skills, Inventory, or Character windows.
In addition,

The latest version of the packet dump program is compatible with the latest Guild Wars build(#21,350) which can be found:

In an unrelated addition to the addition, I"s is a great manga.

nice this project almost finished huh
 
Amazing!

I am no expert programmer such as yourself, but I am just curious how you're going to implement/work-around that entire streaming data idea GW was founded on.

Where is the map data going to come from on your emulated server? Are you streaming the map to yourself or does your client previously hold all the map data?

How does the server handle NPC conversations, item lists, NPC locations, etc? Is it all in the client or part of the streamed map data?

If a server admin was going to make a change, isn't the technology founded on the fact ArenaNet can stream little updates to the map files?

Is that part of your emulation direction or have you gone after something else?

Sorry to ask so many questions.. just curious, in an amazed sort of way. :)

Keep it up man, you're already a hero around here. ;)
 
I have approximately 15 years of both low and high level C/C++ experience, so perhaps I could help with development of your server. I am familiar with various encryption algorithms, so let me know if you would like assistance. By the way I went to #gwlp on irc.rizon.net and you were not on.

I disassembled your packet dump program, it looks very interesting. I started writing my own which uses FindWindowA, ReadProcessMemory, etc.
 
Amazing!

I am no expert programmer such as yourself, but I am just curious how you're going to implement/work-around that entire streaming data idea GW was founded on.

Where is the map data going to come from on your emulated server? Are you streaming the map to yourself or does your client previously hold all the map data?

How does the server handle NPC conversations, item lists, NPC locations, etc? Is it all in the client or part of the streamed map data?

If a server admin was going to make a change, isn't the technology founded on the fact ArenaNet can stream little updates to the map files?

Is that part of your emulation direction or have you gone after something else?

Sorry to ask so many questions.. just curious, in an amazed sort of way. :)

Keep it up man, you're already a hero around here. ;)

1. The map data for the client is stored in the client's gw.dat already. If needed a server side version of the map coordinates will be created manually.

2. It appears that NPC's are streamed at the loading screen for an instance. This is speculation but the packets for each NPC seem to follow...
Code:
00001233 4041 636E 6F6E 0000 0000 0000 0000 0000 @Acnon..........
00001243 0000 2717 5003 0100 0000 0000 0000 0000 ..'.P...........
00001253 0000 0000 807F 0000 807F 0000 0000 0000 ................
00001263 0000 807F 0000 807F 0000 3000 2300 0000 ..........0.#...
00001273 EB24 0000 1B03 0000 C701 0140 0100 2203 .$.........@..".
00001283 0000 00A4 0100 0001 0000 0001 00E4 2802 ..............(.
00001293 0002 B824 0405 88A4 3000 2400 0000 2438 ...$....0.$...$8
000012A3 0000 1803 0000 C100 0140 0100 2002 0000 .........@.. ...
000012B3 0057 0100 0001 0000 0001 00BB 2801 0004 .W..........(...
000012C3 C8A3 3600 2D00 0000 2300 0000 2400 0000 ..6.-...#...$...
000012D3 AA00 2E00 0000 0400 5E2B 0F9F 37B4 5371 ........^+..7.Sq
000012E3 2600 2E00 0000 0000 0000 0300 2E00 0000 &...............
000012F3 6001 0020 0109 1A5A 2D46 BE3C 0F46 0000 `.. ...Z-F.<.F..
00001303 B743 243F 7F59 443F 0100 007A 430A D7A3 .C$?.YD?...zC...
00001313 3E00 00                                 >..
@Acnon which seems to be non-character actor? I'm just guessing here. ><

However, for players it's...
Code:
00003308 4041 7961 6C70 0000 0000 0000 0000 0000 @Ayalp..........
00003318 0000 BFDB 4F03 0000 0000 0000 0000 0000 ....O...........
00003328 0000 0000 807F 0000 807F 0000 0000 0000 ................
00003338 0000 807F 0000 807F 0000 2300 C408 0000 ..........#.....
00003348 8902 0000 0703 0B00 5901 0307 0000 2009 ........Y..... .
00003358 0000 0023 00F6 0700 005A 0000 0004 1304 ...#.....Z......
00003368 0000 0000 0610 0020 0000 0000 2300 7206 ....... ....#.r.
00003378 0000 5E00 0000 1313 0400 0000 0006 1000 ..^.............
00003388 2000 0000 0023 0009 0700 008A 0200 000D  ....#..........
00003398 030B 0040 0101 0700 0020 0900 0000 3700 ...@..... ....7.
000033A8 6F00 0000 0000 0000 0000 0000 C408 0000 o...............
000033B8 F607 0000 7206 0000 0907 0000 0000 0000 ....r...........
000033C8 3E01 6F00 0000 0122 0017 0000 0071 0000 >.o....".....q..
000033D8 0001 7143 0306 0000 0000 44FA D300 0B00 ..qC......D.....
000033E8 4300 6100 7200 6100 6300 2000 5200 6100 C.a.r.a.c. .R.a.
000033F8 7600 6500 6E00 6B00 1700 016C 0017 0017 v.e.n.k....l....
00003408 006F 0071 0000 0004 064B 001F 0000 0071 .o.q.....K.....q
00003418 0000 0008 0000 0026 0071 0000 0000 0000 .......&.q......
00003428 0003 0071 0000 0017 0000 3001 0533 CFF7 ...q......0..3..
00003438 455B DB26 4600 0044 D859 3FEB 7506 3F01 E[.&F..D.Y?.u.?.
00003448 0000 9043 0000 803F 0000                ...C...?..
@Ayalp which seems to be player actor. I still have not figured out if these can be sent at anytime in an instance, considering the blasted clients keeps crashing when I delete one player from the list. It's also interesting to note that only players that belong to a guild generate so much information.

Item lists are handled when the client requests the information from the server. I don't know about talking to NPC's yet though. I'd assume that some form of ID's are exchanged between the client and the server with the quest text being stored client side.

3. ANet can do that. This won't be able to. I don't know their file format nor how the content streaming system works. This server already assumes all content is on the client side. For now...>:)

Scottgl said:
I have approximately 15 years of both low and high level C/C++ experience, so perhaps I could help with development of your server. I am familiar with various encryption algorithms, so let me know if you would like assistance. By the way I went to #gwlp on irc.rizon.net and you were not on.

I've been in the channel from the time I posted it. You must have had the wrong server or channel. =/ But I'm definitely interested in assistance. Contact me in the channel.
 
Status
Not open for further replies.
Back