Сейчас на форуме: bartolomeo, asfa, _MBK_ (+7 невидимых)

 eXeL@B —› Вопросы новичков —› И снова патчи.
. 1 . 2 . >>
Посл.ответ Сообщение

Ранг: -0.8 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 15 ноября 2011 19:40
· Личное сообщение · #1

Вот читаю тут темы - патчи, снова патчи и опять патчи(они называют хуками почемуто, хотя не шадов). И я подумал - было бы не плохо запилить защиту от этого. В ядре можно конечно MmSecureVM() потыкать, в юзермоде тоже не сложно - заменить память на RE проекцию не файловой секции. Идея хотя и баян, но работает чудесно. Мапим секцию два раза и юзаем две проекции одной секции - это будет гораздо сложнее обойти, ибо запись в две проекции хардварная и одновременная. Тогда отвалятся все костыли портящие код. Интересно мнение по этому поводу.



Ранг: 0.0 (гость)
Активность: 0.250
Статус: Участник

Создано: 15 ноября 2011 19:47 · Поправил: F_a_u_s_t
· Личное сообщение · #2

nepwk
Запелите, только рабочее.
Чувак на одном пиндоском форуме предлагал такую идею но реализации я не видел.
Add:
Выложете код, пусть люде посмотрят, просто ваши посто трудно понять, все у вас излишне заумное-много воды и не логично както.



Ранг: -0.8 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 15 ноября 2011 19:51
· Личное сообщение · #3

F_a_u_s_t
Я это запилил несколько лет назад, там было для проекций модулей. Я хотел идею обсудить, а не код.



Ранг: -0.8 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 15 ноября 2011 22:52
· Личное сообщение · #4

F_a_u_s_t
Вот нашёл, старый правдо и стрёмный, нужно будет перепилить по нормальному

После отработки оного кодеса нельзя будет изменить кодес в нтдлл.

cfa5_15.11.2011_EXELAB.rU.tgz - tt.zip



Ранг: 0.0 (гость)
Активность: 0.250
Статус: Участник

Создано: 15 ноября 2011 23:08
· Личное сообщение · #5

nepwk
Почему не пишете на сях?
Бегло глянул те же инты юзаете.
Щас подрукой сисера нет.



Ранг: -0.8 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 15 ноября 2011 23:12 · Поправил: nepwk
· Личное сообщение · #6

F_a_u_s_t

> Бегло глянул те же инты юзаете.

Говорю же что очень старый код. Сиська не нужна, в олли попробуйте. Оно совершенно безвредно.




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 15 ноября 2011 23:20
· Личное сообщение · #7

Win7 x64 не пашет, собственно как остальные твои кодесы.

-----
Yann Tiersen best and do not fuck




Ранг: -0.8 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 15 ноября 2011 23:22 · Поправил: nepwk
· Личное сообщение · #8

PE_Kill
x32. Ваш 64-хбитный код у меня тоже не пойдёт.



Ранг: 0.0 (гость)
Активность: 0.250
Статус: Участник

Создано: 15 ноября 2011 23:32 · Поправил: F_a_u_s_t
· Личное сообщение · #9

nepwk
Заипалса по циклам бегать.
Xp sp3 робит, но процесор на сотке.
PE_Kill
Просто товарищ юзает асм и инты где и нах не нужно.




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 15 ноября 2011 23:33
· Личное сообщение · #10

nepwk пишет:
Ваш 64-хбитный код у меня тоже не пойдёт.

У меня нет x64 кода, а x86 программы почему то работают на моей винде - с ними что то не так?

-----
Yann Tiersen best and do not fuck




Ранг: -0.8 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 15 ноября 2011 23:34
· Личное сообщение · #11

F_a_u_s_t
> процесор на сотке.
Ну очевидно, тамже jmp $.



Ранг: 0.0 (гость)
Активность: 0.250
Статус: Участник

Создано: 15 ноября 2011 23:43
· Личное сообщение · #12

nepwk
Я вкурсе что там jmp $, я такого себе даже в хело вордах не позваляю.



Ранг: -0.8 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 15 ноября 2011 23:45
· Личное сообщение · #13

F_a_u_s_t
Да какая разница то. Вы хотели семпл посмотреть как оно работать будет такая защита, а не как оно там крутится в цикле.



Ранг: 47.7 (посетитель), 17thx
Активность: 0.090
Статус: Участник

Создано: 16 ноября 2011 23:58 · Поправил: bowrouco
· Личное сообщение · #14

F_a_u_s_t
Тоесть в этой воде вы ничего не поняли ?

У меня у одного чувство что F_a_u_s_t троль ?

PE_Kill

> У меня нет x64 кода...

А по сути темы что можите сказать, если конечно улавливаете её ?



Ранг: 0.0 (гость)
Активность: 0.250
Статус: Участник

Создано: 17 ноября 2011 00:15 · Поправил: F_a_u_s_t
· Личное сообщение · #15

bowrouco
Вы не угадали, я ламер.
Скачал где то скрипт и я крут, могу унпачить UPX.

def UnpakUPX():
Dbg = immlib.Debugger()
HB_ACCESS = 2
HB_SIZE = 1
Address = GetReg("ESP") - 4
Dbg.setHardwareBreakpoint(Address, HB_ACCESS, HB_SIZE)
Dbg.Run(0)
Dbg.stepOver()

Add:
Набросал побыстрому тестер.
Code:
  1. library GovnoCod;
  2.  
  3. uses
  4.   Windows;
  5.  
  6. type
  7.   OldCode = packed record
  8.     One : DWORD;
  9.     Two : WORD;
  10.   end;
  11.  
  12.   NewCode = packed record
  13.     Push : Byte;
  14.     Call : Pointer;
  15.     Ret  : Byte;
  16.   end;
  17.  
  18. var
  19.   New : NewCode;
  20.   Old : OldCode;
  21.   Adress : pointer;
  22.  
  23. function NtClose(Handle : Thandle) : Integer; Stdcall;
  24. external 'ntdll.dll' name 'NtClose';
  25.  
  26. function OldNtClose(Handle : Thandle) : Integer; Stdcall;
  27. var
  28.   Written : DWORD;
  29. begin
  30.   WriteProcessMemory(INVALID_HANDLE_VALUE, Adress,@Old, SizeOf(OldCode), Written);
  31.   Result := NtClose(Handle);
  32.   WriteProcessMemory(INVALID_HANDLE_VALUE, Adress,@New, SizeOf(NewCode), Written);
  33. end;
  34.  
  35. function NewNtClose(Handle : Thandle) : Integer; Stdcall;
  36. begin
  37.   MessageBoxA(0,'','',0);
  38.   Result := OldNtClose(Handle);
  39. end;
  40.  
  41. procedure SetHook();
  42. var
  43.   Dll : DWORD;
  44.   Bytes : DWORD;
  45. begin
  46.   User32 := GetModuleHandle('ntdll.dll');
  47.   Adress := GetProcAddress(Dll, 'NtClose');
  48.   ReadProcessMemory(INVALID_HANDLE_VALUE, Adress, @Old, SizeOf(OldCode),Bytes);
  49.   New.Push := $68;
  50.   New.Call := @NewNtClose;
  51.   New.Ret  := $C3;
  52.   WriteProcessMemory(INVALID_HANDLE_VALUE, Adress, @New, SizeOf(Old),Bytes);
  53. end;
  54.  
  55. procedure Unhook();
  56. var
  57.   Bytes : DWORD;
  58. begin
  59.   WriteProcessMemory(INVALID_HANDLE_VALUE, Adress, @Old, SizeOf(OldCode),Bytes);
  60. end;
  61.  
  62.  
  63. function MessageProc(code : Integer; wParam : WORD; lParam : longint) : longint; Stdcall;
  64. begin
  65.   CallNextHookEx(0, code, wParam, lParam);
  66.   Result := 0;
  67. end;
  68.  
  69. procedure SetGlobalHookProc();
  70. begin
  71.   SetWindowsHookEx(WH_GETMESSAGE, @MessageProc, hInstance, 0);
  72.   Sleep(INFINITE);
  73. end;
  74.  
  75. procedure SetGlobalHook();
  76. var
  77.   Mutex : DWORD;
  78.   Thread : DWORD;
  79. begin
  80.   Mutex := CreateMutex(nil, False, 'GovnoCod');
  81.   if GetLastError = 0 then
  82.     CreateThread(nil, 0, @SetGlobalHookProc, nil, 0, Thread)
  83.   else
  84.     CloseHandle(Mutex);
  85. end;
  86.  
  87. procedure DLLEntryPoint(dwReason : DWORD);
  88. begin
  89.   case dwReason of
  90.     DLL_PROCESS_ATTACH :
  91.       begin
  92.         SetGlobalHook();
  93.         SetHook()
  94.       end;
  95.     DLL_PROCESS_DETACH : Unhook();
  96.   end;
  97. end;
  98.  
  99. begin
  100.   DllProc := @DLLEntryPoint;
  101.   DLLEntryPoint(DLL_PROCESS_ATTACH);
  102. end.


Ваш асм высер глючит.

