Главная · Поиск книг · Поступления книг · Top 40 · Форумы · Ссылки · Читатели

Настройка текста
Перенос строк


    Прохождения игр    
SCP 090: Apocorubik's Cube
SCP 249: The random door
Demon's Souls |#15| Dragon God
Demon's Souls |#14| Flamelurker

Другие игры...


liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня
Rambler's Top100
Образование - Долгин А.Е. Весь текст 223.76 Kb

Как защитить информацию (пособие по борьбе с хакерами)

Предыдущая страница Следующая страница
1 ... 9 10 11 12 13 14 15  16 17 18 19 20
        cmp     al,1ah          ;подсистема активна ?
        jne     NonSubst        ;нет, возможно переключение
                                ; в режим другого
                                ; видеоадаптера или
                                ; подсистема остутствует
        cmp     bl,07h          ;VGA ?
        je      VgaAct          ; да
        cmp     bl,08h          ;VGA ?
        je      VgaAct          ; да
        cmp     bl,0bh          ;MCGA ?
        je      MCGAct          ; да
        cmp     bl,0ch          ;MCGA ?
        je      MCGAct          ; да
        jmp     NonSubst        ; не найден VGA/MCGA

     Следует отметить,  что все  регистры видеоадаптера  VGA
можно прочитать.  Таким образом  резидентная программа может
определить режим  работы  видеоадаптера  -  графический  или
текстовый. Это  может быть  полезно  для  программ,  которым
требуется  сохранить   текущее  состояние  экрана,  или  для
драйверов русского  языка, чтобы  определить режим  загрузки
знакогенератора.  Знание   режима  видеоадаптера   позволяет
драйверам русского  языка поддерживать старшие режимы работы
нестандартных видеоадаптеров  VGA, не  привязываясь к номеру
видеорежима. Определение текущего режима основано на анализе
содержимого регистра  06h GRAFICS  CONTROLLER (Miscellaneous
Register). Размер  буквы можно  узнать в области данных BIOS
по адресу 40h:85h.
     Приведем фрагмент  кода для  определения режима  работы
видеоадаптера VGA.

; прочитаем GC регистр 06h
        mov     dx,03ceh        ;адресный порт
        mov     al,06h          ;номер регистра
        out     dx,al           ;затребуем регистр
        jmp     short $+2
        inc     dx              ;порт данных
        in      al,dx           ;прочитаем регистр
; анализ типа знакогенератора
        test    al,01           ;графический режим ?
        jz      VgaTxt          ;текстовый режим
        jmp     VgaGraf         ;графический режим



                                                           5


    СПОСОБ ОПРЕДЕЛЕНИЯ ТИПА ОСНОВНОГО И АЛЬТЕРНАТИВНОГО
                       ВИДЕОАДАПТЕРА.

     В данном  разделе мы  расскажем  Вам,  как  определить,
какие видеоадаптеры  установлены на ПЭВМ. Предлагаемый метод
позволяет  идентифицировать  видеоадаптеры  MDA,  CGA,  EGA,
MCGA, VGA,  HGC,  HGC+  и  HGC  In  Color  и  совместимые  с
HERCULES, которые мы будем называть MGA.

           ПОРЯДОК ИДЕНТИФИКАЦИИ ВИДЕОАДАПТЕРОВ.

     Приведем  порядок,  в  котором  Вам  следует  выполнять
идентификацию видеоадаптеров.

     1.  Проверить   наличие  видеоподсистемы   VGA/MCGA  по
функции INT  10h, AX=1A00h.  Если подсистема активна, то код
основного и  альтернативного видеоадаптера  будет передан  в
регистрах BL и BH.
     2. Если  в шаге  1 обнаружен  монохромный  дисплей,  то
следует удостовериться,  не является  ли он  адаптером  типа
HERCULES. Метод  определения  видеоадаптеров  типа  HERCULES
рассмотрим ниже.
     3.  Если  функция  шага  1  не  выполнена,  то  следует
проверить наличие  видеоадаптера EGA  по  функции  INT  10h,
AH=12h, BL=10h.
     4.  Если   видеоадаптер  EGA   обнаружен,  то   следует
определить, работает  EGA в  цветном или монохромном режиме.
Метод определения основан на анализе переключателей на плате
EGA, полученных по функции INT 10h, AH=12h, BL=10h в младших
четырех  битах   регистра  CL.   Комбинация   переключателей
следующая:

