Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm для Windows/Dos > Call на селектор данных


Автор: leshiyNEXT 11.5.2005, 12:34
Как в защищенном режиме под Windows получить дескриптор кода с нулевой базой и лимитом в 4 гига. Это нужно чтобы сделать дальний код на селлектор данных!

Автор: Chingachguk 11.5.2005, 12:39
Ну вот в 98-ой, если мне не изменяет память, это значение 28h. Можно посмотреть вручную GDT (sgdt->...) и найти в ней то, что тебе надо.

А что за "дальний call" и нафига он ?

Автор: leshiyNEXT 11.5.2005, 12:46
Непонял, что найти таблицу GDT? Найти одно, а создать в ней дескриптор другое. А надо мне это вот для чего: хочу чтобы прога в некий массив загоняла опкоды команд а потом передавала управление по адресу первого элемента этого массива.
В DOS это проще некуда, так как там данный и код не конфликтуют а в защищенном...

Автор: Chingachguk 11.5.2005, 17:48
Зачем создавать ?! Посмотреть в ней тот, что тебе нужен. И вообще, ты где все это делать хочешь ? Из win32 кода надо использовать SEH, imho.

Автор: Sl@va 11.5.2005, 17:56
Команды дря работы с GDT, LDT, IDT все привелегированные, и обычная программа пользователя работающая под управлением операционной системы их выполнить не может. Это вызовет исключение. (Появится окошко'Программа выполнила недопустимую операцию и будет закрыта'). Можно например создать Vxd драйвер который работает на нулевом кольце защиты и выполнить в нем все что тебе нужно. Там уже никакх барьеров не будет. Вот только некорректная работа твоего Vxd драйвера может вызвать сбой в операционной системе.

Автор: leshiyNEXT 11.5.2005, 23:33
ГМ... А Vxd драйвер я никогда и не создавал и опыта нету! Поэтому такой сразу вопрос его какой компилятор создать может и как примерно это делается? Хотя бы кратенько - а там я разберусь...

Автор: Chingachguk 12.5.2005, 09:36
VxD драйвера используются в win98. В xp используют SYS. Про то и другое читай wasm.ru.

Автор: Sl@va 12.5.2005, 17:13
Есть один хороший сайт, там полно исходников. Я точно не смотрел, но возможно ты там найдеш то что тебе нужно. Вот его адрес :
http://win32asm.cjb.net
Добавлено @ 17:17
По поводу создания Vxd, то они также создаются в Tasm или Masm. Если найду мануалы или какую нето инфу, то дам ссылку
Добавлено @ 17:23
А вот как раз и ссылка :
http://spiff.tripnet.se/~iczelion/tutorials.html

Там есть раздел VxD Tutorials, возможно там чего нето найдеш

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)