Hi I haven't posted here in a while, but you seem like you know what you're talking about. I used to dev a lot for these private servers but never figured out how packets exactly worked. Is there a good guide for IDA out there or resource for people who want to learn this?
Of course! You can refer to my recent quote from my Development v40 Beta Edition thread:
The two tutorials that I had read to get started were these:
http://forum.ragezone.com/f922/getting-packet-structures-opcodes-ida-872876/ http://forum.ragezone.com/f922/getting-packet-structures-opcodes-using-792436/
It may be a bit basic, but it's a learning process. If you've looked at v95 and found the subs for it, then you just need to look for how to find them in v95 and replicate it in your IDB. Look for functions you already have named and make your way to the source from there.
If you don't know the basics of packets in general, which you should know first, you can always refer to this:
http://forum.ragezone.com/f428/updating-server-version-updated-762816/
Once you understand that an integer is 4-bytes, a short is 2-bytes, etc, it'll help you understand that when reading packets in IDA a "CInPacket:
ecode4" just means you need to writeInt, and "CInPacket:
ecode2" means you need to writeShort (hence int is 4-bytes -- Decode"4", etc). If used on lower versions, IDA will tell you or help you figure out what every byte is used for in packets. You'll be able to determine every byte and no longer rely on padding it with zero bytes of filler data to not crash, which will keep your packets much more organized in the long run for updating. As for higher versions, you can use the latest KMST PDB leak, but GMS is ahead of it now along with KMS doesn't have a lot of the things GMS has so you'll be missing names of packets.
Just like all other things here though, IDA is a learning process. Once you brush up on packets, read the guides on how to work and utilize IDA, the rest is up to you. I guess it's really just a personal thing, but for me learning IDA was very simple. I started out with learning, understanding, and updating my v83 packets that were already done before. Once I understood what was going on in IDA versus in Odin, I got the hang of it. Then the next thing up is learning the equivalent Nexon name of the packet to the Odin name. For example, you'll need to know that getCharInfo and getWarpToMap in Odin is just simply OnSetField in Nexon terms, or that spawnPlayerMapobject is UserEnterField. Once I was able to find packets in IDA that weren't done before and got them to work in-game, I stepped it up a notch and got a v40 Beta IDB from the library of IDBs. It had enough named already that I didn't have to find things myself since I wasn't quite there yet. From there, I was able to get all the opcodes I needed, and it was fairly easy because most of the packet structures involved weren't any different from OdinMS Rev 988, so all I needed to know were the opcodes minus the major packets involved in the game. However, I did say it was a personal thing -- others do find IDA to be rather hard and just ignore it. If you have any questions or need any help with it though, just make a help thread and mention me and I'll be able to answer any questions you may have.
Good luck, and welcome to the IDA life