Minimális hangzás
Ez a hasznos program megkönnyíti
az élet és a programozók, valamint a crackerek, akik
egy fejlett hibakereső,
dolgozik a RING0-ban. Normális munkavégzésre
Önnek szüksége van az ASM-ismeretekre (ajánlom a "Assembler"
Zubkova SV).
Kezdjük a telepítéssel. A SoftIce (working
a 4.0-as verzió) automatikusan felveszi az autoexec-et. mert
aktiválja a SoftIce-t, meg kell nyomnia a Ctrl + D -
Meglátja a konzolt. A főmenü bezárása
és visszatér a rendszerhez, nyomja meg az F5 billentyűt.
A legfontosabb SoftIce ablak több
a megjelenítésre szánt alsó kartondobozok
kód, memória dump, regiszter állapotok stb.
Ezek az ablakok be- és kikapcsolhatók. itt
több csapat (röviden
Segítség a parancsok használatához szükséges a H vagy a HELP beírása:
WD - (be / ki) adatablak
WC - (be / ki) kód ablak
WR - (be / ki) regiszter állapota ablak
feldolgozó
WF - (be / ki) ablak a coprocesszor veremben
WL - helyi változók (be / ki) ablak
LINES n_of_lines - a sorok számának beállítása
a képernyő (25-128)
WIDTH n_of_col - állítsa be az oszlopok számát
képernyő (60-160)
SET ORIGIN x, y - állítsa be a bal felső csúcsot
ablakok az x, y pozícióban
Ctrl + Alt + nyilak - mozgassa a főképernyőt
Ctrl + Alt + Home - ugrás a bal felső sarokban
a képernyőn
Ctrl + Alt + C - menjen a központba
Ctrl + nyilak - görgeti a kódablakot
Alt + nyilak - görgessen az adatablakban
Most a használni kívánt parancsok
munka:
F1 - Súgó
F4 - a Windows képernyő tartalmának megjelenítése
F5 - kilépés
F6 - mozgassa a kurzort a kódablakra vagy abból
F7 - parancsok végrehajtása az aktuális vonalon
nyíl
F8 - híváskeresés funkcióban
F9 - vezérlőpont az aktuális sorban
F10 - nyomkövetés a funkció bejövetele nélkül
F12 - parancsok végrehajtása ret. Előtt
BL - az összes telepített BP (Break Point) listája
BD n_of_bp - deaktiválja a BP-t
BE n_of_bp - aktiválja a BP-t
BC n_of_bp - távolítsa el a BP-t
n_of_bp a BP-szám, amelyet a parancs felismer
BL.
D addr - megjelenítés az adatablak memóriájában,
kezdve addr
DB, DW, DT, DD, DD a D parancs fajtái,
csak a megjelenítési formátumban különböznek egymástól.
néhány kódot
...
...
program folytatása
Egy kicsit a regiszterekről.
A nyilvántartások szerves részét képezik
processzor. Ezeket használják
ideiglenes információ tárolása.
A nyilvántartások intenzív használata a
programot az a tény határozza meg, hogy a sebesség
Hozzáférés számukra sokkal több, mint a sejtekhez
memóriát. A 32 bites processzorok 16-tal rendelkeznek
nyilvántartásokban. Csak az alapvető és
a leggyakrabban használt:
általános célú nyilvántartások, mutató
utasításokat, szegmensregisztereket és nyilvántartást
zászlókat.
Bár tárolni az operandusokat, az eredményeket
műveletek és mutatók
használja a fentieket
regisztráljon, legyen óvatos az esp regiszterrel. A
A tároló tetejét tárolja és
az érték helytelen megváltoztatása
a program rosszul működik és
sürgősségi megszüntetését.
Számos csapat konkrétan használ
regiszterek az operandusuk tárolására.
Például szövegfeldolgozó parancsok
A sorok az ecx tartalmát használják, elő
és edi operandusként.
A nyilvántartások legfontosabb felhasználási esetei
általános cél:
- eax - az operandusok tárolására és
a műveletek eredményei
- ebx - a ds. szegmens adatainak mutatójaként
- ecx - a string műveletek számlálója és
ciklusok
- edx - mutató a bemenethez / kimenethez
- esi - a ds szegmens adatainak mutatója, és
Szintén mutatóként a forráshoz a parancsok
vonalakkal dolgozni
- edi - a szegmens adatainak mutatója, és
Szintén mutatóként a vevőkészülékhez parancsokkal
vonalakkal dolgozni
- esp - a kötegjelző teteje a szegmensben ss
- ebp - mutató a verem egyes adataihoz
Az x-ben végződő regiszterekben lehet
hivatkozzon az alsó 16 bitre (ax, bx, cx és dx)
), ami viszont
osztható a nagybájtra (ah, bh, ch és dh) és
fiatalabb (al, bl, cl és dl), és velük dolgozni, mint a
8 bites hosszúságú regiszterek. regiszterek Pointer
esp (a verem felső mutatója) és az ebp (alap
regiszter), valamint index indexek (index)
forrás) és az edi (fogadó index) lehetővé teszik
csak 32 bites címzés.
A szegmens regiszterei (cs, ds, ss, es, fs és gs) 16 tárolnak
bites szegmensleírók. leírások
a szegmensek különös mutatók,
A szegmens helyének meghatározása a következő helyen:
memóriát. A védett üzemmódban
processzor (Windows 95/98) minden szegmentált regisztert
ugyanarra a szegmensre mutat, tehát
általában nem használják a programban.
Ez a regiszter egy sor
zászlók, telepítve vagy visszaállítható
a parancsok eredményei alapján.
A zászló egy 1 bites változó,
feltételes ugrásparancsokban használják.
Ha a változó értéke 1, akkor
úgy tekinthető, hogy a zászló be van állítva, ha 0 -
vissza. Először is érdekel:
egy nulla zászló, egy szállító zászló és egy jel zászló. zászló
A megszerzésnél nulla (zf) van megállapítva
nulla eredmény a végrehajtás során
a következő parancsot, és visszaállítja, amikor
fennmaradó nem nulla értékeket.
- A tartásjelző (cf) be van állítva, amikor
átvitelére vagy átvételére
számtani műveletek, a fennmaradó
az esetek nullázódnak.
- A túlcsordulási jelző (of)
ha az aritmetikai művelet eredménye nem
illeszkedik a vevő operandusába.
- A jel (sf) zászlója be van állítva
a legrégebbi bit egységértéke
eredmény - negatív szám jele.
A WinZip telepítése és futtatása. Közvetlenül utána
megjelenik egy ablak,
hogy a program nincs regisztrálva. Ha a
a program nem regisztrálja ezt az ablakot
minden egyes új indításkor megjelenik.
A Help menüben válassza a WinZip ... In
Kattintson a Regisztráció gombra.
Megnyílik a regisztrációs ablak. Írja be a mezőbe
Nevezze meg azt a nevet, amelyet regisztrálni akarunk
program (például hack). Az RN területén bemutatjuk
minden információ (például 1212121212 -
akkor szükség esetén egyszerű volt
azonosítani), majd nyomja meg az OK gombot. megjelenik
Egy ablak, amely tájékoztatja Önt arról, hogy hiányos vagy hiányos
helytelen információk. Felhívom a figyelmet
ezen az ablakon. Ez egy tipikus MessageBox ablak (egy ablak
hozzászólás). Különlegességei
Ezek a következők:
- Inaktív ablak bezárása gomb
- ikonok jelenléte az ablakban (ikonnézet
az üzenet típusától függ)
- egy vagy több gomb jelenléte (a
A név és a mennyiség szintén függ a típustól
hozzászólás)
A programban létrehozható a MessageBox ablak
négy funkciót használ: MessageBox (), MessageBoxA (),
MessageBoxIndirect () és MessageBoxIndirectA (). A funkciók nem
befejezve az A (MessageBox (),
A MessageBoxIndirect ()) főleg
Win16 alkalmazások (Windows 3.x) és rájuk
legkevésbé számít. Két van
funkciók: MessageBoxA () és MessageBoxIndirectA (). Melyik közülük
meghatározza
empirikusan:
- Zárja be az üzenetablakot
- Activate SoftICE (Ctrl + D)
- Határozza meg a töréspontokat egy híváshoz
MessageBoxA () és MessageBoxIndirectA () (bpx MessageBoxA, bpx
MessageBoxIndirectA)
- Visszatérünk a Windows (F5)
Nyomja meg az OK gombot a regisztrációs ablakban,
A program megszakad, amikor a funkciót hívják és
átirányítja a SoftICE irányítását. A Parancsablakban
Úgy tűnik, hogy a program félbeszakadt
hívja a MessageBoxIndirectA () függvényt a USER32 modulból. és
valóban a kódablakban látjuk ezt
A kurzor a funkció első sorában van
és a jelenlegi USER32 modul neve (írásos
a kódablak alján). Továbbá ezt is tudjuk
tennie:
- A folytatáshoz nyomja meg az F12 (p ret parancsot)
programot, mielőtt végrehajtaná az ret parancsot. előtt
ismét ismerős ablakot látunk
amikor az OK gombra kattint
a program megszakad és ellenőrzött
továbbította a SoftICE-t. Most látjuk
a program leállt a WINZIP32 modulban:
0137: 00426920 FF15C4AF4700 hívás [USER32! MessageBoxIndirectA]
0137: 00426926 EB14 jmp 0042693C <- в этой строке
a kurzor
Határozott pillanatra érkezik. Bevezetünk a RN területén
kapott regisztrációs számot és
kattintson az OK gombra. A program kéri
Erősítse meg a regisztráció adatait, és
Miután rákattint az OK gombra, máris megvan
egy személyes WinZip tulajdonosa.
Ossza meg ezt a cikket barátaival: