Tanulságok repedés
Bevezetés a repedések a nulláról segítségével OllyDbg - 11. fejezet [Ricardo Narvaha, transz. aquila]
Nos, továbbra is figyelembe venni a processzor töréspont (hardver töréspont), feltételes töréspontok és üzenetet töréspontot. és akkor kész ebben a témában.
processzor töréspontok
CPU töréspont (hardver töréspont, HBP) - egy olyan szolgáltatás, a processzor. Hogyan működik a valóságban, nem tudom, de ennek ellenére tudjuk telepíteni őket a programot, amikor teljesülnek, megáll, és a vezérlést.
Mi lehet állítani akár négy 4 HBP. Az ötödik Ollydbg kéri tőlünk, hogy meghatározza, hogy a négy már létrehozott tiszta.
Mint általában, a gyakorlat fogja használni krekmi CrueHead'a.
Három lehetőség van: HBP a végrehajtásra. És az írás során a hozzáférést.
Ha szeretné beállítani a HBP-végrehajtással megjegyezni 401013. sorban kattintson a jobb egérgombbal, és válaszd a töréspont-hardver a végrehajtás.
Azt is írd be a parancssorba:
Ezután HBP telepítve van.
Itt látunk egy ablak a HBP. és ha rákattint a következő követni. találjuk magunkat egy lista a vonalon, ahol azt telepítve. Delete tudjuk eltávolítani.
Most kattints mellett F9 a program elindításához.
És megállt 401.013.
Mint látható, úgy viselkedik, mint egy normális BPX. ha ez nem ugyanaz a dolog történik BPX - írja MOV EAX, DWORD PTR DS: [401013] és futni, azt látjuk, hogy a kód nem változott.
Változás az EIP 401.000 az új ORIGIN ITT és kattintson mellette F7.
Lásd, hogy EAX tartalmaz E8 A6 04 00 (a visszacsatolás formájában, így látjuk 00004A6E8), azaz nincs változás nem volt a kódot.
Ha ismételni Ollydbg, kiderül, hogy a HBP-ben alakult.
Vegye ki és telepítse a HBP MessageBoxA ugyanúgy BPX.
Most nézd meg a listát a HBP.
Nem fogjuk megismételni újra, de tudom, hogy ha fut a program, és vezessen be a felhasználói nevet és jelszót, és egyetértünk, akkor a végrehajtás megáll az API MessageBoxA. azaz körülbelül ugyanaz, mint ha használt hagyományos BPX.
HBP ON ACCESS íráskor tudja csak fedezni 1, 2 vagy 4 byte, ha úgy döntünk, hogy dump nagyobb területen, akkor van értéke csak az első négy bájt.
Most figyelmét az első 4 byte.
Nyomjuk meg a jobb egérgombot.
Végezzük el ugyanezt a következő bájt és a Hardver a hozzáférést. és most már csak egy választás BYTE.
És a következő jött, végül DWORD opciót. azaz HBP négy bájt.
Visszatérve a 4020CA és tegye HBP ON ACCESS - BYTE.
Látjuk, hogy mi tesz a listán HBP a mérete 1, azaz bájt (byte).
OLLY itt azt mondja, hogy a terhelés HBP1. azaz Az egyik, hogy jön az első a listán a HBP.
Látjuk, hogy a program befejeztével a sorban következő az egyetlen, ahol az alkalmazás megőrzi vagy olvasás. Ez igaz a HBP a hozzáférést. és az írás során - utasítás, amely aktivált HBP. végezzük, és a program megáll a következő.
Mint látható, ellentétben MEMORY töréspont van az, hogy a program megáll 401 007 - közvetlenül a nyilatkozat, amely miatt a ravaszt töréspontok.
Mint tudod kitalálni, HBP íráskor akkor aktiválódik, amikor a dump, olvasás helyett, és a program leáll az utasítást követve az egyik, hogy okozta a kiváltó HBP.
feltételes töréspont
Valójában, ez egy változata a hagyományos BPX. ahol az aktiválás a BPX OllyDbg ellenőrzi, hogy ha egy bizonyos feltétel igaz, és ha igen, leállítja a program végrehajtásához, és ha nem, akkor a program végrehajtása folytatódik, mintha BP nem létezik.
Reset All hogy tettünk korábban, és állítsa be a töréspont CONDI T ional a 40100E. Miért egyetlen ki a húr, kattintson a Tovább gombra a jobb egérgombbal, és válaszd a töréspont CONDI T ional.
Ez megnyit egy ablakot, amelyben meghatározzák a feltételt.
Például, ha azt szeretnénk, hogy meghatározzák, hogy megáll, ha EAX 400000 akkor az állapotának olyannak kell lennie, mint: „EAX == 400000”.
A HELP csatolt OllyDbg, mondja meg, milyen karaktert tudjuk használni, és hogyan felel meg a feltételeknek.
Látjuk, hogy abban az esetben a BPX CONDI T ional használt rózsaszín. Nyomja meg az F9:
Látjuk, hogy nem volt megállás, és OllyDbg azt mondja:
EAX 400000 alkalommal majd dolgozott a megadott feltétel.
Kezdi meg tevékenységét ismét sotrom BPX CONDI T ional, és egy újabb, ahol például, EAX == 500.000.
Látjuk, hogy krekmi indítás és a megállítás óta nem történt EAX mindig egyenlő 400.000, és a feltételek nem teljesülnek.
Ha nyitott HELP-TARTALOM.
Itt töréspontok és a hely, ahol a kifejezés magyarázza:
Szintén segítséget, vannak példák a kifejezést, hogy lehet használni a feltételeket.
A feltételes töréspont fakitermelés
Ez feltételes BPX. ugyanaz, mint az előző, de ebben az esetben tudjuk mutatni a pontos értéket az összes fennmaradt, amikor elhaladnak töréspont. Sok lehetőség van, és bemutatjuk, hogy a használata a BPX például egy API, amely megtalálható a különböző helyeken, és meg akarjuk tartani az adatokat átadni neki.
Innen kattints KATTINTSON DERECHO- BREAKPOINT- FELTÉTELES LOG.
Látjuk egy ablak sok lehetőséget.
Ebben az esetben, csak meg kell menteni a szükséges adatokat nekünk.
Menj a LOG vagy L ablakot.
És tisztított világosan látni, hogy a program elmenti. Kattintások CLICK derecho-tiszta ablakon.
Látjuk, hogy van egy lehetőség, hogy mentse a napló egy szöveges fájl, ha szükséges.
Most a program futtatásához keresztül F9.
Menj az ablakhoz, és krekmi amíg LOG'e semmit, hiszen egy adott kapcsolati nem okoz api.
Ide regisztrálni. ahol be tudjuk állítani a felhasználói nevét és jelszavát.
Amikor kattintson az OK gombra.
Ebben az esetben mi információk megjelenítéséhez csak egy hívás, de ha a API-hívásokat, mondjuk, 100-szor, meg tudjuk menteni a napló egy szöveges fájlt. Ha azt akarjuk, hogy megjelenjen csak néhány ilyen kihívás, akkor bizonyos feltételeket is.
Erre overdrive krekmi újra megtalálják api, és állítsa be a BPX FELTÉTELES LOG.
A beállítások módosításához, hogy a töréspont sújtotta csak a feltétel, és megkérem, hogy nézze meg, ha a [ESP] 40137D.
A program futtatásához, és az ablak regisztrációs bevezeti a username „ricnar456” és a jelszó „989898” jelenik meg.
Ne feledje, hogy ha adott egy felhasználói nevet, amely a számok, MessageBoxA úgynevezett 2-szer? Kattintson az OK gombra.
Amikor az OK gomb megnyomásával
Ez a második alkalom hívás api. Itt a feltétel teljesül, és a töréspont elindul.
Látjuk, hogy a felső elem tartalmaz egy köteget s értéket 40137d. amely aktiválja BPX FELTÉTELES LOG.
Mindkét esetben OllyDbg visszatartott információk a hívásokat.
Ok, azt hiszem, hogy ez elég ahhoz, hogy mit kell gyakorolni egy ideig. További maradt ÜZENET töréspont. de nem akarom megölni, így csak 12 rész, és miután pillantást az utolsó fajta töréspont, ígérem, hogy folytatni fogjuk krekat apránként, hogy ne unatkozni.
[C] Ricardo Narvaha, Acad. Aquila