000X - обычный цветной дисплей;
001X - цветной дисплей с расширенными возможностями;
010X - монохромный терминал;
011X - обычный цветной дисплей;
100X - цветной дисплей с расширенными возможностями;
101X - монохромный терминал.

     5. Если  видеоадаптер EGA работает в цветном режиме, то
следует   проверить,    не   подключен    ли    видеоадаптер
MDA/HERCULES.
     6. Если видеоадаптер EGA работает в монохромном режиме,
то следует проверить, не подключен ли видеоадаптер CGA.
     8. Если  видеоадаптер  EGA  не  обнаружен,  то  следует
проверить наличие видеоадаптеров MDA/HERCULES или CGA. Выбор
текущего  видеоадаптера  при  одновременном  наличии  CGA  и
MDA/HERCULES производится  на основе  анализа видеорежима  в
области  данных  BIOS  по  адресу  40h:49h.  Видеорежим  07h
указывает на активность видеоадаптера MDA/HERCULES.



                                                           6


            МЕТОД ОПРЕДЕЛЕНИЯ ВИДЕОАДАПТЕРА CGA.

     Видеоадаптер CGA  определяется путем  проверки  наличия
6845 CHIP (CRT CONTROLLER) с индексным регистром 3D4h. Метод
проверки наличия 6845 описан ниже.

       МЕТОД ОПРЕДЕЛЕНИЯ ВИДЕОАДАПТЕРА MDA/HERCULES.

     Проверка наличия  видеоадаптера  MDA  или  HERCULES,  а
также подобных им адаптеров выполняется на основе следующего
алгоритма.
     1. Проверяется  наличие 6845  CHIP (CRT  CONTROLLER)  с
индексным регистром 3B4h.
     2. Считывается  содержимое порта 3BAh  (состояние CRTC)
и проверяется,  изменяется ли  бит 7 этого порта (индицирует
VERTICAL SYNC).  Если нет,  то видеоадаптер классифицируется
как MDA.
     3. Адаптеры  фирмы HERCULES идентифицируются битами 4-6
состояния CRTC:

000 - HGC;
001 - HGC+;
101 - InColor Card).
остальное - совместимый с HERCULES монохромный графичесий
адаптер - MGA.

     Следует отметить,  что идентификация типа видеоадаптера
фирмы HERCULES на базе бит 4-6 может быть недостоверна, т.к.
многие   фирмы   разработчики   совместимых   видеоадаптеров
неправильно устанавливают эти биты.
     Приведем фрагмент  кода, идентифицирующий видеоадаптеры
MDA/HERCULES/MGA.

        mov     dx,3B4h         ; проверить наличие 6845
                                ; CHIP.
        call    Test_6845       ; процедура проверки наличия
                                ; 6845
                                ; CF=1 - 6845 не найден
                                ; CF=0 - 6845 найден
        jc      NonMdaHgc       ;6845 CHIP отсутствует.
                                ;нет MDA/HERCULES/MGA.
        mov     dx,3BAh         ; считать регистр состояния
        in      al,dx           ; CRTC.
        and     al,80h          ; изолировать бит 7
                                ; (VERTICAL SYNC).
        mov     ah,al           ; проверим, изменяется ли
                                ; бит 7.
        mov     cx,8000h        ; количество повторов.
TBIT7:  in      al,dx           ; регистр состояния CRTC
        and     al,80h          ; изолировать бит 7
                                ; (VERTICAL SYNC).
        cmp     ah,al           ; сравним значения
        loope   TBIT7           ; повторим



                                                           7


        je      MDAFOUND        ; переход, если бит 7 не
                                ; изменился. Только MDA
; определим тип адаптера HERCULES.
        in      al,dx           ; считать состояние CRTC.
        and     al,70h          ; изолировать биты 4-6.
        jz      HGCFOUND        ; переход, если это HGC.
        cmp     al,10h          ; это HGC+?
        je      HGCPFOUND       ; да, переход.
        cmp     al,50h          ; это InColor Card?
        je      HGCICFOUND      ; да, переход.
        jmp     MGAFOUND        ; адаптер, совместимый с
                                ; HERCULES - MGA.


            МЕТОД ОПРЕДЕЛЕНИЯ НАЛИЧИЯ 6845 CHIP

     6845 CHIP  используется в  видеоадаптерах  MDA,  CGA  и
