Расшифровка пароля. Запуск программы SNIPPER. Работа в отладчике TD. Начало работы программы

Страницы работы

Фрагмент текста работы

Alt: F2-Bkpt at F3-Close F4-Back F5-User F6-Undo F7-Instr F8-Rtn F9-To F10-Local

Экран 2. Введен и записан по адресу 017BH первый символ тестового пароля

В данном примере введен пароль’123’,  в нижнем окне появилось шестнадцатеричное представление введенного пароля:

‘31 32  33’ по указанному адресу

Ё  File  View  Run  Breakpoints  Data  Options  Window  Help             READY

╔═[■]═CPU 80486═══════════════════════════════════════════════╤═══════1════[]═╗

║  cs:0100 B409           mov    ah,09                        │  ax 0133   │c=0║

║  cs:0102 BA8F01         mov    dx,018F                      │  bx 0000   │z=0║

║  cs:0105 CD21           int    21                           │  cx 0007   │s=0║

║  cs:0107 B90A00         mov    cx,000A                      │  dx 018F   │o=0║

║  cs:010A BE0000         mov    si,0000                      │  si 0003   │p=1║

║  cs:010DB401           mov    ah,01                        │  di 0000   │a=0║

║  cs:010F CD21           int    21                           │  bp 0000   │i=1║

║  cs:0111 3C0D           cmp    al,0D                        │  sp FFFC   │d=0║

║  cs:0113 7407           je     011C                         │  ds 4E86   │   ║

║  cs:0115 88847B01       mov    [si+017B],al                 │  es 4E86   │   ║

║  cs:0119 46             inc    si                           │  ss 4E86   │   ║

║  cs:011A E2F1           loop   010D                         │  cs 4E86   │   ║

║  cs:011C B409           mov    ah,09                        │  ip 010D   │   ║

║  cs:011E BAFE01         mov    dx,01FE                      │            │   ║

║  cs:0121 CD21           int    21                           │            │   ║

╟─────────────────────────────────────────────────────────────┼────────────┴───╢

║  ds:0178 00 CD 21 31 32 33 00 00  ═!123                     ‑  ss:0004 9A00  ║

║  ds:0180 00 00 00 00 00 00 00 00                            ■  ss:0002 9FFF  ║

║  ds:0188 00 00 00 00 00 00 00 69        i                   ▒  ss:0000 20CD  ║

║  ds:0190 6E 70 75 74 20 70 61 73 nput pas                   ▒  ss:FFFE 0000  ║

║  ds:0198 73 77 6F 72 64 3A 20 24 sword: $                     ss:FFFC0000  ║

╚▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒■▒▒▒▒▒▒▒▒▒▒▒▒▒▒╧═══════════════─┘

Alt: F2-Bkpt at F3-Close F4-Back F5-User F6-Undo F7-Instr F8-Rtn F9-To F10-Local

Экран 3. Введен и записан по адресу 017BH пароль ‘123’(31 32 33Н)

Ввод пароля завершается нажатием клавиши Еnter (0DH)

-----------------------------------------------------------------------------Turbo Debugger  Version 2.0  Copyright (c) 1988, 1990 Borland International    

input password: 123                                                            

input fio: 

Экран 4. По ALT F5 просмотр сообщений программы после ввода пароля и приглашения к вводу имени пользователя

После этого совершенно аналогичным образом вводится имя пользователя.

Ё  File  View  Run  Breakpoints  Data  Options  Window  Help             READY

╔═[■]═CPU 80486═══════════════════════════════════════════════╤═══════1════[]═╗

║  cs:0130 B401           mov    ah,01                        │  ax 010D   │c=0║

║  cs:0132 CD21           int    21                           │  bx 0000   │z=0║

║  cs:01343C0D           cmp    al,0D                        │  cx 004C   │s=0║

║  cs:0136 7407           je     013F                         │  dx 01A0   │o=0║

║  cs:0138 8884AC01       mov    [si+01AC],al                 │  si 0003   │p=1║

║  cs:013C 46             inc    si                           │  di 0000   │a=0║

║  cs:013D E2F1           loop   0130                         │  bp 0000   │i=1║

║  cs:013F B409           mov    ah,09                        │  sp FFFC   │d=0║

║  cs:0141 BAFC01         mov    dx,01FC                      │  ds 4E90   │   ║

║  cs:0144 CD21           int    21                           │  es 4E90   │   ║

║  cs:0146 BAAC01         mov    dx,01AC                      │  ss 4E90   │   ║

║  cs:0149 CD21           int    21                           │  cs 4E90   │   ║

║  cs:014B BAFE01         mov    dx,01FE                      │  ip 0134   │   ║

║  cs:014E CD21           int    21                           │            │   ║

║  cs:0150 B90500         mov    cx,0005                      │            │   ║

╟─────────────────────────────────────────────────────────────┼────────────┴───╢

║  ds:01A8 6F 3A 20 24 41 42 43 24 o: $ABC$                   ‑  ss:FFFE 0000  ║

║  ds:01B0 24 24 24 24 24 24 24 24 $$$$$$$$                   ■  ss:FFFC0000  ║

║  ds:01B8 24 24 24 24 24 24 24 24 $$$$$$$$                   ▒  ss:FFFA 3206  ║

║  ds:01C0 24 24 24 24 24 24 24 24 $$$$$$$$                   ▒  ss:FFF8 4E90  ║

║  ds:01C8 24 24 24 24 24 24 24 24 $$$$$$$$                     ss:FFF6 0135  ║

╚▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒■▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒╧═══════════════─┘

Alt: F2-Bkpt at F3-Close F4-Back F5-User F6-Undo F7-Instr F8-Rtn F9-To F10-Local

Экран 5. Введено и записано по адресу 01AC тестовое имя пользователя

ABC’(41 42 43Н)

-  Далее в программе в цикле сравнивает содержимое памяти по адресу, начиная с 0201h, с содержимым памяти по адресу 017Bh, при этом применяется шифрование с помощью команды XOR (исключающее ИЛИ) с числом 073H. Команда XOR побитово помещает в первый операнд бит  0, если соответствующие биты операндов совпадают и 1, если биты различны.

После команды XOR (операнд 075Н) первая буква пароля по адресу 0201Н (FE H)дешифрована в регистре BL  (8B H = ‘Л’) Значит, первая буква пароля – ‘Л’

Ё  File  View  Run  Breakpoints  Data  Options  Window  Help 

╔═[■]═CPU 80486═══════════════════════════════╤═══════1═[][]═╗

║  cs:014B BAFE01         mov    dx,01FE      │  ax 0924   │c=1║

║  cs:014E CD21           int    21           │  bx 008B   │z=0║

║  cs:0150 B90500         mov    cx,0005      │  cx 0005   │s=1║

║  cs:0153 BE0000         mov    si,0000      │  dx 01FE   │o=1║

║  cs:0156 8A9C0102       mov    bl,[si+0201] │  si 0000   │p=1║

║  cs:015A 80F375         xor    bl,75        │  di 1AA4   │a=1║

║  cs:015D 389C7B01       cmp    [si+017B],bl │  bp 0100   │i=1║

║  cs:0161750D           jne    0170        │  sp FFFC   │d=0║

║  cs:0163 46             inc    si           │  ds 5173   │   ║

║  cs:0164 E2F0           loop   0156         │  es 5173   │   ║

║  cs:0166 B409           mov    ah,09        │  ss 5173   │   ║

║  cs:0168 BA1402         mov    dx,0214      │  cs 5173   │   ║

║  cs:016B CD21           int    21           │  ip 0161   │   ║

╟─────────────────────────────────────────────┤            │   ║

║  ds:0200 24 FE FB F9 FD FF 20 20 $■√∙¤      ‑            │   ║

║  ds:0208 20 20 20 20 20 20 20 20            ■────────────┴───╢

║  ds:0210 20 20 20 20 20 20 20 20            ▒  ss:FFFE 0000  ║

║  ds:0218 20 20 20 20 20 20 20 20              ss:FFFC0000  ║

╚▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒■▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒╧═══════════════─┘

Экран 6. Послекоманды XOR (операнд 075Н)

первая буква пароля по адресу 0201Н (FEH)дешифрована в регистре BL

 (8BH = ‘Л Значит, первая буква пароля – ‘Л

Проверим, правильно ли определен пароль:

- Применим операцию XOR c 075H ко всем буква пароля по адресу 0201Н:

FE FB F9 FD FF

HEX

FE

FB

F9

FD

FF

BIN

1111 1110

1111 1011

1111 1001

1111 1101

1111 1111

075H

0111 0101

0111 0101

0111 0101

0111 0101

0111 0101

Результат

XOR

1000 1011

1000 1110

1000 1100

1000 1000

1000 1010

HEX

8B

8E

8C

88

8A

Символ

Л

О

М

И

К

Ё  File  View  Run  Breakpoints  Data  Options  Window  Help 

╔═[■]═CPU 80486═══════════════════════════════╤═══════1═[][]═╗

║  cs:014B BAFE01         mov    dx,01FE      │  ax 0924   │c=1║

║  cs:014E CD21           int    21           │  bx 008B   │z=0║

║  cs:0150 B90500         mov    cx,0005      │  cx 0005   │s=1║

║  cs:0153 BE0000         mov    si,0000      │  dx 01FE   │o=1║

║  cs:0156 8A9C0102       mov    bl,[si+0201] │  si 0000   │p=1║

║  cs:015A 80F375         xor    bl,75        │  di 1AA4   │a=1║

║  cs:015D 389C7B01       cmp    [si+017B],bl │  bp 0100   │i=1║

║  cs:0161750D           jne    0170        │  sp FFFC   │d=0║

║  cs:0163 46             inc    si           │  ds 5173   │   ║

║  cs:0164 E2F0           loop   0156         │  es 5173   │   ║

║  cs:0166 B409           mov    ah,09        │  ss 5173   │   ║

║  cs:0168 BA1402         mov    dx,0214      │  cs 5173   │   ║

║  cs:016B CD21           int    21           │  ip 0161   │   ║

╟─────────────────────────────────────────────┤            │   ║

║  ds:0178 00 CD 21 31 32 33 00 00  ═!123     ‑            │   ║

║  ds:0180 00 00 00 00 00 00 00 00            ■────────────┴───╢

║  ds:0188 00 00 00 00 00 00 00 69        i   ▒  ss:FFFE 0000  ║

║  ds:0190 6E 70 75 74 20 70 61 73 nput pas     ss:FFFC0000  ║

╚▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒■▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒╧═══════════════─┘

Экран 7.  Первая буква тестового пароля ‘123’ по адресу 017Bне проходит сравнение командой CMPс содержимым BL (8В H = ‘Л’), первой буквы верного пароля. Происходит переход на вывод сообщения об ошибке.

Результат работы программы с введенным тестовым паролем ‘123’ – сообщение об ошибке

------------------------------------------------------------------------------Turbo Debugger  Version 2.0  Copyright (c) 1988, 1990 Borland International    

input password: 123                                                            

input fio: ABC                                                                 

ABC                                                                            

П Л О Х О !                                              

------------------------------------------------------                        

Вам  НЕ УДАЛОСЬ обойти пароль в программе                                

Попробуйте еще поработать с AFD-ой                                    

ЖЕЛАЮ  ДАЛЬНЕЙШИХ  ТВОРЧЕСКИХ  УСПЕХОВ !!!                             

------------------------------------------------------ 

Экран 8. По ALTF5 просмотр сообщения об ошибке программы после ввода тестового пароля ‘123’

Проверим пароль: ‘ЛОМИК’

------------------------------------------------------------------------------Turbo Debugger  Version 2.0  Copyright (c) 1988, 1990 Borland International    

input password: ЛОМИК                                                           

input fio: ЮЛЯ ВОЛКОВА                                                         

ЮЛЯ ВОЛКОВА                                                                    

ПОЗДРАВЛЯЮ !                                              

------------------------------------------------------                        

Вы успешно справились с заданием и заслуживаете зачета                        

Вам осталось только подозвать преподавателя и сказать                          

КАКОЙ же ПАРОЛЬ был в ЗАДАЧЕ?                                     

------------------------------------------------------

Экран 9. По ALTF5 просмотр сообщения об ошибке программы после ввода верного  пароля ‘ЛОМИК’

Пароль  правильный.

2. Дизассемблирование.

2.1. Получение текста программы с использованием дисассемблера SOURCER

┌──────────────────────────────────────────────────────────────────────────────┐

│ █▀▀▀▀ █▀▀▀█ █   █ █▀▀▀▀ █▀▀▀▀ █▀▀▀▀ █▀▀▀▀             V COMMUNICATIONS, INC. │

│ ▀▀▀▀█ █   █ █   █ █     █     █▀▀▀  █                 Copyright (c)1988-1990 │

│ ▀▀▀▀▀ ▀▀▀▀▀ ▀▀▀▀▀ ▀     ▀▀▀▀▀ ▀▀▀▀▀ ▀  TM               V3.07  s/n B116236   │

│                                                                              │

│  F1 - help    ┌ File format, list(.lst)/source(.asm)  Analysis options menu  │

│  ┌────────────┴───────────────────────────────────────────────────────────┐  │

│   ┌ Output filename   ┌ Header title            Xref (cross reference) ON    │

│  ┌┴───────────┐┌──────┴──────────────────────────┐  Press return when done   │

│   ooo_06.asm                                                        Page 3   │

│   5102:0234  32 D2             xor   dl,dl           ; Zero register         │

│   5102:0236  CD 11             int   11h             ; Put equip bits in ax  │

│   5102:0238  0E A1E4           mov   cx,data_6       ; (6033:A1E4=3C1h)      │

│  └┬───┘              └┬─────────────────└┬─────────┘  └──┬─────────────────┘ │

│   └ Segment display   └ Word case style  └ Label type    └ Remarks - all     │

│         on/off                             (decimal)                         │

│  Target Assembler: MASM-5.1                                Press "Q" to Quit │

├───────────────────────────────┬──────────────┬───────────────────────────────┤

│  Input filename  ooo_06.com   │ Label Counts │  Drive e: used for output     │

│  Beginning addr  42D1:0100    │  Data   103  │         > 100 Megs available  │

│  Ending address  42D1:046F    │  Sub      0  │  431K bytes free (using EMS)  │

│  Math  off   uP  8086/8088    │  Loc      0  │  Code style .COM    Passes 5  │

├───────────────────────────────┴──────────────┴───────────────────────────────┤

│  Select highlighted options desired, and enter "G" to Go begin processing

Похожие материалы

Информация о работе