Хакване на Borland Delphi елегантен декомпилира

Начинаещите хакери обикновено имат големи затруднения счупи програми, написани на Delphi и Builder. като класически похвати, като например прекъсване на GetWindowTextA, не работят. И не да се намали със сърп в топките, която искате да се вземат предвид особеностите на VCL, което изглежда само непристъпна, но в действителност се разпада още по-лесно, отколкото програмите за чисти C! Не ми ли вярвате? Убедете се сами!

За да започнете да ...

Двете основни инструменти на хакера - за корекция на грешки и Disassembler. които могат да се използват поотделно или в комбинация един с друг. Първият (и най-трудното) атака фаза - интелект. Преди да се нанесе удар на врага, трябва да се намери защитен механизъм в мегабайти мир на код, а след това проправи bithakom, промяна JE да JNE, било, за да се разбере с процедурите за регистрация алгоритъм, пишат свои собствени ключови генератор / серийни номера.

Шок фаза практически не зависи от конкретното приложение на скрап и работи през през годините, което представлява практичен упорита работа, но сложни разузнавателни дейности далеч по-интелектуално упражнение, изискващо хитър мозъка и, разбира се, на Нова година иглолистни дървесни стърготини, които ние ще агресивно пушене. И яростно кълват. На клавиатурата! След Нова година - семейна почивка, както и всеки уважаващ себе си хакер прекарва насаме с него е най-близо - на компютър. За да създадете празнично настроение ще трябва да запалят свещ (не е същото като хемороиди), за да изпратите всички момичета в / сътрудничество / нула, зарежда Burbulyator нова порция man'ov и да започне Maniace. В действителност, потребителите очакват
подаръци, както и по-добър подарък от нова пукнатина за програмист, може би, отколкото можете да си представите!

С една дума, е необходимо да се хакне. Да вървим!

Отивате Деде

Архив Деде .3.10b.realy.complete.src.zip (което, в частност, може да бъде изтеглен от www.wasm.ru/baixado.php?mode=tool#038;id=55) всъщност не е съвсем пълна, в той не притежава няколко компонента: RxLib_v2.75 плюс VCLZip. И преди Деде да може да събира, те трябва да бъдат намерени в интернет. Ако не започваш да се занимава с рафиниране Деде. най-добре е да изтеглите файл, без да www.xakep.ru/post/18513/default.asp източник, който е два метра по-къс.

В общи линии, това означава, че ние поставяме Деде и се придържа към философията му. И тази философия е, че декомпилацията не е подложена на самия изпълним файл, а начин за провеждане на процес в паметта, като по този начин не може да смаже опаковчици дори не чувствам присъствието им. Въпреки това, срещу стръмните протектори, криптира защитената програма памет и декодира го динамично като изпълнение, Деде е безсилен, и едва ли си струва да обяснява защо. Въпреки това, стръмни протектори на практика там не са толкова често, че цената е много добра.

Добре, нека да не попаднат в депресия. В крайна сметка, на Нова година в двора! И докато другите разкъсват фишеци, ние ще се скъса задника ми, декомпилира интересна програма :). Това е много проста! Ние приемаме програма, да го заредите в Деде. ние натиснете бутона "процес" и в момента седи, докато чакат за Деде изкормени памет сметище. Това се прави най-доброто от VMware. и след това сред защитените програми имат най-различни същества, пълнени рекламен софтуер и друг злонамерен софтуер.

Честно казано, щеше да убие хора, които излязоха с механизъм за идентифициране на видовете по време на работа, благодарение на които имената на класовете не са разрушени по време на компилация (както в класически Pascal и C), и да падне директно в един изпълним файл (както е в Visual Basic). Hacking е опростена, така че почивката скучно. Вие не интелектуална мач. Това е като лост, за да завърши паднал в капана на мишката.

Но ние не сме садисти, а не някакъв маниак. Оставете мишката, за да се насладите на фойерверки, и не нека се върнем към Деде. Най-лявата (можете дори да се каже, радикално ляво) раздела с името на класа не съдържа нищо интересно за нас. Tabs единици информация и формуляри за нея се изпращат / сътрудничество / нула или много по-дълбоко. Но раздела Процедури - това е, което ви трябва.

наръчник хакерство оборудване

Ураганът артилерийски огън Decompiler Деде обхваща практически цялата Багдад, определяне на муджахидините в внимание, както и всички инакомислещи изпраща на север, където са отрязани ела гора и с кола покривка, така че всички жители бяха насрочени за коледната елха. По отношение на софтуер, "Коледна елха", софтуер, който е :).

Деде недостатъци в най-малко две. На първо място, счупи пистолета - това не е в треска и не на концепции. Истинските хакери не правят това, предпочитайки да се занимават с всичко сами, като използвате кедър бульон от Hryundelya (разговорно се нарича hiew'om) и брадва. На второ място, както вече бе споменато, Деде е обречен да умре и скоро ще изчезне от твърдия диск за ненужни, както и в работно време отишъл си динозаври и мамути.

Ето защо в много ситуации, ръчно хакерство е много по-за предпочитане, а се случва така, че той получава всички единственият възможен вариант. С една дума, как някой, а аз веднага за демокрация! Любов и IDA Pro - в!

Имената на методите на класа под формата на изпълним файл в обикновен текст:

информация: 0040E88B word_40E88B ст 0Bh; DATA XREF. информация: 0040E614 ^ о
.информация: 0040E88D ст 11h
.информация: 0040E88F DD компенсира _TForm1_FormCreate
.информация: 0040E893 db 10, "FormCreate"
.информация: 0040E89E ст 12h
.информация: 0040E8A0 DD компенсира _TForm1_FormDestroy
.информация: 0040E8A4 db 11, "FormDestroy"
.информация: 0040E8B0 ст 17ч
.информация: 0040E8B2 дд компенсира _TForm1_Comm1ReceiveData
.информация: 0040E8B6 db на 16 години, Comm1ReceiveData "
.информация: 0040E8C7 ст 13h
.информация: 0040E8C9 дд компенсира _TForm1_Button1Click
.информация: 0040E8CD db 12, "Button1Click"
.информация: 0040E8DA ст 13h
.информация: 0040E8DC DD компенсира _TForm1_Button4Click
.информация: 0040E8E0 db 12, "Button4Click"
.информация: 0040E8ED ст 13h
.информация: 0040E8EF DD компенсира _TForm1_Button2Click
.информация: 0040E8F3 db 12, "Button2Click"
.информация: 0040E900 ст 12h
.информация: 0040E902 дд компенсира _TForm1_Timer1Timer
.информация: 0040E906 db 11, "Timer1Timer"
.информация: 0040E912 ст 13h
.информация: 0040E914 дд компенсира _TForm1_Button3Click
.информация: 0040E918 db 12, "Button3Click"
.информация: 0040E925 ст 13h
.информация: 0040E927 дд компенсира _TForm1_Button5Click
.информация: 0040E92B db 12, "Button5Click"
.информация: 0040E938 ст 13h
.информация: 0040E93A DD компенсира _TForm1_Button6Click
.информация: 0040E93E db 12, "Button6Click"
.информация: 0040E94B ст 13h
.информация: 0040E94D DD компенсира _TForm1_Button7Click
.информация: 0040E951 db 12, "Button7Click"
.информация: 0040E95E aTform1 db 6 "TForm1"; DATA XREF. информация: 0040E61C ^ о

Трябва да кажа, че е доста трудно да се справи по случая, тъй като програмист е използвал името на елемент по подразбиране, тъй като това се е случило TForm1, Button1Click, Button2Click. Това не е името на бутоните, имената на методите на класа, са отговорни за обработката на натискания на клавиши, и това е как те да съответстват на реалните бутони, а след това няма да кажа, така че трябва да се използва хитър.

Стартирайте програмата, обадете се на определена форма и ние натиснете върху линията за всички бутони. Когато кликнете върху Button3, на екрана ще се появи съобщение, че системата на програмата разкъсва на покрива и той ще бъде прекратен ненормално в доброволно-задължителна. Така трябва да бъде. При липса на INT 03H дебъгер команда води до критична грешка, което го прави доста бързо да намерите бутоните, необходими за нас, тогава там ще се хакне само съответните им функции. Логично е? Без да се провали!

Добре, но какво ще стане ако на наше разположение не Ида, но само hiew? Първата ми мисъл - да се удави - изместен идеологически погрешно. За да се удави в Новата година - това е най-малко нехуманно. Всички хора имат ваканционно настроение е необходимо, и след това бам - един мъртъв труп с нарязани вени в банята. Неестетично! По този начин стигаме до втората точка: бедност - това не е порок, но естествено състояние на ученика; и всичко, което не ни убива ни прави по-силни. Добро мислене на главата, което можем да направим един hiew'om. Но защо през новата година не дава любимата му лиценз Ида?

Добре, така че hiew hiew. Изглежда, че само hiew - bespontovaya програма. В действителност, това е един много мощен животно като "Cheetah". Силна и пъргави. В допълнение, компактен. Вярно е, уви, от известно време тя не е безплатна. Но hiew намери много по-лесно, отколкото отива. И струва ли си hiew несравнимо по-евтино, отколкото IDA Pro (това е, когато нещо не е възможно).

С една дума, докато над главите ни се взривят фойерверки и други пиротехнически китайски струя, излетя през отворения прозорец, зареждаме скрап програмата точно в hiew, натиснете за да влезете в шестнадесетичен, ние натиснете (Header), казват (Внос) и в списъка на внесените функции са __imp_ @ Форми @ TApplication @ CreateForm $ qqrp17System @ TMetaClasspv, доставя динамичен vclXX.bpl библиотека, където XX - номера на версията, като 60. адаптери преминават към таблицата на внесените функции, състоящи се от множество JMP инструкция. След потвърждаване, че курсорът е върху функционални __imp_ @ форми на @ TApplication @ CreateForm $ qqrp17System @ TMetaClasspv (това не е факт,
защото тук ние hiew'a бъг, и да работи около него, ние трябва да изберете следващата функция, а след това повдигнете страна на мишката), натиснете (Ref), за да съпоставят търсене и да видите типа на кода по-долу. Съответно, (NexRef) означава намиране на следните връзки, за да се създаде процедура за форма. Тук ще пожъне , докато ние откриваме всички форми, които имат само.

индекс за търсене форма структура hiew'e:

0040193A: 8B0DE01F4100 Mov ECx, [00411FE0]
.00401940: 8B15FCE54000 Mov EDX, [0040E5FC]
.00401946: E8B9BF0000 кол @ Форми @ TApplication @ CreateForm $ qqrp17System @ TMeta
.0040194B: A134B65900 Mov EAX, @ форми @ заявка; vcl60

Разбира се, това работи само с неопаковани програми, които използват статични връзки, от които по-голямата част. Ако някоя програма е пълен, а след това, преди да стигнем до масата за внос, тя ще се разопакова и ако предприемачът се занимава динамично свързване, един или повече разговори __imp_ @ Форми @ TApplication @ CreateForm $ qqrp17System @ TMetaClasspv остават незабелязани (което е лошо). В такива случаи е препоръчително да се прибягва до отстраняване на грешки, задаване на прекъсване на __imp_ @ Форми @ TApplication @ CreateForm $ qqrp17System @ TMetaClasspv, но ще кажа по-късно, но за сега нека да се справят с аргументи.
Предимно ние се интересуваме от един аргумент, който се зарежда в EDX регистър и показва структурата на офсет 18h от самото начало, което е указател към вече познатите ви с вложена структура.

Около точки на прекъсване

Най-сложните случаи на хакерство - това е опакован програма. изтеглен VCL-библиотека в движение и не използвайте никакви достоверни имена в метода на класа. Нарушаването на тази защита в Disassembler - загуба на време. По-добре е да се използват за корекция на грешки, роля, която може да бъде не само тежка (SoftICE), но и светлина артилерия в лицето OllyDebbuger.

Заредете програмата в Olly, в списъка на модули () Намерете VCLxx.bpl, заедно продължаваме и, гледайки през списъка на вноса (), Намерете желаното име. davim за инсталиране на софтуер или прекъсване , , Breakpoint, «хардуер, за изпълнение» за инсталиране на хардуер точки на прекъсване, съответно. Хардуер точка е много по-надежден, но, уви, има само четири, но броят на точката на спиране на програмата не е ограничен.

Остава само да се избере подходяща функция за bryakanya. Кратък списък на най-важните от тях (от гледна точка на един хакер) е представен по-долу:

празнична заключение

Както може да се види, за хакване на програми от Багдад не е нищо сложно, и те Hakala при скорост от корк, излитащи от бутилка шампанско. Дори и по-бързо! Така подарък за Нова година при условие!