Грязными руками да в чужой памяти…

Jun 15, 2011 01:51


Взламываем игру прямо в памяти, через ReadProcessMemory. Отыскали интересную структуру, в ней нашлись какие-то адреса… Как эту структуру оформить на Паскале?

Плохой способ:

type TStructure = packed record // 0000 mem0000 : array [$0000..$001F] of byte; // 0020 Lives : longword; // 0024 mem0024 : array [$0024..$003F] of byte; // 0040 Ammo : longword; // 0044 end;
А теперь представим себе: вдруг мы опознали, что находится по адресу 0030. Слишком много работы, а при любой ошибке сдвигаются все адреса после.

Моё решение:

type TStructure = packed record case integer of $0020 : ( _pad0020 : array [$0000..$001F] of byte; Lives : longword ); $0040 : ( _pad0040 : array [$0000..$003F] of byte; Ammo : longword ); end;

tembarcadero.create, техдокументация

Previous post Next post
Up