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

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


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

????????,
??? ?? ???????? 093d5 ? ???????? ????????? ?????????? ???????? ????????? ????

ror ah,1 ;093d5 !!!!!! ;LO]-->[HI..LO]-->[HI
jb b093da ;093d7 ;Jump if < (no sign)
ret ;093d9
b093da: inc si ;093da
ret ;093db

?????????????,???? ??????????? ?????? - ??? ?????????? ????????? ????? ???-
?????????. ???????????? ???????? ?????? ????????? ???:

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

d08790 db 00,00 ;08790 ......
d08792 dw OFFSET d093d5 ;08792

????? ? ???????? ??????? ??????????. ??? ??????, ??? ??? ??? ????? ?????-
??????????? ?????, ??? ??? ?????????????? ????????????? ? ?.?. ? ???? ? ??-
???????? ????????. ????? ????, ??? ?????????????? ????????????? ? ??? ????.
??????? ??????? ???????? ??, ??? ????????? ????? ??????????????? ????????!
??????????????????, ??? ? ??????? ???????? - ??????? ???????????. ???????
??????? ?????????? ?????? ???????????? ?? ????, ??? ??? ????????????????
??????? ???????????? ??????????????. ??? ????? ?????, ????????? ? ????????,
?? ???, ? ????????, ? ????? ???????????? ?????????? - ??????????? ??????!
???????? ???? ????? ??? ????? ?????????? ?????? ????????. ? ??????, ????-
??? ????? ????????????, ?????????? ????? ????????:

mov bx,4f71h ;0522b
b0522e: pop ax ;0522e
cmp ax,bx ;0522f
jnz b0522e ;05231 ;Jump not equal(ZF=0)
mov BYTE PTR ds:d041f4,00 ;05233
push ax ;05238
ret ;05239

.................................
call s229 ; ;04f71

????????? ??? ??? ?? ?????? - ??? ????? 4f71h - ????? ??? ????????? ?????
???????? ?? ???? ??????, ????? ??????, ??? ?????? ???? ??????? ?????????.
??????? ????????? ? ???? ???????????. ????????, ?? ????? ?????????????
?????, ???????????? ? 4f71h ? ???? ??? ?????????, ????????????? ?????????
?????. ???? ????? ????? 4f71h, ?? ??? ????? ????????????? ? ???? ? ???????-
??? ??????? ?? ????????????. ?? ????? ????, ??? ? ?? ?????, ???????? ????-
???? ???? ? ???????? ????????? ????? 4f71h. ??? ????? ?? ??????, ? ???? ???-
?? ????? ????? ???????????? s229. ??????, ????? ???????? ??????? ??????????
???????????? ? 4f71h - ??? ????????! ???????????? ???????? ?????? ?????????
???:

mov bx, OFFSET d04f71 ;0522b
b0522e: pop ax ;0522e
cmp ax,bx ;0522f
jnz b0522e ;05231 ;Jump not equal(ZF=0)
mov BYTE PTR ds:d041f4,00 ;05233
push ax ;05238
ret ;05239

.................................
d04f71: call s229 ; ;04f71


2.??? ???????? ?????? ?? ???????

????? ???????????? ?????? ?????? ? ???????. ???????? ??? ????????? ?
.COM ??????????, ??? ??? ??????????. ?????????? ??????? ??????:

pop cx ;03e56
ret ;03e57
;-----------------------------------------------------
add BYTE PTR [bx+si],al ;03e58
add BYTE PTR [bx+si],al ;03e5a
m03e5c: mov BYTE PTR ds:d05830,01 ;03e5c


? ???? ????????? ??????????? ??? ????????, ???????? ??????????:

add BYTE PTR [bx+si],al ;03e58
add BYTE PTR [bx+si],al ;03e5a

?????? ??? ?????????? ??????????? ???????? ?? ???????????? ret, ? ????? - ???-
??? m03e5c. ????, ??? ??? ?????????? ????? ???? ?????? ???????. ????? ???????-
?? ??????????? ???????? ?????? ????????? ???:

pop cx ;03e56
ret ;03e57
;-----------------------------------------------------
d03e58 dw 0 ;03e58
d03e5a db 0 ;03e5a
d03e5b db 0
m03e5c: mov BYTE PTR ds:d05830,01 ;03e5c

??? ????????? ??? ???? ??????: ?????? ? ????? ?????? ????? dw, ? ? ?????? -
db? ????? ?????????? ? ??????, ??????? ????? ????????????. ??? ????? ?????
????? ??????????:

mov si,WORD PTR ds:d03e58 ;03dd0
mov bl,BYTE PTR ds:d03e5a ;03dd4,

?????? ???????, ??? d03e58 ??????????????? ??? ?????, ? d03e5a - ??? ????.
?????????? ???? ????? ???????, ??, ??? ?? ?????, ????? ??????????? ??????.

b03f53: cmp al,05 ;03f53
jnz b03f6b ;03f55 ;Jump not equal(ZF=0)
.....................................................
ret ;03f69
;-----------------------------------------------------
add BYTE PTR [si],bh ;03f6a
push es ;03f6c
jnz b03f79 ;03f6d ;Jump not equal(ZF=0)


? ??????????? ????????? ?????? ????? b03f6b ???????????. ????? ??? ??? ?????
?????? "?????????" ??????? ?????????? add BYTE PTR [si],bh , ??????? ????-
?????? ? ???????????? ?????????, ???????????? ??????????????????, ?? ????????
03f6a. ????? ????? ????? ???? ?????? ???? - ???????? 03f6a ????????????? ????
??????, ? ?????????? ?????????? ?? ???????? 03f6b. ???????????? ???????? ???-
??? ????????? ???:

b03f53: cmp al,05 ;03f53
jnz b03f6b ;03f55 ;Jump not equal(ZF=0)
......................................................
ret ;03f69
;-----------------------------------------------------
d03f6a db 0 ;03f6a
b03f6b: cmp al,06h ;03f6b
jnz b03f79 ;03f6d ;Jump not equal(ZF=0)

???????? ????? ??????? ? ???????????? ????????? ???????? ?????. SOURSER ?????-
??? ???????? ????? ????? ????????????? ??????????. DisDoc 2.3 ? ???? ?????????
????? ???? ?????.


3. ??????????? ?? ???????????

???????????? ?? ?????????? ??????? ???????????? ????????? ???????? ????, ??-
?????? ??? ???????? ????, ? ??? ??????? ?????????????? ????????? ??? ?????-
?????????????. ? ???????? ??????? ???????? ???????? ????, ????????? ????????-
??????

s25 proc near
inc cx ;0086b
add di,bp ;0086c
adc si,00 ;0086e
add dx,si ;00871
push di ;00873
shl di,1 ;00874 ;Multiply by 2's
adc dx,00 ;00876
pop di ;00879
ret ;0087a

???? ???????? ?????????????? ?????????? ????????, ? ?????????????, ?? ?????-
??????????? ?????????. ??? ???? ? ???, ??? ??????????? ??????? ???????? ????
????????, ?? ???? ?????? ?? ??????. ???????????, ? ????????? ???? ??? ?????
?????

mov di,086bh ;007f8
......................................
mov BYTE PTR [di],4ah ;00800
mov BYTE PTR [di+07],0f1h ;00803
mov BYTE PTR [di+0ch],0d1h ;00807
......................................
ret ;00815

???.1



??? ??? di ???????????? ??? ????????? ?????????, ??? ?????? ????? ??????????
???????? 086bh ?? ??????????????? OFFSET d0086b ? ???????? ???? ?????? ????-
?? ???????????? s25:

s25 proc near
d0086b: inc cx ;0086b
..................................................

????? ??????? ??????, ??? ?????? ??????????, ??????????? ?? ???.1 ? ???????-
?????? s25. ????? ??? ???????????? ??????????????? ? ??????? TASM 1.01. ??-
?????? ??????????? ??? ????? ?????, ??? ???????? ?? ??????? 2.
41 INC CX 41 INC CX
03FD ADD DI,BP 01EF ADD DI,BP
83D600 ADC SI,0000 83D600 ADC SI,0000
03D6 ADD DX,SI 01F2 ADD DX,SI
57 PUSH DI 57 PUSH DI
D1E7 SHL DI,1 D1E7 SHL DI,1
83D200 ADC DX,0000 83D2000 ADC DX,0000
5F POP DI 5F POP DI
C3 RET C3 RET

???.2 ???.3

?? ??? ???? ? ???, ??? ???????? ????????? ???? ?????????????? ?????? ??????-
????? ? ????? ???, ?????????? ?? ??????? 3. ??? ????? ?? ????????? ????????
2 ? 3, TASM 1.01 ? ??????????? ????????? ??????????? ?????????? ADD ??-?????-
??, ? ??? ???????? ? ???????????????? ????????????. ?????????????, ?????????,
??? ???????????? ??????? ????, ?????????? ??