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.

Tanulságok repedés

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.

Tanulságok repedés

Azt is írd be a parancssorba:

Ezután HBP telepítve van.

Tanulságok repedés

Tanulságok repedés

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.

Tanulságok repedés

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.

Tanulságok repedés

Vegye ki és telepítse a HBP MessageBoxA ugyanúgy BPX.

Most nézd meg a listát a HBP.

Tanulságok repedés

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.

Tanulságok repedés

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.

Tanulságok repedés

És a következő jött, végül DWORD opciót. azaz HBP négy bájt.

Tanulságok repedés

Visszatérve a 4020CA és tegye HBP ON ACCESS - BYTE.

Tanulságok repedés

Látjuk, hogy mi tesz a listán HBP a mérete 1, azaz bájt (byte).

Tanulságok repedés

Tanulságok repedés

OLLY itt azt mondja, hogy a terhelés HBP1. azaz Az egyik, hogy jön az első a listán a HBP.

Tanulságok repedés

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.

Tanulságok repedés

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.

Tanulságok repedés

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.

Tanulságok repedés

Tanulságok repedés

Itt töréspontok és a hely, ahol a kifejezés magyarázza:

Tanulságok repedés

Szintén segítséget, vannak példák a kifejezést, hogy lehet használni a feltételeket.

Tanulságok repedés

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.

Tanulságok repedés

Innen kattints KATTINTSON DERECHO- BREAKPOINT- FELTÉTELES LOG.

Tanulságok repedés

Látjuk egy ablak sok lehetőséget.

Tanulságok repedés

Ebben az esetben, csak meg kell menteni a szükséges adatokat nekünk.

Tanulságok repedés

Menj a LOG vagy L ablakot.

És tisztított világosan látni, hogy a program elmenti. Kattintások CLICK derecho-tiszta ablakon.

Tanulságok repedés

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.

Tanulságok repedés

Amikor kattintson az OK gombra.

Tanulságok repedés

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.

Tanulságok repedés

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.

Tanulságok repedés

Ne feledje, hogy ha adott egy felhasználói nevet, amely a számok, MessageBoxA úgynevezett 2-szer? Kattintson az OK gombra.

Tanulságok repedés

Amikor az OK gomb megnyomásával

Tanulságok repedés

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.

Tanulságok repedés

Tanulságok repedés

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

Kapcsolódó cikkek