бинарник порнокачалки попрежнему тут http://www.rapidshare.ru/483281 бинарник патча здесь: http://www.rapidshare.ru/487761 Итак, сегодня мы с вами разберемся чтоже такое патчи и для чего они нужны. Ктото из вас обмолвился что прога создавала на харде до 30000 файлов, я на самом деле такого не учел, но потенциально это возможно. и вот в чем причина. Вот код оригинала: // ОРИГИНАЛ: // // if(buffer[0]=='<')break; // no file - те в буфере имеем не жпег файл а отчет что файла нет, // разные прокся и фильтры могут начинать отчет не только с этого значка, // поэтому можем получить реально хуеву тучу файлов. // деассемблируем в IDA: // .text:004010E3 cmp byte ptr [esp+18760h+Buffer], 3Ch // .text:004010EB jz short loc_401150 // двоичный код обеих инструкций: // 80 BC 24 BC 00 00 00 3C 74 63 а теперь, нужная логика патча: // ПАТЧ: // // if(buffer[0]!='я')break; // все JPEG картинки как правило начинаются с байта 0xFF // деассемблирование: // .text:004010E3 cmp byte ptr [esp+18760h+Buffer], FFh // .text:004010EB jnz short loc_401150 // двоичный код обеих инструкций: // 80 BC 24 BC 00 00 00 FF 75 63 итак, нам надо перезаписать всего 2 байта по смещению 0x10EA в файле getporn.exe: 3C 74 ---> FF 75 пишем патч, который на выходе весит всего лишь полтора кила... #include <windows.h> #pragma comment(linker,"/MERGE:.rdata=.text") #pragma comment(linker,"/SECTION:.text,EWRX") #pragma comment(linker, "/NODEFAULTLIB") #pragma comment(linker, "/ENTRY:startcode") int __stdcall startcode() { DWORD w; char patch[2] = {0xFF, 0x75}; HANDLE hF = CreateFile("getporn.exe",GENERIC_WRITE,FILE_SHARE_WRITE,0,OPEN_EXISTING,0,0); if(hF==INVALID_HANDLE_VALUE){ MessageBox(0,"Could not open getporn.exe!!!", "patch error",MB_OK|MB_ICONSTOP); return -1; } SetFilePointer(hF,0x10eA,0,FILE_BEGIN); WriteFile(hF,patch,sizeof(patch),&w,0); CloseHandle(hF); MessageBox(0,"enjoy!","patch applied",MB_OK|MB_ICONINFORMATION); return 0; } ... и вуаля))))
Ух, трип-репорты пошли какие-то замороченые, неужели нельзя как podkashey написать: "а бля, хуе мое, сожрал ничего нет просто на ржач пробило и немного чувствуешь себя мудаком и все. ***ня имхо". Снег, может сетап сделать к патчу? Оболочку установки и т.д.