все равно так не честно :P мы считаем получается сколько байт можно впихнуть в команду чтобы не было #UD или чтобы она имела смысл и не имела...
ты неправильные параметры передаешь WriteConsole. при чем тут каркас
мда ))
Да че вы спорите.. консоль, не консоль, дебаггеры.. это все дело вкуса и для каждого своё.
Тогда я могу понаставить так хоть сто префиксов смены размерядности ) так не честно :P
ну это уже не считается за префиксы) команда, которая реально будет выполнена процессором, может иметь только 4 префикса =)
Чето ты мухлюешь... а если страница памяти выгружаемая? я сбрасываю CR0.WP
господи, ЭТО как-то работает? Оо.... мда.. ReadConsole и WriteConsole надо передать адрес буферов. А ты передаешь адреса каких-то DWORD'ов.. бред...
Код операции стопудов два байта. + некоторые биты modrm определяют конкретику команды, но опкод все равно 2 байта. обычно опкод 1 байт, если...
#UD - исключение "недействительный код операции" код операции максимум 2 байта Да ладно? Никогда не думал. а не пох? все равно исполняется одна.
а сорсик не покажете?
Я точно не знаю, но длинее 13-15 байт я команды не видел ни разу еще. Так что скорее всего 15. Тем более, что 32 - слишком много.
Надо найти кусок кода, который заполняет KeServiceDescriptorTable и вызвать его =)
ну это, конечно, ясно, что отладчик ядра это не калькулятор.. наработки у нас уже есть, будем развивать) спасибо) ну во-первых, должна быть...
размер адреса в защищенном режиме, если в дескрипторе сегмента CS стоит бит D, равен 32 бита, или 4 байта или один DWORD.
Я написал выше. invoke ExitProcess, 0 превращается при препроцессировании в push 0 call dword [ExitProcess] Учись юзать отладчик. Почему надо...
Имена участников (разделяйте запятой).