HERCULES в  качестве CRT  CONTROLLER. Техника    определения
наличия этой микросхемы заключается в том,  что в регистр 15
CRT  CONTROLLER   (младший  байт   местоположения   курсора)
записывается значение,  которое затем  считывается  обратно.
Если возвращено  записанное значение,  то 6845  CHIP есть  в
компьютере.
     Приведем  фрагмент  кода  для  определения  6845  CHIP.
Считается, что  при входе  в программу  регистр DX  содержит
адрес индексного регистра 6845 CHIP ( 3D4h/3B4h ).

        cli                     ; запретить прерывания.
        mov     al,15           ; подготовиться к работе с
                                ; регистром 15 CRTC.
        out     dx,al           ; передать номер регистра
        jmp     short $+2
        inc     dx              ; регистр данных
        in      al,dx           ; считать текущее значение
                                ; регистра 15.
        mov     ah,al           ; запомнить считанное
                                ; значение
        mov     al,66h          ; записать в регистр 15
                                ; тестовое значение.
        out     dx,al           ; передадим
        jmp     short $+2
        mov     cx,400h         ; дождаться, пока 6845 все
                                ; это воспримет.
W1:     loop    W1              ; ждем
        in      al,dx           ; считать тестовое значение.
        xchg    ah,al           ; восстановить
                                ; первоначальное значение
                                ; регистра 15.
        out     dx,al           ; передадим
        jmp     short $+2
        sti                     ; разрешить прерывания.
        cmp     ah,66h          ; считано тестовое значение?
        je      F6845           ; да, 6845 найден.
        jmp     NF6845          ; 6845 не найден



                                                           8


                      ОПЫТ ПРИМЕНЕНИЯ.

     Описанный  механизм  был,  в  частности,  применен  при
разаработке универсального  драйвера русского  языка. Авторы
стокнулись с  тем фактом,  что ни  один из  существоваших на
этот момент драйверов не поддерживал работу с альтернативным
видеоадаптером и  не обеспесчивал  расширенных  режимов  VGA
видеоадаптера.  Любая   попытка  перейти  на  альтернативный
видеоадаптер  приводила   к  срыву   синхронизации.   Авторы
использовали комбинации  видеоадаптеров EGA/HGC  и  VGA/MGA.
Разработанный авторами  драйвер поддерживает  все  описанные
выше комбинации  видеоадаптеров. Он  может  запускаться  как
драйвер  из   CONFIG.SYS  или   использоваться  как  обычная
программа и запускаться, например, из AUTOEXEC.BAT.







                                                                      1


                                               ГРУППА ПРОГРАММИСТОВ 2B.

          КАК СКОПИРОВАТЬ ЗАЩИЩЕННУЮ ОТ КОПИРОВАНИЯ ДИСКЕТУ.

     Статья посвящена анализу форматов защищенных от копирования дискет
и возможным методам их копирования.

                НЕСКОЛЬКО СЛОВ О ЗАЩИТЕ ОТ КОПИРОВАНИЯ.

     Системы  защиты   от   копирования   предотвращают   использование
"ворованных" копий  программного обеспечения. Разработка таких систем в
условиях нашей  страны, когда  огромные толпы  программистов  стремятся
всячески  вскрыть   защищенные  программы,  является  делом  достаточно
сложным и  требует определенной квалификации и опыта. В настоящее время
на  рынке  программного  обеспечения  средств  защиты  появилось  много
программ, обеспечивающих  защиту от  копирования. Зачастую реклама этих
программ не  соответствует действительным  возможностям. Авторы  решили
приобщиться к  когорте программистов,  вскрывающих  системы  защиты  от
копирования. При  этом мы не хотим дискредитировать сами системы защиты
от копирования,  а просто  хотим предостеречь  возможных покупателей от
использования несовершенных  систем с  одной стороны,  а также привлечь
новые отряды  высококвалифицированных программистов к разработке систем
защиты, которые действительно всем нам очень нужны.
     В основном все программисты, занимающиеся вскрытием защит, идут по
пути  преодоления   систем  защиты   от  отладчиков,   чтобы  выполнить
модификацию  тех   частей  программы,   которые  отвечают  за  проверку
легальности копии.  Эта работа  требует высокой  квалификации. Мы пошли
несколько другим  путем. Система  защиты предполагает  наличие дискеты,
называемой ключевой,  и не  копируемой стандартными средствами, а также
Предыдущая страница Следующая страница
1 ... 9 10 11 12 13 14 15  16 17 18 19 20
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 
Комментарии (4)

Реклама