ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

пишем патч для Порнокачалки
  #1  
Старый 03.12.2007, 18:07
sn0w
Статус пользователя:
Регистрация: 26.07.2005
Сообщений: 568
Провел на форуме:
1290766

Репутация: 1236


По умолчанию пишем патч для Порнокачалки

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


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


snow white world wide
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обзор программ для очистки жёсткого диска v1ru$ Soft - Windows 21 17.01.2010 21:07
[Обзор конвертеров видео для мобильных устройств] _-Ramos-_ Soft - Windows 3 06.12.2007 14:13
Проблемы защиты мгновенной передачи сообщений Noman Мировые новости 0 29.12.2006 02:34



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