ПредишенСледващото

Премахване на паролата от тестовете и MyTestX easyQuizzy

Да започнем с това, ние се обясни най-тривиален проблем: как да получите .exe-файл от файла с тест - .mtf (говорим за MyTestX).
Вземете .exe-файл, който съдържа теста (взех копие от форума), и да го отворите в CFF Explorer. Веднага отидете на раздела "Resource Directory" в лявата колона, а след това, в списъка отдясно, търси "Resource Directory Влизане AKA :. RCDATA", отворете падащия списък и там търси "Resource Directory Влизане AKA :. МТА".

Премахване на паролата от тестовете и mytestx easyquizzy

Този ресурс е всъщност .mtf-файл, който ни интересува. Сега трябва да го премахнете. За това ние се обръщаме към последното дете елемент от по-горе ресурс - "Ресурс за въвеждане на данни". Изберете го и вижте долната половина на прозореца на атрибутите си, ние сме заинтересовани в областта "OffsetToData" и "Размер".

Нека си припомним, че стойността на полето "OffsetToData" и преминаването към "Адрес Converter" в ляво. Сега, въведете стойност в полето RVA - имаме физическото преместване на ресурса от началото на файла ( "Файл отместване") на интереси.

Премахване на паролата от тестовете и mytestx easyquizzy

Премахване на паролата от тестовете и mytestx easyquizzy

Премахване на паролата от тестовете и mytestx easyquizzy

Натиснете Debug-> Run и поднови молбата. На следващо място, щракнете с десния бутон някъде в горния ляв прозорец дебъгер. В менюто, което се показва, изберете Go притежавани до> Expression, в прозореца, който се показва, въведете ReadFile (WinAPI името функция, която е вероятно да бъдат използвани, за да се запознае със съдържанието на файла с теста) на.

Премахване на паролата от тестовете и mytestx easyquizzy

В списъка по-долу изберете kernel32.ReadFile и натиснете бутона "Follow израз". Ние сме на функцията за начало ReadFile, сега трябва да се сложи точка на прекъсване, за да следите програма за лечение на функция. Сложихме точка на прекъсване, за това щракнете с десния бутон върху маркирания ред на събранията код и изберете Breakpoint-> Превключване. Като цяло, преди да сложи точка на пречупване, най-доброто за първи път през MyTestEditor предизвика отварянето на диалоговия прозорец на тест, в противен случай няма да пропуснете много обаждания (F9) към ReadFile не представлява интерес за нас, места, те могат да се определят от стойността на върха на рамката на стека (долния десен прозорец дебъгер, низ текст "Връщане от kernel32.ReadFile да."). Ние сме заинтересовани обаждане ще изглежда по следния начин:

Премахване на паролата от тестовете и mytestx easyquizzy

След като хвана правилното лечение (това се случва, когато сме в тест за диалог отваряне избираме нашия тест, защитена с парола, и натиснете "Open"), се вгледате внимателно в долния десен прозорец дебъгер (в който ние виждаме, трасиране на стека), превъртете надолу до търсене низ, който представлява пълния път до файла с теста (ние се интересуваме от този комин кадрите, тъй като най-вероятно се е образувала в интерес на нас функция).

Премахване на паролата от тестовете и mytestx easyquizzy

Премахване на паролата от тестовете и mytestx easyquizzy

Ние продължаваме програмата (F9 или Debug-> Run). След известно време, програмата отново спре да работи нашата svezhepostavlenny хардуер прекъсване. Аз предизвика мястото изглеждаше нещо като това:

Премахване на паролата от тестовете и mytestx easyquizzy

Напомнящ някои междинна функция за работа с файла, така че ние използваме няколко пъти опция Debug-> Execute до завръщане (Ctrl + F9), но все пак се намираме в код "на високо ниво", на мястото, където провала на основната обработка на файлове логиката на изпитание.

Премахване на паролата от тестовете и mytestx easyquizzy

Очакваме през кода. Ние се интересуваме от всички видове разклонения (JE, JNE, JZ, jnz, и т.н.), които скачат повече или по-малко впечатляващи кодови фрагменти, казват от 5 инструкции. Някои сайтове веднага пропуснати, където, както ми се стори, направени безинтересна действие, като в този пасаж:

