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

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


    Прохождения игр    
Demon's Souls |#13| Storm King
Demon's Souls |#11| Мaneater part 2
Demon's Souls |#10| Мaneater (part 1)
Demon's Souls |#9| Heart of surprises

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


liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня
Rambler's Top100
Образование - Ральф Бургер Весь текст 616.55 Kb

Большой справочник по компьютерным вирусам

Предыдущая страница Следующая страница
1 2  3 4 5 6 7 8 9 10 11 12 13 14 ... 53
и может быть активизирована в  кратчайшее время. Активизация
таких программ осуществляется чаще всего при помощи так на-
зываемого прерывания. Одно такое прерывание (Interrupt) бу-
дет описано в следующем примере.
     Вы пишете письмо.  В  середине  предложения  звонят  в
дверь. Вы  откладываете  ручку  в сторону,  идете к двери и
приглашаете пришедшего войти. Неожиданно звонит телефон. Вы
просите посетителя немного подождать, идете к телефону, от-
вечаете и беседуете с абонентом.  Затем Вы завершаете теле-
фонный разговор  и можете посвятить себя посетителю.  После
того, как посетитель уйдет,  Вы вернетесь к письму и закон-
чите его. Это пример двойного вложенного прерывания поясня-
ет проблемы,  возникающие при обработке прерываний, в част-
ности, задание  различных  приоритетов  (если  одновременно
звонят дверной звонок и телефон,  на что реагировать в пер-
вую очередь?) и сохранение определенного состояния прерыва-
ния (что Вы делали в то время,  когда зазвонил дверной зво-
нок - писали или говорили по телефону?).  С этими основными
проблемами сталкивается процессор при обработке прерывания.
     При возникновении  прерывания  обычная обработка прог-
раммы прерывается,  и управление передается другой програм-
ме. Затем  программа обработки прерывания определяет,  вер-
нуться ли в вызывающую программу или  продолжить выполнение

                           - 15 -
задачи.

     1.2   Обработанные программы
    ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
     Обычно каждый  программист  старается обеспечить рабо-
тоспособность программного обеспечения.  Например он  стре-
мится избежать  пресловутого  "зависания"  ЭВМ (постоянного
повторения программного цикла без возможности из него  вый-
ти). Он  старается  также сделать так,  чтобы неверный ввод
пользователя не мог повредить массивы  данных  и  программ.
Программирование такой  защиты осуществляется особенно тща-
тельно и является одной из важнейших  проблем,  возникающих
при создании программного обеспечения.
     Если необходимо внести изменения в программу,представ-
ленную в виде объектного кода,  следует учитывать серьезные
трудности, сопровождающие этот процесс, хотя бы уже потому,
что фирмы-создатели программного обеспечения обычно не пос-
тавляют вместе с программой ее исходного текста.  Эта  мера
предусмотрена для  защиты от несанкционированного копирова-
ния и является несостоятельной.  Еще ни одна программа,  ни
одна защита от копирования не устояла от "разрушения".
     Несмотря на серьезные трудности, связанные с этим заня-
тием,  одним  из  наиболее распространенных увлечений компь-
ютерных чудаков является изменение записей о защите  авторс-
ких прав в нелегально скопированных или официально купленных
программах.  Так как смотреть на это не очень приятно, прог-
раммисты жертвуют (или фирмы-изготовители программного обес-
печения заставляют жертвовать) свое  рабочее  время  на  то,
чтобы  сделать запись об авторских правах неизменяемой.  Это
осуществляется либо путем последующего опроса во  время  вы-
полнения программы,  либо путем декодирования закодированной
цепочки символов. И все же это не отбивает охоту у любителей
вносить изменения в имеющиеся, представленные только объект-
ным кодом программы.
     Инструменты, предлагаемые для этой цели, многочисленны
и очень просты.  Одним из таких инструментов  является  так
называемый дизассемблер.  Это такая программа,с помощью ко-
торой можно при на личии некоторых специальных знаний полу-
чить из объектного кода исходный текст,  который позволяет,

                           - 16 -
во-первых, понять и выполнить программу, во-вторых, приспо-
собить ее к своим потребностям.
     Используя этот инструмент, можно, например, ввести оп-
ределенные изменения в программу расчета зарплаты для обес-
печения собственной выгоды.  Если такую обработку проделать
умело, пользователь  программы долго не заметит никаких из-
менений.
     У читателя, однако, не должно создаваться впечатления,
