ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > Реверсинг
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

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

Репутация: 1236


По умолчанию Предлагаю к реверсированию спамбот

Отрыл на компе одной девки с офиса. нам кстати пров доступ отрубил изза этого бота. Решил исследовать зверюгу (hччp://rapidshare.com/files/33118600/rpcc.dll.html).

1) Итак наша длль лежит по адресу system32/rpcc.dll. при этом доступ к файлу заблокирован.

2) Прописана в winlogon/notify. при удалении параметра он ессна появляется снова.

3) Итак, отрубаем его: открываем список потоков в контексте winlogon, и отправляем пару (те которые kernel32!CreateThread+0x24) в спячку. Затем убиваем.

4) Вытираем инит с winlogon/notify
5) Перегружаем тачку.

6) Берем терь живой бинарник с system32/rpcc.dll

7) Запакована либка хер знает чем - там при распаковке и ммх интсрукции используются. я так и не распаковал

8) Пишем простенький лоадер (я дамп хотел снять), который тока подгружает эту либу. Итак я написал следующее:

MessageBox(0,"About to load rpcc.dll...",0,0);
LoadLibrary("rpcc.dll");
MessageBox(0,"Now you can dump physical memory..."0,0);

...и не сработало. после запуска и первого мессаджа, процесс лоадера вылетал к чертям. причем также удалялся и экзешник лоадера, а его образ копировался в system32/rpcc.dll !)). Это ессно навело на мысль что после анпака, либа убивала свой процесс. Поставил сплайс на TerminateProcess().

Код:
#include <windows.h>
#pragma comment(linker,"/MERGE:.rdata=.text")
#pragma comment(linker,"/SECTION:.text,EWRX")
#pragma comment(linker, "/NODEFAULTLIB")
#pragma comment(linker, "/ENTRY:startcode")

#pragma pack(1)
typedef struct mov_n_jmp{
	BYTE movEAXaddr;
	BYTE func_addr[4];
	BYTE jmpEAX[2];

}MOV_N_JMP;
#pragma pack()

BOOL __stdcall MyTerminateProcess(HANDLE,DWORD)
{
	MessageBox(0,"TerminateProcess() called",0,0);
	return TRUE;
}



void startcode()
{
	DWORD addr, myaddr, prot;
	MOV_N_JMP mj;
		
	MessageBox(0,"Splicing TerminateProcess()...",0,0);

	// prepare...
	addr = (DWORD)GetProcAddress(GetModuleHandle("kernel32.dll"), "TerminateProcess");
	myaddr = (DWORD)MyTerminateProcess;
	VirtualProtect((void*) addr, 512, PAGE_EXECUTE_READWRITE, &prot);
	
	// do a splice
	mj.movEAXaddr = 0xB8;
	mj.jmpEAX[0] = 0xFF;
	mj.jmpEAX[1] = 0xE0;
	CopyMemory(&mj.func_addr[0], &myaddr, 4);
	CopyMemory((void*)addr, &mj, sizeof(mj));
	
	
	MessageBox(0,"Patch ok, trying to call it...",0,0);
	TerminateProcess(0,0);
	MessageBox(0,"Now attempting to load rpcc.dll...",0,0);
	LoadLibrary("rpcc.dll");
	MessageBox(0,"Operation complete",0,0);

}
и опять таки ничего!! 2 потока в винлогон и копия тела. Вообщем предлагаю к реверсу! ж)
__________________


snow white world wide

Последний раз редактировалось sn0w; 24.05.2007 в 17:32..
 
Ответить с цитированием

  #2  
Старый 24.05.2007, 18:56
hidden
Постоянный
Регистрация: 23.04.2006
Сообщений: 622
Провел на форуме:
5887054

Репутация: 1292


По умолчанию

Ставь бряк на обработчик sysenter'ов, он может вообще функциями третьего кольца не пользуется
 
Ответить с цитированием

  #3  
Старый 24.05.2007, 21:44
Xserg
Участник форума
Регистрация: 09.12.2006
Сообщений: 135
Провел на форуме:
426226

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

Вряд ли его получится распаковать.

Из импорта использует только VertualProtect

Распаковывается частями, адреса АPI находит из экспорта системных библиотек, каждый раз при вызове любой функции. (торопится ему некуда)

У меня вообще не хочет работать.
После очередного вызова NtQueryInformationProcess, останавливается на исключении, не устанавливая SEН обработчик!

Запускал без отладчика, без антивиря и фаервола, Не работает.
 
Ответить с цитированием

  #4  
Старый 25.05.2007, 14:57
Hellsp@wn
Постоянный
Регистрация: 29.04.2007
Сообщений: 496
Провел на форуме:
2715445

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

Вроде знакомый криптор висит...
Вечером, если будет время анпакну

добавлено:

короче глянул, да там то, что я думал.
Под криптором упх, дальше сам давай
Код:
00791000     60                     PUSHAD
00791001     BE 00B07800            MOV ESI,rpcc.<ModuleEntryPoint>
00791006     8DBE 0060FFFF          LEA EDI,DWORD PTR DS:[ESI+FFFF6000]
0079100C     57                     PUSH EDI
0079100D     83CD FF                OR EBP,FFFFFFFF
00791010     EB 10                  JMP SHORT rpcc.00791022
для отладки юзал OllyDbg + PhantOm для скрытия
не ставь обычные бряки на апи (int 3) юзай
железные (hardware)

Последний раз редактировалось Hellsp@wn; 25.05.2007 в 23:22..
 
Ответить с цитированием

  #5  
Старый 26.05.2007, 18:13
Xserg
Участник форума
Регистрация: 09.12.2006
Сообщений: 135
Провел на форуме:
426226

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

Прикольный глюк у этого бота.
Если prcc.dll грузится в память по адресу ниже 0х400000 , то не работает
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Предлагаю понтоваться и хвастаться! syntacsis Болталка 8 06.08.2006 14:22



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


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




ANTICHAT.XYZ