The strings are encoded with the ISO-8859-1 character set, though you can get away with using ASCII if you don't mind losing the Latin characters. I would also suggest looking at the 0xF5 packet, and...
Type: Posts; User: Sketchy
The strings are encoded with the ISO-8859-1 character set, though you can get away with using ASCII if you don't mind losing the Latin characters. I would also suggest looking at the 0xF5 packet, and...
I assume you captured this packet from a pre-8.3 client? It's missing the Adler32 checksum from the header which suggests so. My guess for the problem is you are passing true for the hasAdler...
One idea is to use a locking mechanism on both threads so it blocks the other while it is creating and sending a packet. What I'm thinking is to create the lock object within the Tibia process, I'd...
No problem.
One thing I forgot to mention is using CreateRemoteThread runs the risk of conflicting with the client's main thread which may be attempting to send a packet at the same time causing...
Two things which you probably figured already. The AddPacketType function does a bit more than just that, it also resets the buffer position back to the start after the type ID (ie: position 9) and...
Just wanted to say an alternative to this is using the free open source SharpDevelop IDE which is only a 15.1 MB download. It of course doesn't support C++ and does lack features that are in Visual...
You are searching within the wrong module, you are searching in the ntdll module when you should actually be searching in the Tibia module.
Yeah searching for a pattern, strings being an excellent choice, is a key point in automated routines.
In my routine I'm just searching the client executable (parsing the PE file itself, so the...
I've done a fair bit of work with automatically finding addresses and I'd advise avoiding the topic until you are much more experienced, especially with regards to assembly. Even then it's not...
For a bit more detail on this issue.
On Windows XP and below PROCESS_ALL_ACCESS is defined with the value 0x1F0FFF. It's strange that setting the unused bits cause the functions to fail though,...
That's not right, it's not the type that determines what to use it's the language itself. &H is the prefix used in Visual Basic (and some other BASIC-based languages) to designate a hexadecimal...
If you are working with the newest Tibia version your character's name, when logged in, is added to the client's window title in the format of "Tibia - Character Name". So you can just use...
Marshal.SizeOf also throws an exception if there is an error in the marshalling data for the structure which is probably where the exception is actually coming from, in this case is the error is the...
I always explicitly add the sequential attribute to my structures even though I know it's the default behaviour, if nothing else it lets me know a structure is used with native code without having to...
I've done it like you are with an unmanaged memory buffer and Marshal.PtrToStructure before, but the program that particular snippet came from I was testing a different method using runtime generated...
It depends upon the implementation, the standard makes no requirement on the actual backing structure used. In practice though it is typically implemented using a red-black tree, and this is the case...
They are actually storing as a std::string which in their compiler version (VC++ 2010) has a 28-byte memory structure as follows:
struct STDString
{
union
{
char Chars[16];
char*...
Yeah you can do that too, or you could also replace the last two instructions with mov eax, [eax + 0x8] to get the PEB.ImageBaseAddress field. This obviously needs to be executed within the client...
It should also be kept in mind that this particular timer runs on the window's thread via its message loop, it uses SetTimer in the background, and thus will block the UI while running. So it would...
Well just installed TeamViewer on a VM for some testing, didn't actually try a call to EPM but instead inspected the client's Process Environment Block from which EPM reads the modules list from and...
The cbNeeded parameter for EnumProcessModules is used to return the number of modules the function found, the actual value being the total number of bytes needed to store them all. So you can use...
The best idea for limiting access would be the environment sandbox approach suggested in that StackOverflow link. It's a whitelist approach where you explicitly define the available functions to the...
Wrong. Firstly increasing the voltage doesn't increase the clock rates but rather helps to allow you to achieve higher rates by increasing the signal quality which deteriorates at the higher rates,...
Actually AMD have for a long time had the advantage in offering better performance for less cost, for example the AMD Radeon 7870 Ghz was selling around the same price as the slower NV GTX 660. It...
Nope that's wrong. Film is typically done at 24 FPS and has worked well enough for this due to motion blur making the motion smoother. Games however don't have any inherent motion blur applied to...