Ну примерно. А если серьезно, то зачем лезть делать esp, если не знаешь самых основ, тоже устройство структур, лучше в первый раз воспользоваться ручным поиском указателя на простой игре, в идеале с открытым исходным кодом.
struct CPlayerBase(client.dll + 0x4DEAD)
{
HP 4
Coords 12
TeamNum 4
}CPlayerBase* playerbase;
playerbase - указатель на структуру пусть будет равен (0xBEEFDEAD).
Допустим какой-то код.
...
playerbase->HP -= cWeapon->Damage(...);
...
Нашел ты эти хп(0xBEEFDEB1). Проверил что адрес верный.
Теперь ставишь бряк,отнялись хп смотришь в регистре у тебя 0xBEEFDEAD к примеру инструкция sub [playerbase + 4], eax
Дальше берешь этот адрес playerbase(0xBEEFDEAD), устанавливаешь в поиске HEX 4 байта, ищешь адрес, находишь зеленые адреса которые очень похожи друг на друга и равны 0xBEEFDEAD это и будут адреса начала структур CPlayerBase и CEntityBase. Больше ничего искать не надо т.к используются одноуровневый указатель.