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

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

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

хук внутренней функции PE файла
  #1  
Старый 09.01.2010, 20:11
qsd
Новичок
Регистрация: 04.01.2010
Сообщений: 14
Провел на форуме:
8446

Репутация: 0
По умолчанию хук внутренней функции PE файла

Подскажите пожалуйста как можно хукнуть неимпортируемую ни из каких длл функцию, коей к примеру является LoadURI() в firefox?
 
Ответить с цитированием

  #2  
Старый 09.01.2010, 20:19
ntldr
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме:
2364957

Репутация: 479
По умолчанию

точно так же, предварительно узнав её виртуальный адрес
 
Ответить с цитированием

  #3  
Старый 10.01.2010, 20:03
qsd
Новичок
Регистрация: 04.01.2010
Сообщений: 14
Провел на форуме:
8446

Репутация: 0
По умолчанию

дак в том то и проблема - как узнать адрес?)
 
Ответить с цитированием

  #4  
Старый 10.01.2010, 20:41
W!z@rD
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
Провел на форуме:
1892597

Репутация: 836


Отправить сообщение для W!z@rD с помощью ICQ
По умолчанию

GetProcAddress

это чтоль?
__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
*********************************
Программы на заказ
Times to fly...
 
Ответить с цитированием

  #5  
Старый 10.01.2010, 20:48
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

не. дизасмить тока. и искать по косвенным признакам(строковым литералам, вызываемым функциям). можно сбилдить версией компилера как у авторов тока с пдб файлов или мап файлом и так найти. тут ограничение тока в фантазии.
 
Ответить с цитированием

  #6  
Старый 10.01.2010, 21:39
qsd
Новичок
Регистрация: 04.01.2010
Сообщений: 14
Провел на форуме:
8446

Репутация: 0
По умолчанию

а насколько все эти фантастические методы надежны?) мне бы хукнуть loadURI у фф, а версий у него ой как много(
 
Ответить с цитированием

  #7  
Старый 10.01.2010, 22:28
flacs
Познающий
Регистрация: 28.01.2009
Сообщений: 90
Провел на форуме:
432613

Репутация: 80
По умолчанию

думаю наилучшим решением станет поиск сигнатур начала функции, наподобие того алгоритма что изпользуется в PEID, для определения сигнатуры компилятора

к примеру, сигнатура
push ebp/mov ebp esp
Юзается для подготовки стека, в Delphi компиляторах, в С++ немного другой метод изпользуется там стек по другому иcпользуется (add/sub esp, n)
 
Ответить с цитированием

  #8  
Старый 11.01.2010, 13:56
Gar|k
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
Провел на форуме:
991929

Репутация: 395


По умолчанию

Я думаю и в дебагере можно увидеть... у тебя же есть вроде описание функции (ну всмысле, что она делает) если например реагирует на ввод ставишь бряк на GetWindowText и ей подобных... думаю должно словится... хотя... в общем муторно
 
Ответить с цитированием

  #9  
Старый 11.01.2010, 15:11
flacs
Познающий
Регистрация: 28.01.2009
Сообщений: 90
Провел на форуме:
432613

Репутация: 80
По умолчанию

Все это долго и муторно (
Предлагаю вариант попроще
Не надо брякать эту функцию LoadURI
В формировании строк почти всегда изпользуется функция wssprintA

есть вариант ставить бряк на wssprintA и ловить строки содежащие подстроки
[http://, ftp://, javastript://, https://], и подменять их своими значенями
 
Ответить с цитированием

  #10  
Старый 12.01.2010, 18:55
sn0w
Статус пользователя:
Регистрация: 26.07.2005
Сообщений: 568
Провел на форуме:
1290766

Репутация: 1236


По умолчанию

по паттерну например так

Код:
BOOL utilsCompareData(const BYTE* pData, const BYTE* bMask, const char* pszMask)
{
	for(;*pszMask; ++pszMask, ++pData, ++bMask)
		if(*pszMask == 'x' && *pData !=* bMask ) 
			return FALSE;
	return (*pszMask) == 0;
}

//////////////////////////////////////////////////////////////////////////
DWORD utilsFindPattern(DWORD dwAddress, DWORD dwLen, BYTE *bMask, char * pszMask)
{
	for(DWORD i=0; i < dwLen; i++)
		if(utilsCompareData((BYTE*)( dwAddress+i ), bMask, pszMask ))
			return (DWORD)(dwAddress + i);

	return 0;
}
dwDecode = utilsFindPattern( (DWORD)(pDosHdr)+pSecHdr->VirtualAddress, pSecHdr->SizeOfRawData,
(BYTE*)"\x51\x53\x55\x8B\x6C\x24\x10\x56\x8B\x74\x 24\x20\x57","xxxxxxxxxxxxx");
__________________


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Основы linux кодинга. Часть 1. --StraNger-- *nix 7 27.06.2009 14:09
Процесс создания программного обеспечения для распределенных вычислений (С++). c0n Difesa Авторские статьи 9 09.06.2009 16:33
Кейлогер на Vb или как правильно играть в Gta!!! je0n Авторские статьи 6 25.05.2007 23:55
TRUE PHP-injection Zadoxlik Уязвимости 14 27.11.2006 18:19



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


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




ANTICHAT.XYZ