PDA

Просмотр полной версии : Crackme [#1] by Reject


Reject
02.12.2006, 14:06
Решил сделать что-то новое, где надо находить и перехватывать различные API функции, как на проверку окна так и на проверку нахождения процессов дебаггера и его плагинов, которые всячески пытаются спрятать его. Этот (и последующие) crackme очень отличаются от тех, что были раньше. Вот собственно...

Crackme #1. (http://reject.jino-net.ru/cm.rar)

ProTeuS
02.12.2006, 18:13
понравился, держи +8


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

const buf:array[0..2] of byte=($0,$84, $85);
const appname='1.exe';


var
Form1: TForm1;
i:cardinal;
sti:tstartupinfo;
lpPi:tprocessinformation;
h:HWND;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin

if not CreateProcess(nil,AppName,nil,nil,false,CREATE_NEW _CONSOLE or
NORMAL_PRIORITY_CLASS,nil,nil,StI,lpPI) then
begin
messageboxa(0,'Error patching!','Error',0);
halt(1);
end;
repeat
readprocessmemory(lppi.hProcess,pointer($004026EB) ,@buf[0],1,i);
until buf[0] = $0F;

suspendthread(lppi.hThread);

writeprocessmemory(lppi.hProcess,pointer($004026EC ),@buf[2],1,i); //JE

resumethread(lppi.hThread);
closehandle(lppi.hProcess);
halt;
end;

end.

taha
04.12.2006, 09:49
Продолжаю здесь (начало http://forum.antichat.ru/threadedpost235728.html ).
Нет. Я както упоминал, что не могу поставить сайс. Я теперь полностью перешёл на Олю.

Xserg
09.12.2006, 10:15
aspack $:00405577 GetModuleFileNameA $00000000
aspack $:004055A1 CreateFileA D:\xak\crackme\cm\CrackMe.exe
aspack $:004055C0 GetFileSize
aspack $:004055E9 VirtualAlloc $003C0000 $00006200 $00003000 $00000004
aspack $:00405619 ReadFile
aspack $:00405635 CloseHandle
// с таким протектором трудно пропатчить Unicode

User32 $66005D22 SetWindowsHookExA FFFFFFFF 66061D17 00000000 000008EC
$6600A24F WideCharToMultiByte OllyDbg
$6600A0A0 SetErrorMode
$6600A0B1 LoadLibraryA user32
$6600A0C2 SetErrorMode
$6600A0D8 GetProcAddress $77D30000 FindWindowA
// a я OllyDbg и не пользуюсь , почти. И антиотладки не заметил.

Кстати в новом EXEкрипторе writeprocessmemory может не прокатить.