Ребят прошу помощи, так как не пойму почему не получается у самого... В общем суть такова Есть переменная NetPk NetworkPacket Структура NetworkPacket Код (Text): struct NetworkPacket id db ? align_ dd ? cb dd ? data db ? ends Так вот. Я хукаю приложение, с переменной, и такой же структурой. После хука получаю в EBX указатель на переменную (в моем случаи пакет) после того как Выполняю команду mov [NetPk], ebx ; в NetPk у нас будет указатель на пакет. А вот когда пытаюсь "вывести" NetPk.id у меня выводится не id пакета, а последние 2 байта указателя на пакет. В чем может быть проблема?
r2max Во-первых, должно выводиться не два байта, а один. В противном случае обращение к полю id неверное. Во-вторых, ну так Вы ведь посредством mov [NetPk], ebx и сохраняете указатель на структуру приложения поверх полей своей структуры. Вот его кусок и выводится. Подозреваю, в зависимости от контекста, нужно 1) либо полностью копировать структуру приложения в свою и выводить так, как это у Вас уже сделано. 2) либо сохранять только указатель на структуру приложения. Тогда у себя хранить такую структуру (NetPk NetworkPacket) не нужно, а только переменную вида pNetPk dd ?. Выводить соответственно не [NetPk.id], а, например, [eax+NetworkPacket.id] (если предварительно выполнено mov eax, dword[pNetPk]).
struct NetworkPacket id dd ? align_ dd ? cb dd ? data dd ? ends ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; assume esi:ptr NetworkPacket mov [esi].id, blabla1 ; -------------------------- push blabla2 pop [esi].align_