Я новичок в ассемблере, но мне нужно реализовать примерно вот такой код mov 0x8003F000, gdtr; mov 0x8003F400, idtr; mov 0x0000, ldtr; Ну иными словами - подменить значения в этих регистрах. Вы будете смеяться, но лучше всего это сделать на делфи =). Да и си тоже сгодится..
Я не то что глупый, я просто не специалист в ассемблере. Надо привелегии дебаггера получить? Или драйвер защищенного режима написать ? Или что. Ответь плиз если знаешь и если не сложно. А кстати, это мне нужно для вмваре, то есть возможность пропатчить ее файл есть.
таких команд нету ) есть команды lgdt, lidt & lldt для загрузки соотв. 48-битных регистров. есесно из третьего кольца защиты никто тебе сделать этого не позволит. эти инструкции могут быть выполнениы только на 0 кольце. отсюда вывод - либо гейт, либо драйвер. первый способ катит до Windows 2003 SP1 кажется но не нужно таскать с собой бинарник драйвера, второй - универсален и документирован, но требует еще одного бинарника (SYS).
Погоди погоди Great, эти команды для загрузки ИЗ регистров в переменную ? А мне ведь наоборот надо сделать.. Да и если не сложно кидай сорец если есть иначе я буду год учить сначала асм =)
Чтоб такое сделать, тебе по-любому придется асм учить, а уж год или нет, это зависит исключительно от твоих способностей...
axe_roma можно оба если тебя не затруднит.. Pyromaniac Я как то и не против, но понимаешь ради одной задачи не хочется учить целый язык
LGDT = Load GDTR, GDTR = Global Descriptor Table Register. Эта команда загружает В РЕГИСТР. Для получения значения ИЗ РЕГИСТРА есть команда SGDT.
pavelvladimirovich тут (http://www.wasm.ru/forum/viewtopic.php?id=18880) есть сорсы моего загрузчика, который устанавливает GDTR и IDTR. Тебе это надо?