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

Какво обикновено се прави, за да се справи Shareware прог? Това е така,
изкачи до Интернет за пукнатини. Но ако рядко програма, пукнатината
не може да бъде 🙁 Това ще направи универсално пукнатина, подходящ за
всяка програма ... 🙂

Преди шест години, когато 95 vindovz все още се счита неразбираем перверзия,
Бях настроите автоматично lomalka, за няколко секунди
прикриване на отбраната да се промъкнат около една трета от програмите, без намеса
човек. Но в младостта си слугата ти е объркан град конкуренция
приложения и Defcon и е достатъчно да покаже, невнимателно
тяхното потомство (демонстрирано като Shareware RAR става
регистриран). Разбира се, идеята не е меко казано оценявам,
и програмата е изоставена.

Напоследък се сблъскват с електронната версия на защитата на списанието,
Разбрах, че avtolomalki идея още е актуална. управляван
на факта, че програмистите не са запознати с методите на хакерски софтуер,
от една година, за да направи същото глупости: сравняване на правото
въведената парола.

Още не съм готов да изложи avtolomalku защото това Otobaya
Всички лов за проучване на този въпрос 🙂 Много по-полезно е описанието,
как да създадете такъв.

Високо ниво езици за програмиране (Delphi, С, VB) в сравнение
линия със стандартни процедури, които могат да бъдат кръпка
с цел да им се даде възможност 🙂 например, всичко в сравнение
Онлайн може да се хвърли в, така че можете да извлечете правилния файл
парола. Или можете да настроите програмата да се разгледа всеки две линии
равен, а след това цялата въведена парола се считат за валидни.

В действителност, тази процедура се нарича сравнение много пъти
"Услугата" цели, така че трябва внимателно да се закърпят. аз използвам
такава промяна алгоритъм: ако един от редовете в сравнение
Тя започва в Bugz, в резултат на сравнение - "струни са равни."
В противен случай, той работи стандартния алгоритъм за сравнение. Това позволява
въведете вместо seriynika / парола дума Bugzy 😉 Ако Търсения
Тя трябва да бъде по-дълъг от останалите може да се "вкара" от всеки друг текст.

Patch код в изпълним модул (Търсейки, DLL), или директно в паметта - тя
пестелив, avtolomalka и в двата случая изглежда напълно
еднакво, с изключение на тези, използвани за да четат и пишат функции.

Всъщност какво и как да се закърпи.

Първа стъпка: намиране на функция за сравнение.
Търсене ще бъде на подписването, т.е. част от код, който присъства в тази функция.
Всеки компилатор има своя подпис, но само по себе си съставител
не прекалено много, освен това, че няма особена нужда да се направи avtolomalku
Fortran съставител и Watcom в: да се опитате да намерите първо
програма, която те са направили 🙂 Достатъчно dzhentelmenstkogo
настроен: Delphi, MSVC и пр.

За да се определи подписването на конкретен компилатор, не мога да се сетя за нищо
по-добре, отколкото да го постави себе си, след това се обадете на функцията за сравнение и
погледнете от разглобява дебъгер.

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

Както се използва първия наличен региона като "свободно пространство"
претъпкан с много нули. Той не изглежда да работи, въпреки че не е длъжен да 🙂

Стъпка трета: получаване на пластир.
Лепенката съдържа условни и безусловни трансфери част от код на мястото
"Normal" процедура сравнение, за да вмъкнете и обратно. Тъй като "разстояние"
между тях не е известна предварително, трябва да се изчисли скок на дължина
базирани на местоположението на частите на кръпка.

Четвърта стъпка: Записване на пластира.
нахално данни просто написани с процеса на паметта или файл, в зависимост от
метода избран. Започнете да записвате по-добре с вложки, никога не се знае какво 🙂

Накрая, един практически пример на пластира (за Delphi).

За сравнение, компилаторът използва за реда LStrCmp функция. Изричното формата на
Високо ниво код, тази функция не се нарича, но dizassemblirovnii
Аз я види. Ето как изглежда монтаж оферта:

тласък EBX
натиснете ESI
тласък EDI
Mov ESI, EAX
Mov EDI, EDX
СМР EAX, EDX
JZ StringsEqual - тест за сравнение на линии със себе си
тест ESI, ESI
JZ NotEqual - проверка за празен низ
тест EDI, EDI
JZ NotEqual - проверка за празен низ

и след това е това, което се използва като подпис (8б 46 57 8Ь FC FC 29 d0):

Mov EAX, [ESI-4] - това е мястото
Mov EDX, [Еди-4] - заместен
_subptr: - тук има възвръщаемост от пластира
под EAX, EDX

Къде е този код, който ще уреди първата част на пластира -
прехода към втората. Patch - 5 байта, като се започне с E9.

Втората част на пластира:
Mov EAX, [ESI-4] - че
Mov EDX, [Еди-4] - заседнала скок
СМР [ESI], $ 5a475542 - линия "Bugz"
_se:
(*) JZ StringsEqual - преходът към тази част от процедурата, като каза, че струните са равни
CMP [Еди] $ 5a475542 - същото за втория аргумент
JZ _se - да не човъркат отново с преизчисляване на дължината на скока
(*) Jmp _subptr - прехода към "нормален" процедура сравнение

кодови линии белязани (*) се изчислява въз основа на разстоянието между
парчета от лепенки.

Остава само да добавим, че правото в паметта за редактиране на програмата (след
тя изтеглите и да извлича само себе си, ако тя беше препълнена
asprotect и т.н.), произведени с помощта на функции или OpenProcess
CreateProcess, ReadProcessMemory и WriteProcessMemory, чиито разкрития са в win32.hlp. Avtolomalka успешно тестван на тест
програми (които просто въвеждат ред в сравнение с еталон)
и elektrohakere # 34 (последната като код за активиране получи
думата "Bugzy").

Очаква се, че avtolomalka е отворен всяка трета програма. това
Грешката начинаещи Защитници вечните ...

Покажете тази статия на приятел:

"Kaspersky Lab" представи своя версия на инцидента, в резултат на изтичане на данни НСА

В анонимния служба за лицата, подаващи сигнали SecureDrop намери уязвимост, което води до изтичане на данни

решение за сигурност на Google Play Protect, в сравнение с други анти-вирус за Android

Свързани статии

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