"Серия статей по взлому, атакам и защите информации." - читать интересную книгу автора (Крис Касперски)

(July 1992).
╩юуфр т√ яpхpтхЄх хх т "NAG" ¤ъpрэх, т√ юърцхЄхё№ яюёpхфшэх яpюЎхфєp√
BIOS. ┬√ с√ёЄpю юсэрpєцшЄх (╚╤╧╬╦▄╟╙╔╥┼ ╩└╨╥╙ ╧└╠▀╥╚!), ўЄю general.exe
pрёяюыюцхэр т фтєї уыртэ√ї юсырёЄ ї: яюёЄртшт BreakPoint/Write т√
юсэрpєцшЄх, ўЄю ЇpруьхэЄ√ xxxx:1180 to xxxx:11C0 яюфючpшЄхы№эю ёьрїштр■Є эр
ьхїрэшчь√ чр∙шЄ√, уфх xxxx - ёыхфє∙шщ чр PSP ёхуьхэЄ. ╧pюфхырщЄх ёыхфє∙шх
ьрэшяєы Ўшш (Єшяшўэр  ъp¤ъхpёър  яpюЎхфєpр):

м Break╨oint эр фшрярчюэ ярь Єш, ╟└╧╚╤█┬└▐┘╚╔ "ьрыхэ№ъє■ юсырё№ ярь Єш"
ърёр■∙є■ё  юяpр°штрэш  ■чтхpёъюую ярpюы 
м Breakpoint TRACE эр фшрярчюэ ярь Єш "ьрёЄхp-ъюфр"
м Cэютр чряєёърхь

▌Єю єцх яюьюуыю! ╥хяхp№ фрщЄх яюpрсюЄрЄ№ тр°хщ шэЄєшЎшш: тюЄ 9 яюёыхфэшї
TRACE (эх шэёЄpєъЎшщ!) т√яюыэхээ√х фю т√чютр яpюЎхфєp√ 'sniffing' тр°хщ
юсырёЄш ярь Єш.

-9 xxxx:0185 7425 JZ ъєфр_єуюфэю, эх шёяюыэшырё№
-8 xxxx:0187 2D1103 SUB AX,0311
-7 xxxx:018A 7430 JZ ъєфр_єуюфэю, эх шёяюыэшырё№
-6 xxxx:018C 2DFD04 SUB AX,04FD
-5 xxxx:018F 7443 JZ шёяюыэшырё№
-4 xxxx:01D4 E85500 CALL funny_procedure
-3 xxxx:022C 803E8F8C11 CMP BYTE PTR[8C8F],11
-2 xxxx:0231 750E JNZ ъєфр_єуюфэю, эх шёяюыэшырё№
-1 xxxx:0233 9A0A0AC33E CALL procedure_that_sniffs_our_memory_area

╒юpю°ю, т√чют яpюЎхфєp√ 'funny_procedure' cыхфютры чр ёpртэхэшхь срщЄ,
ўєтёЄтє  <* ўєтёЄтє  ўЄю-Єю ¤фръюх эряpюў№ фрыхъюх *>, фртрщЄх цх эхьхфыхээю
тчуы эхь эр ¤Єє ўрёЄ№ ъюфр:

:funny_procedure
803E8F8C11 CMP BYTE PTR[8C8F],11
750E JNZ ёpртэшЄ№_срщЄ
9A0A0AC333 CALL procedure_that_sniffs
0AC0 OR AL,AL
7405 JZ ёpртэшЄ№_срщЄ
C6068F8C2A MOV BYTE PTR [8C8F],2A
:ёpртэшЄ№_срщЄ
803E8F8C2A CMP BYTE PTR [8C8F],2A
7504 JNZ after_ret
B001 MOV AL,01
C3 RET

┬√ ёьюцхЄх ¤Єю чрїрўшЄ№ :=). ╧pшьхўрЄхы№эр эхёююсpрчэюёЄ№ фтєї шэёЄpєъЎшщ
MOV 2A and CMP 2A, яюёъюы№ъє эхь ёь√ёыр т ёpртэхэшш '2Ah' ш яюёыхфє∙хь JNZ
after_ret, хёыш т√ чряшё√трхЄх '2Ah' яpхф√фєхщ MOV шэёЄpєъЎшхщ... эю яхpт√щ
яхpхїюф JNZ с√ы т√яюыэхэ схч чряшёш '2Ah'. ╚ '2Ah' яюїюцх эр '*' ёшьтюы,
юс√ўэю шёяюы№чєхь√щ яpюуpрььшёЄрьш, ўЄю тёх "╬╩"! ▌Єр чр∙шЄр pрсюЄрхЄ
ёыхфє∙шь юсpрчюь: