Сейчас на форуме: vsv1, r0lka, -Sanchez-, testrev1337, johnniewalker, Kybyx (+4 невидимых)

 eXeL@B —› Крэки, обсуждения —› Crack PatchGuard for Windows 7
Посл.ответ Сообщение

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

Создано: 26 апреля 2010 00:45 · Поправил: Vol4ok
· Личное сообщение · #1

Кто-нить курил?
(для тех кто совсем не в теме, сперва читать тут - http://en.wikipedia.org/wiki/Kernel_Patch_Protection)

Есть предложение похекать, вцелом решения проблемы есть, но не для Windows 7, по крайней мере у меня они для Windows 7 не работают (возможно у меня руки кривые?). Да и в целом задача довольно интересная и вполне достойна того чтобы в ней нормально разобраться.

я сам начал курить, но времени пока оч жестко не хватает.

Итак для начала материалы по теме, для тех кто еще не "в теме"
http://www.uninformed.org/?v=3&a=3
http://www.uninformed.org/?v=6&a=1
http://www.uninformed.org/?v=8&a=5
сырки к 3ей статье http://uninformed.org/index.cgi?v=8&a=5&t=code

еще статья с кодами
http://www.codeproject.com/KB/vista-security/bypassing-patchguard.aspx
все материалы для висты, про вин7 я не нашел.

Итак вооружившись ядрами я начал капать, а именно с поиска вообще где это сидит. Проанализировав несколько ядер, я обнаружил что патч гуард найти в дизаме это проще чем два пальца... просто надо тыкнуть там где стрелочка на картинке, это и есть место где начинается инициализация.


Далее если тыкнуть на перекрестные ссылки то легко можно найти откуда он вызывается. Его как и описано в статьях, вызывает процедурка с странным названием KiFilterFiberContext, в начале процедурки сразу можно разглядеть проверку на наличине дебагера и вход в вечный цикл при его присутствии
Code:
  1. INIT:000000014056AF9D                 cmp     cs:KdDebuggerNotPresent, 0
  2. INIT:000000014056AFA4                 jnz     short loc_14056AFA8
  3. INIT:000000014056AFA6
  4. INIT:000000014056AFA6 loc_14056AFA6:
  5. INIT:000000014056AFA6                 jmp     short loc_14056AFA6


Если пойти выше, и поискать откуда вызывается KiFilterFiberContext, то можно наткнуться на безымянную процедуру и к сожалению без перекрестных ссылок
Code:
  1. INIT:000000014056EBB8 sub_14056EBB8   proc near
  2. INIT:000000014056EBB8                 push    rbp
  3. INIT:000000014056EBB9                 sub     rsp, 20h
  4. INIT:000000014056EBBD                 mov     rbp, rdx
  5. INIT:000000014056EBC0                 call    KiFilterFiberContext
  6. INIT:000000014056EBC5                 add     rsp, 20h
  7. INIT:000000014056EBC9                 pop     rbp
  8. INIT:000000014056EBCA                 retn
  9. INIT:000000014056EBCA sub_14056EBB8   endp


Уныло, однако, если чуток проскролить вверх то можно наткнуться на ооч интересную процедуру, которая до ужаса напоминает описанный в вышеприведенных статьях место где начинается инициализация гуарда.
Code:
  1. INIT:000000014056EB80 KeInitAmd64SpecificState proc near      ; CODE XREF: Phase1InitializationDiscard:loc_1405A2ADAp
  2. INIT:000000014056EB80
  3. INIT:000000014056EB80 arg_0           = dword ptr  8
  4. INIT:000000014056EB80
  5. INIT:000000014056EB80                 sub     rsp, 28h
  6. INIT:000000014056EB84                 movzx   edx, cs:KdDebuggerNotPresent
  7. INIT:000000014056EB8B                 movzx   eax, cs:KdPitchDebugger
  8. INIT:000000014056EB92                 or      edx, eax
  9. INIT:000000014056EB94                 mov     ecx, edx
  10. INIT:000000014056EB96                 neg     ecx
  11. INIT:000000014056EB98                 sbb     r8d, r8d
  12. INIT:000000014056EB9B                 and     r8d, 0FFFFFFEEh
  13. INIT:000000014056EB9F                 add     r8d, 11h
  14. INIT:000000014056EBA3                 ror     edx, 1
  15. INIT:000000014056EBA5                 mov     eax, edx
  16. INIT:000000014056EBA7                 cdq
  17. INIT:000000014056EBA8                 idiv    r8d
  18. INIT:000000014056EBAB                 mov     [rsp+28h+arg_0], eax
  19. INIT:000000014056EBAF                 jmp     short $+2
  20. INIT:000000014056EBB1                 add     rsp, 28h
  21. INIT:000000014056EBB5                 retn
  22. INIT:000000014056EBB5 KeInitAmd64SpecificState endp


ядро + пдб можно взять тут - http://dl.dropbox.com/u/159112/Dropbox/win7krn.rar




Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 26 апреля 2010 15:58
· Личное сообщение · #2

Это же для опендбг вопрос? Обойти бы все эти игры с хуками ...

;~* credits *~
;Written for use on Windows 7 7600.16385 AMD64. The following code is loosely based upon
;Vbootkit v2.0, written by Nitin & Vipin - nvlabs.in

может поможет ...

79bd_26.04.2010_CRACKLAB.rU.tgz - Desktop.rar

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube




Ранг: 56.1 (постоянный), 9thx
Активность: 0.040
Статус: Участник

Создано: 26 апреля 2010 18:59
· Личное сообщение · #3

Парень разбирался: the-bizarro.livejournal.com


 eXeL@B —› Крэки, обсуждения —› Crack PatchGuard for Windows 7
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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