res2001, Вы правы, я думал что такое умножение происходит только в случае обращения к адресу так: addr[i]. мне также помогло DWORD_PRINT((int)&a + 0x4400);
Kirgus, чтобы разобраться как все работает, сделать ядро с нулями с своим форматом файлов, со своими системными вызовами и тд. А потом и правда вирус сделаю, напишу кривой системный вызов чтобы можно было буффер переполнять например. + будет полезным для прошивок мк думаю
Я не могу увидеть что вызвало проблему. Инструкция интерпретировалась правильно, cr0 перед вызовом имел адекватное значение. База gdt верная и ее размер тоже. Я только понял, что значения появляются не случайные а это начало перезапуска QEMU
jcmvbkbc, Но я поставил точку останова на адрес 0х7777 и перехода туда не произошло. А интерпретация не должна повлиять по идее. В регистре ip после дальнего прыжка адрес 0xe05b оказывается
У меня были похожие мысли, я пробую найти "правильный формат" в дизассемблере клиента. Проблема еще в том что оригинальный клиент каждую секунду посылает на сервер UDP пакеты похожие на пинг