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..
 
Ответить с цитированием
 



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



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


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




ANTICHAT.XYZ