Въведение в кракване от нулата с помощта OllyDbg - Глава 11 [Рикардо Narvaha, транс. Aquila]
Е, това остава да се разгледа процесор точка на пречупване (хардуерни точки на прекъсване), условни точки на прекъсване и гранични стойности за съобщения. и след това да сме готови с тази тема.
процесор Гранични
CPU точка на прекъсване (хардуерни точки на прекъсване, HBP) - е функция на процесора. Как работи в действителност, аз не знам, но все пак можем да ги инсталирате на програмата, когато те са изпълнени, спрете и да прехвърли контрола.
Ние може да създаде до четири 4 HBP. петия OllyDbg иска от нас да се определи кои от четирите вече утвърдената чист.
Както обикновено, на практика ще използва krekmi CrueHead'a.
Има три възможности: HBP ЗА ИЗПЪЛНЕНИЕ. И ON пишете на достъп.
Ако искате да зададете HBP производство по изпълнение да се отбележи, 401013. ред щракване с десния бутон на мишката и изберете Breakpoint-хардуера на изпълнение.
Можем също така да напишете в командния ред:
След инсталирането на това HBP.
Тук ние виждаме един прозорец с HBP. и ако кликнете следващия следват. ние се намираме в списък на линията, където е инсталиран. С изтриването можем да го премахнете.
Сега щракнете до F9, за да стартирате програмата.
И спря 401013.
Както можете да видите, той се държи като нормален BPX. ако това ще направи същото нещо направено с BPX - пише MOV EAX, DWORD PTR DS: [401013] и тичам, можем да видим, че кодът не се е променило.
Промяна на ЕПИ за 401,000, използвайки новия център ТУК и щракнете до F7.
Виж, че EAX съдържа E8 A6 04 00 (във формата за обратна връзка, за да можем да видим 00004A6E8), което е, няма промяна не е в кода.
Ако се преиграва OllyDbg, можем да видим, че HBP е създадена.
Извадете го и инсталирате на HBP MessageBoxA същия начин както BPX.
Сега погледнете списъка на HBP.
Ние няма да се повтаря отново, но знам, че ако стартирате програмата и да се въведе и паролата на потребителя, и ние сме съгласни, тогава изпълнението спира в MessageBoxA на API. т.е. почти същото, както ако ние използвахме конвенционален BPX.
HBP ЗА ДОСТЪП НА пише и може да покрие само 1, 2 или 4 байта, ако изберем да се отърват по-голяма площ, те ще имат стойност само първите четири байта.
Сега обърнете внимание на първите 4 байта.
Натиснете десния бутон на мишката.
Направете същото и за следващия байт и изберете хардуера на достъп. и сега има само възможност за избор на BYTE.
И в следващия дойде най-накрая, DWORD опция. т.е. HBP е четири байта.
Връщайки се към 4020CA и сложи HBP ЗА ДОСТЪП - BYTE.
Виждаме, че сме поставили в списъка на HBP е с площ от 1, т.е. байт (байт).
Olly тук ни казва, че HBP1 натоварване. т.е. този, който е на първо място в списъка на HBP.
Ние виждаме, че програмата се прекратява по реда, следващ този, в които прилагането запазва или четене. Това е вярно за HBP ЗА ДОСТЪП. и за ON WRITE - инструкция, която активира HBP. е извършено, както и програмата спира на следващия.
Както можете да видите, за разлика от MEMORY Breakpoint това е, че програмата ще спре на 401 007 - директно върху твърдението, че причинени на праговите точки на прекъсване.
Както можете да се досетите, HBP ON WRITE се активира, когато сметището да, вместо четене и програмата спира в инструкцията, следваща тази, която е предизвикала задействане HBP.
Условно точка на прекъсване
В действителност, това е вариант на конвенционален BPX. където активирането на BPX OllyDbg проверява дали дадено условие е вярно, и ако е така, спира изпълнението на програмата, както и ако не, тогава изпълнението на програмата продължава, като че BP не съществува.
Reset Всичко, което сме направили и преди, и да зададете точка на прекъсване Конди T IONAL на 40100E. Защо избирам низа, щракнете до десния бутон на мишката и изберете Breakpoint Конди T IONAL.
Тя се отваря прозорец, в който да се определи състоянието.
Например, ако искате да се уточни, че спира, когато EAX е 400 000 след това състоянието им трябва да бъдат такива, че: "EAX == 400 000".
HELP за прикрепен към OllyDbg, се казва това, което героите можем да използваме и как те отговарят на условията.
Виждаме, че в случай на BPX Конди T IONAL използва розово. Натиснете F9:
Ние виждаме, че е имало спиране и OllyDbg ни казва:
EAX е 400,000 пъти след това са работили определено състояние.
За да започнете извършване отново, sotrom BPX Конди T IONAL и сложи друг, където, например, EAX == 500000.
Виждаме, че krekmi Run и спиране не се е случило, тъй като EAX винаги е равен на 400 000, както и условията не са изпълнени.
Ако отворите помощ-СЪДЪРЖАНИЕ.
Ето точки на прекъсване и на мястото, където изразът обяснява:
Също така в помощта, има примери за изрази, които могат да се използват за условията.
С условна точка на прекъсване сеч
Това условие BPX. същият като предишния, но в този случай можем да посочим точните стойности на всички съхранени при преминаване точка на прекъсване. Има много възможности, а ние ще демонстрира използването на BPX например един API, който се намира на различни места, а ние искаме да съхранява данните, предадени на него.
Оттук кликнете CLICK DERECHO- BREAKPOINT- УСЛОВНО LOG.
Виждаме прозорец с много възможности.
В този случай, ние само трябва да запишете необходимите данни, за да ни.
Отиди до прозореца на LOG или L.
И пречистена ясно да се види, че програмата спестява. Кликвания НАТИСНЕТЕ Derecho-прозрачния прозорец.
Виждаме, че има опция да спаси дневника в текстов файл, ако е необходимо.
Сега стартирайте програмата чрез F9.
Отиди до прозореца и krekmi докато LOG'e нищо, тъй като даден контакт не причинява API.
Отиди да се регистрирате. където можем да зададете потребителско име и парола.
Когато кликнете OK.
В този случай, ние се покаже информация за само един разговор, но ако API повиквания, да речем, 100 пъти, ние може да спести на дневника в текстов файл. Ако искаме да покажем само някои от тези предизвикателства, ние можем да се определят някои условия.
За тази ускоряваща krekmi отново намери API и я сложи на BPX УСЛОВНО Дневник.
Промяна на опциите, така че точката на прекъсване е бил ударен само когато състоянието и го помоли да проверя дали на [ESP] 40137D.
Стартирайте програмата и когато регистрацията на прозореца, да се въведе потребителското име ", ricnar456" и парола "989898" ще се появи.
Не забравяйте, че когато даден потребител, който има фигури, MessageBoxA наречен 2 пъти? Щракнете върху OK.
Когато натиснете бутона OK
Това е вторият път API повикване. Тук условието е изпълнено и точка на пречупване се задейства.
Виждаме, че горният елемент се състои от стека и 40137d стойност. който активира BPX УСЛОВНО LOG.
И в двата случая OllyDbg запазва информация за проведените разговори.
Добре, аз мисля, че това е достатъчно, за да ви какво да практикува от доста време. Повече остана СЪОБЩЕНИЯ точки на прекъсване. но аз не искам да те убие, така че изчакайте 12 част, а след поглед към последния вид на точки на прекъсване, обещавам, че ще продължим krekat малко по малко, за да не се отегчават.
[C] Ricardo Narvaha, Acad. Aquila
Свързани статии