Add:
Бля код проверки забыл.
Code:
  1. void ProcessList()
  2. {
  3.     OBJECT_ATTRIBUTES   Attribut;
  4.     CLIENT_ID           ID;
  5.     void*               hProcess;
  6.     unsigned long       Ret;
  7.  
  8.  
  9.     InitializeObjectAttributes(&Attribut, NULL, 0, NULL, NULL);
  10.  
  11.     for (unsigned long Pid = 0; Pid <= 0xFFFF; Pid)
  12.     {
  13.         ID.UniqueProcess = (void*)Pid;
  14.         ID.UniqueThread = 0;
  15.  
  16.         Ret = NtOpenProcess(&hProcess, PROCESS_QUERY_INFORMATION, &Attribut, &ID);
  17.         if (Ret == STATUS_SUCCESS)
  18.         {
  19.             NtClose(hProcess);
  20.             hProcess = NULL;
  21.         }
  22.     }
  23. }


Add:
Снова не все дописал.
В полном тесте в место пида на консоль прет
"MZђ"
"MZђ"
"MZђ"
"MZђ"
***



Ранг: 47.7 (посетитель), 17thx
Активность: 0.090
Статус: Участник

Создано: 17 ноября 2011 00:21
· Личное сообщение · #16

F_a_u_s_t

Понятно )




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 17 ноября 2011 05:13
· Личное сообщение · #17

bowrouco пишет:
А по сути темы что можите сказать, если конечно улавливаете её ?

Суть улавливаю, кодить нет желания, других сорсов в топе нет, обсуждать нечего.

-----
Yann Tiersen best and do not fuck




Ранг: 145.8 (ветеран), 190thx
Активность: 0.140.36
Статус: Участник

Создано: 17 ноября 2011 06:20 · Поправил: Alchemistry
· Личное сообщение · #18

bowrouco

Windows XP SP3 x86 (ибо нигде больше tt.exe не работает) + первый попавший говнотрой с патчами. Например грибодемонский глаз. Да, говнотрой обломался поставить перехваты в ntdll (инжект прошел успешно, все остальное облом). В целом и общем Инди, реализация равно как и ее подача требуют серьезного допила. Хотя я сомневаюсь насчет того, что этот метод будет когда-либо использован легитимным софтом.

Насчет "патчей" и "хуков". Покажи мне ISO документ, где регламентируется как именно перехваты называть.



Ранг: 0.0 (гость)
Активность: 0.250
Статус: Участник

Создано: 17 ноября 2011 08:52
· Личное сообщение · #19

bowrouco
Тестете атачь, у меня все хукает, а разбирать вашу куйню по строчкам у меня нет желания, ламером жить просче.

4e12_17.11.2011_EXELAB.rU.tgz - xUser32.rar



Ранг: 47.7 (посетитель), 17thx
Активность: 0.090
Статус: Участник

Создано: 17 ноября 2011 09:09
· Личное сообщение · #20

Зачем кодить ваши тесты, изменить атрибуты страниц разрешив запись нельзя, NtProtectVM обломается, проекция только для чтения. Достаточно в олли попробовать потрейсить через F8, попытаться изменить тип доступа или изменить память.



Ранг: 47.7 (посетитель), 17thx
Активность: 0.090
Статус: Участник

Создано: 17 ноября 2011 09:15
· Личное сообщение · #21

Alchemistry
> ибо нигде больше tt.exe не работает

А где и почему не робит(в x32 NT) ?



Ранг: 145.8 (ветеран), 190thx
Активность: 0.140.36
Статус: Участник

Создано: 17 ноября 2011 10:45
· Личное сообщение · #22

bowrouco

Ну дык мне непонятно, почему тебе это не очевидно. Ок, глобальное объяснение - причина тому совершенно не нужный и дикий хардкод, одни int 2e размазанные по проге че только стоят.

Берем 2000 - не пойдет вообще, из-за пустого импорта.

Вин2003 - программа просто умирает на старте.

First chance exception 0xC0000005 (Access Violation) occurred in "c:\windows\system32\NTDLL.DLL" at address 0x7C938553 by thread 1.
00:00:00.621: Second chance exception 0xC0000005 (Access Violation) occurred in "c:\windows\system32\NTDLL.DLL" at address 0x7C938553 by thread 1.


Виста (тоже самое на 7)

имя события проблемы: APPCRASH
Имя приложения: tt.exe
Версия приложения: 0.0.0.0
Штамп времени приложения: 4ec2b38a
Имя модуля с ошибкой: ntdll.dll
Версия модуля с ошибкой: 6.0.6000.16386
Штамп времени модуля с ошибкой: 4549bdc9
Код исключения: c0000005
Смещение исключения: 00060e6b

