Решил сделать что-то новое, где надо находить и перехватывать различные API функции, как на проверку окна так и на проверку нахождения процессов дебаггера и его плагинов, которые всячески пытаются спрятать его. Этот (и последующие) crackme очень отличаются от тех, что были раньше. Вот собственно... Crackme #1.
понравился, держи +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.
Продолжаю здесь (начало http://forum.antichat.ru/threadedpost235728.html ). Нет. Я както упоминал, что не могу поставить сайс. Я теперь полностью перешёл на Олю.
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 может не прокатить.