· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.HEAP —› FAQ пробный пост.

Посл.отвђт Сообщенiе


Дата: Сен 7, 2003 05:13:21

Q:  Здраствуйте. Все  знают, что, например, OS Windows работает
   используя   процессы   которые   в	свою   очередь	владеют
   потоками... Ну, почти так :) В общем, я не понимаю одного...
   Регистры  у	процессора  одни  ведь?  Правильно?  тогда  как
   программы  используют  их  одновременно?  Допустим, за квант
   времени,  отведенный  1-му потоку он успел выполнить код MOV
   EAX,  10  затем управление перешло ко второму потоку который
   выполнил  MOV  EAX,	20 как потом первый поток, когда к нему
   вернется   управление,   сможет   "найти"  записанное  ранее
   значение? +)
    Вот это как раз тот "момент" которого я не понимаю :(

A: Windows одновреммено не может несколько программ выполнят, у
   вас	только	один  процессор!  Оно просто очень быстро между
   этими    процессами	 переключается,   и   создаёт	иллюзию
   "multi-tasking"'а. Когда Windows переключается с процесса на
   процесс,  оно  сохраняет  значения  каждого	регистра  перед
   переключением   в   структуру   CONTEXT.   А  когда	обратно
   переключается   к   процессу,   то  уже  считывает  значения
   регистров  с этой структуры. Смотрите API SetThreadContext и
   GetThreadContext.


Q: Можно  ли каким-то образом перехватывать прерывания и менять
   их?	То  есть,  если юзер нажимает наприметр на клаве символ
   'A'	то  я  хочу  вместо  него  вывести 'X'. Для этого нужно
   отследить прерывание от клавы с символом А и заменить его на
   прерывание соответствующее символу Х. Реально ли это?

A: Читай доку про  хуки. Оно конечно  не  прерывания, но 'A' на
   'X' поменять можно.


Q: Посоветуйте,  плизз,  начинающему  хороший  учебник	по АСМ.
   Только нужно все с нуля и с подробным описанием.

A: В.Юров "Assembler" - Учебник, изд. Питер, 2000
   В.Юров "Assembler" - Специальный справочник, изд. Питер, 2000
   В.Юров "Assembler" - Практикум, изд. Питер, 2001
   Практикум можешь не покупать - весьма занудная книженция.
   С.В.Зубков "Assembler. Для DOS, Windows и Unix", изд. ДМК.
   Если кодинг под Win, то Iczelion'а почитай.

Q: Как можно вызывать API функции не через их имена?

A: Через ординалы.
   http://www.programmingjournal.com/issue4/art3/index.htm



Q: Как я могу отослать сообщение в приложение?

A: http://www.osr.com/ntinsider_online.shtml

   Тебе нужны следующие статьи:

   1997
   1.  Tools  of  the  Trade:  A  Catalog of NT Synchronization
   Mechanisms

   2002
   2. Synchronicity -- A Review of Synchronization Primitives
   3.  Sharing	is Caring -- Sharing Events Between Kernel-User
   Mode.


Q: Как откомпилировать .obj в .dll?

A: MASM:
    link file_name.obj /subsystem:windows
   TASM:
    implib file_name.lib file_name.dll
    tlink /Tpd /aa /z /c file_name.dll


Q: Как	 добавить   скомпилированный   ресурс  (*.res)	в  тело
   exe-файла ?

A: Нужно  добавить  параметр - имя res-файла в командную строку
   компоновщика.


Q: Как перевести HEX/DEC число в строку для вывода на экран?

A: Ковыряйте форум. Эти темы поднимались очень много раз...


Дата: Сен 7, 2003 06:09:11

KiNDeR

Начинай с простого, где какую нужную для программирования утилиту
взять и как её настроить, тоже для реверсинга, начинай SoftIce,
по нему больше всего вопросов задают ;-)


Дата: Сен 7, 2003 06:10:34 · Поправил: Asterix

Я бы вообще советовал сделать что-то вроде как на http://board.win32asmcommunity.net/


Дата: Сен 7, 2003 08:31:15

Asterix
Понял, исправлюсь...


Дата: Сен 7, 2003 18:45:47

KiNDeR

Спасибо! Умничка!


Дата: Сен 8, 2003 19:54:27

KiNDeR
Супер!!!!


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.078