Вот то-то и оное, что у тебя есть действительно стоящие и интересные идеи и концепты (разбор FlyVM, реверс сигнатур дрвеба, backtracing и т.п.), но ты не можешь или не хочешь их представить так, чтобы их можно было оценить по достоинству. Вот скажи - что мешает например взять те же сигны и написать простенький генератор как сделал зомба для AVP? Имея такой проект можно забабахать элитную статью с современной инфографикой и смачно макнуть Данилова и Ко. Но ничего это нет.

Почему обязательно всегда все сваливать в срачи и "я илито". Пичаль.



Ранг: 47.7 (посетитель), 17thx
Активность: 0.090
Статус: Участник

Создано: 17 ноября 2011 10:58 · Поправил: bowrouco
· Личное сообщение · #23

Alchemistry

А я не говорил что код древний, или мб вы это не дочитали ?

Да и вообще причём тут код не понимаю. Я хочу обсудить саму идею, а не её реализацию. Вы не туда смотрите.

80b6_17.11.2011_EXELAB.rU.tgz - Pt.zip

| Сообщение посчитали полезным: Alchemistry

Ранг: 0.0 (гость)
Активность: 0.250
Статус: Участник

Создано: 17 ноября 2011 11:46
· Личное сообщение · #24

bowrouco
Ок, обсудим, для свелой стороны ваш код не катит по причине того что дохрена кривого софта использует хуки и он тупо отвалится, а на темной стороне я не вижу практической пригодности.
Техническая реализация меня не интересует, причину читать выше.



Ранг: 47.7 (посетитель), 17thx
Активность: 0.090
Статус: Участник

Создано: 17 ноября 2011 11:49
· Личное сообщение · #25

F_a_u_s_t

Почему же отвалится, совершенно прозрачный код. Отвалится походу кривой как вы говорите софт.



Ранг: 145.8 (ветеран), 190thx
Активность: 0.140.36
Статус: Участник

Создано: 17 ноября 2011 11:53
· Личное сообщение · #26

bowrouco пишет:
А я не говорил что код древний, или мб вы это не дочитали ?


Как бы то был ответ на твой вопрос:
bowrouco пишет:
А где и почему не робит(в x32 NT) ?


Насчет идеи - ну вот например, скажи мне как это будет в плане совместимости с сторонним софтом, включая саму венду (shim)? MinWin?

В малвари, гм, ну разве что как простенький прием антиотладки, но там и так дохрена можно нафантазировать и без этого.



Ранг: 0.0 (гость)
Активность: 0.250
Статус: Участник

Создано: 17 ноября 2011 12:09
· Личное сообщение · #27

bowrouco
Всякие файл унлокеры, ситемные логеры, орфографы итд, вобщем дохрена софта.
Не будешь же ты юзерам отсылать блеки что ставить нельзя.
А на темной стороне, авер уже похукал в ядре, снимать хуки, валить авер, так и зачем тул если авер уже не работает нормально.




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 17 ноября 2011 14:05
· Личное сообщение · #28

F_a_u_s_t пишет:
Не будешь же ты юзерам отсылать блеки что ставить нельзя.

Не будет, он нормальный софт никогда в жизни не писал и что такое сапорт понятие не имеет

-----
Yann Tiersen best and do not fuck




Ранг: 47.7 (посетитель), 17thx
Активность: 0.090
Статус: Участник

Создано: 17 ноября 2011 20:04
· Личное сообщение · #29

Alchemistry

Ну я так понимаю. Нужно выполнить эти манипуляции до окончания загрузки моделя. Выбор большой, легальное решение - верификатор, сие грузится до загрузки кернела. Итак регаем верификатор, он получает нотификацию(если вы не знаете что это, это не мешает данному механизму, тоесть он не зависит от вас), а там мы правим образ. Любой легальный код(который дружит с патчгвардом) робит, все патчи отваливаются и почти вся малварь также. Конечно в ядре можно это элементарно решить, но тут юзермод обсуждаем.

F_a_u_s_t

> Всякие файл унлокеры, ситемные логеры, орфографы итд, вобщем дохрена софта.

Вы считаете это полезным софтом ?
Да вы троль товарищ.

> зачем тул если авер уже не работает нормально.
Чо ?

PE_Kill
Не будет, он нормальный софт никогда в жизни не писал и что такое сапорт понятие не имеет

Патчгвард. Оминь.



Ранг: 0.0 (гость)
Активность: 0.250
Статус: Участник

Создано: 17 ноября 2011 20:09
· Личное сообщение · #30

bowrouco
Не важно что считаю я, важно что думают пользователи.
Попробуй обьясни тете Мане из чебуречной за углом что тот софт уг, нормальный программист должен думать ширше, не важно что думаешь ты, важно как думают пользователи твоего софта.


. 1 . 2 . >>
 eXeL@B —› Вопросы новичков —› И снова патчи.
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати