Опыт дизассемблирования большой .com программы [Александр Борисович Крупник] (txt) читать постранично

-  Опыт дизассемблирования большой .com программы  18 Кб скачать: (txt) - (txt+fbd)  читать: (полностью) - (постранично) - Александр Борисович Крупник

Книга в формате txt! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]

???? ?????????????????? ??????? .COM ?????????




?.?.???????



? ?????? ?????? ??? ??????? ?????????? ? ?????????????????? ???????
????????? (???????????? ?????????). ?? ?????? ???????? ??????????, ??
???? ?? ??? ???, ??? ???????????? ??????????? ???????????? ?????? ?????-
????????(DisDoc 2.3), ? ??? ?? ??????? ???????? ??? ??????, ??? ??? ???-
?????? ?????, ? ????? ????????? ???? ??????? ?????????? ???????????????-
????.
?????, ??? ?????, ? ?????????? ????????????????? ??????????? ???????-
?? ? ??? ??????? ??????? ???, ??? ???????????? ?????? ??? ???????????, ?
??? ????????? ?????????????? ????????? ?? ???????? ???, ??? ????. ????? ??
??? ??????? ?????????? ?? ??????? ????????? ?, ???? ? ?????????? ???? ??-
????? ????????, ??? ??????? ???????? ???????: ??????,?????????????? ?????-
????????????? ??????????, ??? ??? ???????, ??????? ?????? ????????????, ???-
?? ???????? ????? ????????, ?????? ??? ??????????????? ????? ?????? ???? ??-
????????????? ?????????.
? ?????????? ? ?????????? ?????????? ? ??? ???????, ??????? ??????????
"??????" ????? ? "???????" , ?.?. ? ?????, ??????? ?? ?????? ???? ?????????
?????????? ????????? ??? ???????????????, ?? ? ????????? ???? ????????, ???-
?? ????????????????? ???????? ?????????.



?????? DisDoc?

SOURSER - ??? ???????? ????? ???, ??? ???? ?? ????? ??? ?????? ? ?????-
????????????. ?????????, ??? ??? ??????????? ?????????????, ??????, ?? ???-
???? ???????????. ? ?????, ??? ????? ?? ???????? ????????????? SOURSER? ????-
?? ????????????. ? ???? ????????? ????? ???????????, ??? ??? ???????????????-
??? ????????? ???????? (?? 7 ??.) SOURSER ????????????????. ????? ?????????
?????? (? ???? ?????? - 58 ?? ), SOURSER ???????? ????? ???????? ?, ?? ???
??????, ?? ???? ??????? ???????????.
????? ????????????? DisDoc 2.3 ??? ??? ???? ?? ?????? ???????. ??????? ??-
????, ? ??????? ?????? ?? ?????????? ??? ? ??????? SOURSERa (?????? 3.07), ???
? ? ??????? ????????????? DisDoc 2.3. ????? ??? ?????? ????? ?????????? ??????-
??? ?????? ???? ??????????????. ? ???, ??, ??? ???? ?????? SOURSER??, ???????
?????, ? ??, ??? ????? DisDoc 2.3, ?????? ??? ?????????, ?????? ?? ????? ???-
?????? ?????. ??? ? ?????????? ?????. ? ???????? ?????? ? ?? ??? ???? ??????-
????? ??????? ???????? ???????????? ????????????? DisDoc - ?????????? ????????,
????????????, ??????? ? ?????????? ???????.
????? ?????? ??????????, ?????????? ????????????? ? ???????? ?? ????????, ????-
??? ?????? DisDoc 2.3

mov cx,WORD PTR ds:d02453 ;02430
b02430: add cx,bx ;02434
mov bx,99e7h ;02436
mov dx,WORD PTR ds:d02449 ;02439
mov al,BYTE PTR ds:d02446 ;0243d
call s383 ; ;02440
push cs ;02443
pop ds ;02444
ret ;02445
;-----------------------------------------------------
d02446 db 00 ;02446 .
d02447 db 00,00 ;02447 ..
d02449 db 00,00 ;02449 ..

? ???? ???????????? ??????? ????????, ??????? ????? ?????? ?????????? ? ?????-
??? ?????????. ????????, ???? ?? ? ???????? ?????????, ???????????? ?????????-
?????????, ?????????? ?????????? ???????? 02434, ?? ??? ???????? ??????????
add cx,bx - ?? ??? ????? ??????????! ????? ?????? ???????? ????? ? ?????????
??????. ?? ??? ????? ????? ??????, ????? ???????? ??? ????? ? ???????? ???????-
??. ????????, ????? b02430 ????? ???????? 02430, ??????? ?????? d02446 ????
???????? 02446 ? ?.?. ?? ?? ????? ????????? ? ? ?????????????. ????? ??????
???????????? ? ??????????? ??????? ??????? ????????, ??????? ????? ??? ??????-
?????? ? ???????? ?????????. ????????, ???????????? s383 ?????????? ? ????????
????????? ?? ???????? 09060. ????? ??????????? ???????? ????????? ?????????
??????????? ???????????? ? ???????? ??????????, ??? ???? ??????????? ?????????
?????????? ???????????? ????? ???? ? ??????, ???????? ?????, ???????? ????????-
?????? ? ???, ??? ???? ?? ????? ????. ??? ???????? ??????????? ???????????.
????? ???????, ??? DisDoc ????? ??????? ??????????, ? ??????? ???? ??? ???-
???, ?, ?????????????, ?????????? ???? ??? ????? ????????????? - ???? ?????.
? ????? ?????? ??????????? ??????????


??????????????? ????????


1. ???????? OFFSETa


???????????, ??? ? ??????, ??????? ????? ????cc?????? ???? ????? ????-
????:


mov ax,bx ;1
shl ax,1 ;004bc ;2
mov si,8429h ;3
add si,ax ;4
push WORD PTR [si] ;5

??? ?????????? ? ??????? si ? ??????? ??????? - ????? 8429h ??? ???????? ?????
?????? ?? ???? ?????? ????????? ???????? ????? ???????, ?? ??????? ?????, ???
??????? si ???????????? ??? ????????? ?????????. ??????, ???????????? ????????
?????? ????????? ????????? ???????:

mov ax,bx ;1
shl ax,1 ;004bc ;2
mov si,OFFSET d08429 ;3
add si,ax ;4
push WORD PTR [si] ;5

................................

d08429 db 0ff,0ff,0f6 ;8429
db 0ff,0d8,0ff,0a6,0ff,60 ;0842c .....`

????????, ????? ? ?????? ????????? ???????? - ????? ?? ???????? ????? ?? ??-
????????????? OFFSET - ????, ???????? ??, ? ?????? ???????????????? ?????????
?????? ????? ????? ?? ?? ????????? ? ?????????, ??? ?? ???. ?? ??????, ??,???
???????, ?? ?????, ????? ????????? ?????????? ??? ?????????????? ?????????????
??????, ? ????, ?????????? ? ??????? ?????? ??????????? ????? ????? ?????? ???-
??, ??? ???????? ? ????????? ????????. ????????, ??????? AND CX,0007h ???????-
?????? MASM?? 5.1 ? TASM?? 1.01 ??? 83E107 ? ???????? 3 ????a. ?? ??? ?? ??-
????? ????? ???? ????????????? ??? 81E10700 ? ???????? 4 ?????. ??-??????, ????
???? ???????? ??????????, ????????? ?? ????????? ???????????, ??? ??? ???
??????? ??????-???? ????????? ???? ????????? ???????? ? ??? "??????????".
????, OFFSET? ????????? ??????? ?????????, ?????? ?? ????????? ??? ???????????.
??????????? ?????? ?????????? ??????????. ????????? ??????????? ????? ????-
??? ???????? ? ?????? ????? ????????? ???????? ??????, ???????? ??????????????:

mov bx,9006h ;08f66
b08f75: mov WORD PTR ds:d087d0,bx ;08f75
.................................
call WORD PTR cs:d087d0 ;08fc3
......................................
;-----------------------------------------------------
push dx ;09006
call s419 ; ;09007
mov al,BYTE PTR [si] ;0900a
mov BYTE PTR [si],0ffh ;0900c
pop dx ;0900f
ret ;09010
;-----------------------------------------------------
????? ????????? ???-?? ?????? - ??? ????? 9006h ? ?????? ??????? ????????? -
???????? ??? ?????? ?????? ???????? ?? ???? ?????? ???????? ??????????, ??-
???????? ?????????????? ? ???? ????????????. ?? ??? ???????? ? ??? ??? ?????,
?????????? ? ???? ????, ???????????? ????? ????????, ??????? ????? ??????????
? ???????? ?????????, ???????????? ??????????????????. ???????? ??????????, ???
? ??????????? ????????? ?????????????? ????????? ????? ????????????, ?, ?????-
????????, 9006h - ??? ????????, ? ?? ?????. ???????? ?????? ???? ?????????
???:

mov bx,OFFSET d09006 ;08f66
......................................
;-----------------------------------------------------
d09006: push dx ;09006
......................................
ret ;09010

?????????? ??? ???? ?????? ?????????? ?????? ????????????, ? ???????
OFFSET ???????? ? ??????? ??????.

s390 proc near
..........................................................
mov ax,WORD PTR [bx+8792h] ;092c7
mov WORD PTR ds:d087d2,ax ;092cb
...........................................................
call WORD PTR cs:d087d2 ;093c8
ret ;093d4
;-----------------------------------------------------
ror ah,1 ;093d5 ;LO]-->[HI..LO]-->[HI
jb b093da ;093d7 ;Jump if < (no sign)
ret ;093d9
b093da: inc si ;093da
ret ;093db
............................................................

????? ????????, ??? ???????????? ????? 8792h, ????? ?????????? ? ???????
?? ??????????, ???????? ? ????? ?????. ???????? ??????????????? ????????, ??-
?????? ??????????????:

d08790 db 00,00,0d5,93 ;08790 ......
.............................................................

?????, ??? ???????? 08792 ????????????? ????? 0d5,93. ?????? ????????