что такую обработку программы может выполнить  любой  люби-
тель. Для  работы с существующими объектными кодами необхо-
димы достаточно глубокие профессиональные знания.

     1.3        Обрабатывающие программы
     ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
     Конечно, выполнение  соответствующей  обработки  можно
возложить на   программу.  Каждая  программа  предназначена
обычно для изменения данных.  Это относится и  к  редактору
текста, и к программе для подготовки счетов-фактур. Следую-
щий пример показывает,  что эти изменения в массивах данных
могут выходить за пределы,  представляемые и желаемые поль-
зователем:
     Следующий текст сначала был записан при помощи функции
COPY операционной системы MS-DOS в файл test.txt,  а  затем
выведен на экран при помощи TYPE :
                         C:>TYPE TEST.TXT
     Это тест, который показывает, сколько посторонних сим-
волов вставляет некоторый текстовый редактор в чистый ASCII
-текст.
     (Dies ist ein Test, der belegt, wie viele Fremdzeichen
manche Textsysteme in einen reinen ASCII-Text einstreuen.)
     Такой же текст (на немецком языке) был затем введен при
помощи текстового редактора (WordStar 2000) в документальном
формате и также при помощи TYPE выведен на экран монитора.
     C:>TYPE TEST1.TXT

 Ь  WS2000 1.00         1IBMGRAPHIC     5   Ь
 Ь   0  0 Ь                                           Ьi
 0   0iЬЬ^  13^Ь Ь_   4_Ь Ь [ A   A


                           - 17 -
     Наглядно видно,  что теперь этот текст не  может  быть
обработан функцией  TYPE.  Этот эффект можно более подробно
исследовать при помощи отладчика.
     Сначала текст, введенный при помощи COPY :

     0100 44 69 65 73 20 69 73 74-20 65 69 6E 20 54 65 73
          D  i  e  s     i  s  t     e  i  n     t  e  s
     0100 74 2C 20 64 65 72 20 62-65 6C 65 67 74 2C 20 77
          t  ,     d  e  r     b     l  e  g  t  ,     w
     0120 69 65 76 69 65 6C 65 20-46 72 65 6D 64 7A 65 69
          i  e  v  i  e  l  e     F  r  e  m  d  z  e  i
     0130 63 68 65 6E 20 6D 61 6E-63 68 65 20 54 65 78 74
          c  h  e  n     m  a  n  c  h  e     T  e  x  t
     0140 73 79 73 74 65 6D 65 20-69 6E 20 65 69 6E 65 6E
          s  y  s  t  e  m  e     i  n     e  i  n  e  n
     0150 72 65 69 6E 65 6E 20 41-53 43 49 49 2D 54 65 78
          r  e  i  n  e  n     A  S  C  I  I  -  T  e  x
     0160 74 20 65 69 6E 73 74 72-65 75 65 6E 2E 0D 0A 00
          t     e  i  n  s  t  r  e  u  e  n  .  .  .  .


     Ясно видно,  что текст состоит из ASCII-символов, коды
которых лежат в диапазоне от шестнадцатиричных 20 до  шест-
надцатиричных 80. Единственные управляющие символы, которые
были использованы,- это 0Dh и 0Ah (возврат каретки и  пере-
вод строки).
     Теперь посмотрим текст,  введенный при помощи WordStar
2000:
     0100 7F 20 57 53 32 30 30 30-FF 31 2E 30 30 FF FF FF
          .     W  S  2  0  0  0  .  1  .  0  0  .  .  .
     0110 FF 20 31 49 42 4D 47 52-41 50 48 49 43 FF FF FF
          .     1  I  B  M  G  R  A  P  H  I  C  .  .  .
     0120 FF 20 20 20 20 20 20 35-20 7F 0A 7F 1C 20 30 20
          .                    5     .  .  .  .     0
     0130 20 30 1C 7F 0A 7F 69 20-30 20 20 30 69 7F 7F 5E
             0  .  .  .  .  i     0        0  i  .  .  ^
     0140 20 31 33 5E 7F 7F 5F 20-20 34 5F 7F 7F 5B 01 41
             1  3  ^  .  .  _        4  _  .  .  [  .  A
     0150 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF

                           - 18 -
          .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
     0160 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
          .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
     0170 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
          .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
     0180 FF FF FF FF FF FF FF FF FF FF FF FF FF FF 01 41
          .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A
     0190 01 06 01 0B 01 10 01 15-01 1A 01 1F 01 24 01 29
          .  .  .  .  .  .  .  .  .  .  .  .  .  $  .  )
     01A0 01 2E 01 33 01 38 01 3D-FF FF FF FF FF FF FF FF
          .  .  .  3  .  8  .  =  .  .  .  .  .  .  .  .
     01B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
          .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
     01C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF 5B 7F
          .  .  .  .  .  .  .  .  .  .  .  .  .  .  [  .
     01D0 7F 61 37 31 61 7F 7F 5C-31 30 5C 7F 7F 5D 31 30
          .  a  7  1  a  .  .  \  1  0  \  .  .  ]  1  0
     01E0 5D 7F 7F 62 31 31 62 7F-7F 65 31 65 7F 7F 66 31
          ]  .  .  b  1  1  b  .  .  e  1  e  .  .  f  1
     01F0 66 7F 7F 67 31 37 7F 7F-76 7F 7F 5B 01 41 01 06
          f  .  .  g  1  g  .  .  v  .  .  [  .  A  .  .
     0200 01 0B 01 10 01 15 01 1A-01 1F 01 24 01 29 01 2E
          .  .  .  .  .  .  .  .  .  .  .  $  .  )  .  .
     0210 01 33 01 38 01 3D FF FF-FF FF FF FF FF FF FF FF
          .  3  .  8  .  =  .  .  .  .  .  .  .  .  .  .
     0220 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF
          .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
     0230 FF FF FF FF FF FF FF FF-FF FF FF FF FF 4B 01 06
          .  .  .  .  .  .  .  .  .  .  .  .  .  K  .  .
     0240 01 0B 01 10 01 29 FF FF-FF FF FF FF FF FF FF FF
          .  .  .  .  .  )  .  .  .  .  .  .  .  .  .  .
     0250 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF
          .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
     0260 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF
          .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
     0270 FF FF FF FF FF FF FF FF-FF FF FF FF 5B 7F 7F 5B
          .  .  .  .  .  .  .  .  .  .  .  .  [  .  .  [
     0280 01 4B 01 06 01 0B 01 10-01 29 FF FF FF FF FF FF
          .  K  .  .  .  .  .  .  .  )  .  .  .  .  .  .

                           - 19 -
     0290 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF
          .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
     02A0 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF
          .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
     02B0 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF
          .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
     02C0 01 41 01 06 01 0B 01 10-01 29 FF FF FF FF FF FF
          .  A  .  .  .  .  .  .  .  )  .  .  .  .  .  .
     02D0 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF
          .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
     02E0 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF
          .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
     02F0 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF
          .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
     0300 5B 7F 44 69 65 73 20 69-73 74 20 65 69 6E 20 54
          [  .  D  i  e  s     i  s  t     e  i  n     T
     0310 65 73 74 2C 20 64 65 72-20 62 65 6C 65 67 74 2C
          e  s  t  ,     d  e  r     b  e  l  e  g  t  ,
     0320 20 77 69 65 76 69 65 6C-65 20 46 72 65 6D 64 7A
             w  i  e  v  i  e  l  e     F  r  e  m  d  z
     0330 65 69 63 68 65 6E 20 6D-61 6E 63 68 65 20 54 65
          e  i  c  h  e  n     m  a  n  c  h  e     T  e
     0340 78 74 7F 1F 7F 7F 03 7F-73 79 73 74 65 6D 65 20
          x  t  .  .  .  .  .  .  s  y  s  t  e  m  e
     0350 69 6E 20 65 69 6E 65 6E-20 72 65 69 6E 65 6E 20
          i  n     e  i  n  e  n     r  e  i  n  e  n
     0360 41 53 43 49 49 2D 54 65-78 74 20 65 69 6E 73 74
          A  S  C  I  I  -  T  e  x  t     e  i  n  s  t
     0370 72 65 75 65 6E 2E 0A 00-00 00 00 00 00 00 00 00
          r  e  u  e  n  .  .  .  .  .  .  .  .  .  .  .

     приведенный текст во много раз больше введенного.  Не-
которые управляющие символы,  стоящие в заголовке, препятс-
твуют чтению  текста при помощи TIPY,  такой текст не может
быть использован какой-либо другой системой  для  обработки
текстов.
     Однако управляющие символы стоят не только в  заголов-
ке, но и в середине текста, а именно на месте верстки строк
Предыдущая страница Следующая страница
1 2  3 4 5 6 7 8 9 10 11 12 13 14 ... 53
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 
Комментарии (1)

Реклама