Originally Posted by
amadmonk
So, this is an interesting task you've given yourself. I've been in a similar hell lately (attempting to re-decode the SMSG_UPDATE_OBJECT and other packet changes since 3.13; I'm reversing the packet receive functions atm).
When I started using packet sniffing for my bot, I was under the (sadly mistaken) assumption that packet structure was unlikely to change significantly from point release to point release, whereas memory layout might. Wow, was I wrong. About 1/3 of the packets have had structural changes since 3.12, ranging from adding a byte field to changing packed guids into unpacked guids to a completely different structure for spline movement updates. I'm starting to wonder if the WoW devs are juggling crap just to mess with us... (why else would you change a packed guid to an unpacked guid in a particular opcode, and nothing else??)
I'm starting to think that packet sniffing is not such a low-labor method for controlling a bot after all.
Given, all of the info about the packet layout is present in the binary, but my whole goal here was to not have to spend 10 hours in IDA trying to divine the intent of an opcode parser after every 2-3 week point-release patch. If I'm going to have to do that anyway, I might as well skip the overhead of packet sniffing.
So... good luck with this.