Премахване на паролата от тестовете и mytestx easyquizzy

Напомня тестова версия на теста. Мислех, че така веднъж, но може да се види и с опит като поставя точка на прекъсване на инструкции за условен клон и промяна на стойността на Z-флаг в прозореца на регистър на правото, когато изпълнението на програмата е прекъсната на този сайт. Проходи малко надолу и се вливат в следващата група условни отрасли:

Премахване на паролата от тестовете и mytestx easyquizzy

Нека челото флаг Z-промяна на всеки преход. Т.е. MyTestStudent отворим прозорец за избор на файл с теста, ще се постави точка на пречупване на един от преходите, в диалоговия прозорец, изберете тестов файл, който е защитен с парола свидетел кутия накара въвеждане на паролата, въведете в никакъв текст, тогава ние трябва да работим предварително настроен точка на прекъсване, ние променяме Z-флага и да продължи програмата натиснете F9 за.
Ние ще видим, че в горните два текста, промяна на програмата Z-флаг затваря, а след това се отвори браузър, който отвори врати на уебсайт с фрагмент от законодателството: някои самостоятелно направени "защита" от обикновен грабеж. Въпреки това, когато промените условно клон логика, която се намира точно под, можем да видим, че програмата предлага предварителен тест, но след това, програмата все още завършени работата си и да отворите браузъра.

Премахване на паролата от тестовете и mytestx easyquizzy

За да отворите браузъра е вероятно да се използва функция WinAPI ShellExecute. Ние се провери нашето предположение: отново, щракнете с десния бутон някъде в най-горния прозорец ляв дебъгер, поп-меню изберете Отиди притежавани до> Expression, в прозореца, който се появява, въведете името на нашата функция, отидете в началото на функцията и да го сложи точка на прекъсване. Отново прави промени логиката на последните, ние се интересуваме от, условно разклоняване, както и нашата гранична стойност се задейства:

Премахване на паролата от тестовете и mytestx easyquizzy

Ние използваме няколко пъти Debug-> Execute до връщане (или Ctrl + F9), за да се върнете от дълбините и в блока за shell32.dll MyTestEditor (следват заглавието на дебъгер прозорец, където в момента е писано "[CPU - главен нишка, модул Shell32 ] "). Почти веднага да навлезем в място като това:

Премахване на паролата от тестовете и mytestx easyquizzy

Тук ние виждаме друг условен преход, че трябва да се определи (в движение, или подмяна на условен скок към абсолютната - JMP). Оказва се, че ние трябва да се коригира два условно преход, за да може да се отвори сигурен тест чрез въвеждане на всяка парола. Замяна и проверка:

Превключване към основните изпълним easyQuizzy модул дебъгер (View-> Изпълними модули, кликнете два пъти върху името на модула, се уверете, че в текста се съдържа в заглавието на прозореца: ". Модул easyQuizzy"). Щракнете с десния бутон в дебъгер и да намерите всички низови ресурси, за които има препратки в изпълнимия код.

Премахване на паролата от тестовете и mytestx easyquizzy

Пред нас е даден списък на редовете, показани в една голяма маса, ние откриваме в нея съответствие с посланието за неправилна парола и ги сложете breakpoint'y.

Премахване на паролата от тестовете и mytestx easyquizzy

Ние се опитваме да се отвори сигурен тест и веднага хвана breakpoint'a работа.

Премахване на паролата от тестовете и mytestx easyquizzy

Ние бяхме вътре в забавна функция, където можем да наблюдаваме пас доста голям фрагмент от условна скок код, в допълнение пропускания съдържа препратка към низа "Грешна парола.".

Премахване на паролата от тестовете и mytestx easyquizzy

Но тъй като всички ние се намираме в тази програмка? Обява превъртете нагоре малко и ще видите много по-интересно конвенционален едно: тя позволява дори да пропуснете функция на разговор, в който се показва диалогът ние да въведете парола.

Премахване на паролата от тестовете и mytestx easyquizzy

Ние се опитваме да се промени логиката на работата си (например, чукане условен скок NOPs) - готово, сигурен тест открива без да пита за парола.

Също така аз препоръчвам четене

Подкрепете проекта - споделете линка, благодаря!