PDA

Просмотр полной версии : пишем патч для Порнокачалки


sn0w
03.12.2007, 18:07
бинарник порнокачалки попрежнему тут 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;
}


... и вуаля))))

KEZ
03.12.2007, 18:15
Ух, трип-репорты пошли какие-то замороченые, неужели нельзя как podkashey написать: "а бля, хуе мое, сожрал ничего нет просто на ржач пробило и немного чувствуешь себя мудаком и все. ***ня имхо". :)
Снег, может сетап сделать к патчу? Оболочку установки и т.д. ;)

Jes
03.12.2007, 18:18
А Tweak будет? или Professional Edition ? :)

KEZ
03.12.2007, 18:20
Мораль: "Подрачил на скорую руку, а потом от проблем избавляться хитровжопистыми методами..." ;)

sn0w
03.12.2007, 18:26
КЕЗ пиздец, те срочно необходим курс бутиратной терапии)))))))))))))))))))))