"ED!SON (пер. Mr.Boco). Как ломать программы Windows" - читать интересную книгу автора


—в® ¦Ґ ўЁ¤­® ў ®Є­Ґ ¤ ­­ле, Є Є ­Ґ Ё¬п, Є®в®а®Ґ ¬л ўўҐ«Ё? =) Ђ ⥯Ґам
ў§Ј«п­Ґ¬ ­  Єгб®Є Є®¤  Ї®¤ ўл襯ਢҐ¤Ґ­­л¬:

PUSH 00 ; (­Ґ Ё­вҐаҐб­®)
PUSH 00 ; (­Ґ Ё­вҐаҐб­®)
PUSH 000003F6 ; €¤Ґ­вЁдЁЄ в®а гЇа ў«Ґ­Ёп
MOV EDI, 0040A680 ; Ђ¤аҐб ЎгдҐа 
PUSH ESI ; €¤Ґ­вЁдЁЄ в®а ®Є­  ¤Ё «®Ј 
CALL [User32!GetDlgItemInt]

”г­ЄжЁп GetDlgItemInt Ї®е®¦  ­  GetDlgItemTextA, ­® ў®§ўа й Ґв ­Ґ бва®Єг,
  楫®Ґ зЁб«®. Ћ­  ў®§ўа й Ґв ҐЈ® ў ॣЁбвॠEAX, Ї®н⮬㠬л ва ббЁа㥬
нв®в Є®¤ (F10) Ё ᬮваЁ¬, зв® ¦Ґ г ­ б Ї®пўЁ«®бм ў ®Є­Ґ ॣЁбва®ў Ї®б«Ґ
ўл§®ў  дг­ЄжЁЁ... ‚ ¬®Ґ¬ б«гз Ґ ®­® ўлЈ«п¤Ёв в Є:

EAX=00003039

Ђ зв® в Є®Ґ иҐбв­ ¤ж вҐаЁз­®Ґ 3039? Ќ ЎҐаҐ¬:

:? 3039

€ Ї®«гзЁ¬ б«Ґ¤го饥:

00003039 0000012345 "09"
^ hex ^ dec ^ ascii

Љ Є ‚л ўЁ¤ЁвҐ (Ё, ў®§¬®¦­®, 㦥 ¤®Ј ¤ «Ёбм) нв® Є®¤, Є®в®ал© ‚л ўўҐ«Ё
ў ¤Ё «®Ј®ў®¬ ®Є­Ґ. Ok, з⮠⥯Ґам? Џ®б¬®ваЁ¬ ¤ «миҐ:

MOV [0040A548], EAX ; ‘®еа ­пҐв ॣ. Є®¤
MOV EDX, EAX ; Ђ в Є¦Ґ Ї®¬Ґй Ґв ҐЈ® ў EDX


3.1.3 Џ®¤бзЁвлў ­ЁҐ ॣЁбва жЁ®­­®Ј® Є®¤ 
=========================================
Њл ¤®бвЁЈ«Ё ¬Ґбв , Ј¤Ґ Ї®¤бзЁвлў Ґвбп ॠ«м­л© ॣЁбва жЁ®­­л© Є®¤!

MOV ECX, FFFFFFFF ; ќвЁ бва®зЄЁ Ї®¤бзЁвлў ов
SUB EAX, EAX ; ¤«Ё­г бва®ЄЁ
REPNZ SCASB ; .
NOT ECX ; .
DEC ECX ; ECX ⥯Ґам ᮤҐа¦Ёв ¤«Ё­г
MOVSX EAX, BYTE PTR [0040A680] ; Џ®«гз Ґв Ў ©в Ї®  ¤а. 40A680h
IMUL ECX, EAX ; ECX = ECX * EAX
SHL ECX, 0A ; ‘¤ўЁЈ ў«Ґў® ­  0Ah ЎЁв
ADD ECX, 0002F8CC ; „®Ў ў«пҐв 2F8CC Є १г«мв вг
MOV [0040A664], ECX

...€ Ј¤Ґ ®­ Їа®ўҐапҐвбп