Халявний winrar за 2 хвилини
У цій статті я розповім розробникам всім відомої програми
WinRAR як їх програма легко піддається злому. Дана інформація буде надана виключно для ознайомлення!
Що ж, приступимо. Для роботи, вам будуть потрібні програми:
Альтернативний вихід або логіка десь поруч
Ставимо в SoftICE брекпоінт на функцію SetTimer. Зробити це можна так:
Тепер запускаємо RAR. У Вас повинен був вискочити
улюблений SoftICE. Якщо вискочив, тисніть F5 поки не опинитеся в WinRAR. Ну як? Ви вже в
ньому? Дуже добре, значить все йде як треба :). Як тільки ви перерветься, в
RAR покажчик виконуваної рядки буде тут:
0043FAA0 MOV EAX, 004AF1C4
А вище те, що нам потрібно ...
0043FA93 E8C0E90400 CALL [User32! SetTimer]
Тепер прибираємо геп (bc 0) і закриваємо SoftICe.
Відірвемося трохи від злому і подумаємо, що потрібно зробити далі.
Значить так: у нас є код команди CALL SetTimer, а це значить, що залишилося дізнатися Offset код
(Для редагування в WinHEX'e) і занопіть байти
Скажу вам по секрету, що це перша програма, яку я зламав без допомоги статей по злому.
Патч на Дельфі для WinRAR.
Ось исходник патча на дельфи. Він не обтяжений перевіркою ті чи це байти, але перевіряє наявність файлу в папці з собою.
uses
Classes,
Windows,
SysUtils;
var
f: TFileStream;
s: byte;
begin
Writeln ( 'Crack for WinRAR 3.xx by Angel');
Write ( 'Press Enter to contine ...');
Readln;
if not (FileExists ( 'WinRAR.exe')) then
begin
Write ( 'File not Found.');
ReadLn;
Halt;
end
else
begin
s: = $ 90;
f: = TFileStream.Create ( 'WinRAR.exe', fmOpenWrite);
f.Seek ($ 3F09B, soFromBeginning);
f.Write (s, sizeof (s));
f.Seek ($ 3F09C, soFromBeginning);
f.Write (s, sizeof (s));
f.Seek ($ 3F09D, soFromBeginning);
f.Write (s, sizeof (s));
f.Seek ($ 3F09E, soFromBeginning);
f.Write (s, sizeof (s));
f.Seek ($ 3F09F, soFromBeginning);
f.Write (s, sizeof (s));
f.Free;
end;
Write ( 'File «WinRAR.exe» Cracked.');
ReadLn;
end.
Покажи цю статтю друзям: