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

 eXeL@B —› Вопросы новичков —› Нужно обойти проверку на наличие физического электронного ключа Guardant.
Посл.ответ Сообщение

Ранг: 0.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 24 мая 2010 14:31 · Поправил: GESTALT
· Личное сообщение · #1

В программе есть файл .dll который при запуске программы проверяет наличие в компьютере (Windows XP x32) наличие физического ключа защиты (Guardant Stealth 2). Если ключа нету, программа естественно дальше не запускается и выдается ошибка "Key not found". Известно что такая проверка происходит вызовом следующих процедур:

Code:
  1. .idata:00569478 ; Imports from SetupApi.dll
  2. .idata:00569478 ;
  3. .idata:00569478 ; HDEVINFO __stdcall SetupDiGetClassDevsA(LPGUID ClassGuid, PCSTR Enumerator, HWND hwndParent, DWORD Flags)
  4. .idata:00569478                 extrn SetupDiGetClassDevsA:dword
  5. .idata:0056947C ; BOOL __stdcall SetupDiGetDeviceInterfaceDetailA(HDEVINFO DeviceInfoSet, PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData, PSP_DEVICE_INTERFACE_DETAIL_DATA_A DeviceInterfaceDetailData, DWORD DeviceInterfaceDetailDataSize, PDWORD RequiredSize, PSP_DEVINFO_DATA DeviceInfoData)
  6. .idata:0056947C                 extrn __imp_SetupDiGetDeviceInterfaceDetailA:dword
  7. .idata:0056947C                                         ; DATA XREF: SetupDiGetDeviceInterfaceDetailAr
  8. .idata:00569480 ; BOOL __stdcall SetupDiEnumDeviceInterfaces(HDEVINFO DeviceInfoSet, PSP_DEVINFO_DATA DeviceInfoData, LPGUID InterfaceClassGuid, DWORD MemberIndex, PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData)
  9. .idata:00569480                 extrn __imp_SetupDiEnumDeviceInterfaces:dword
  10. .idata:00569480                                         ; DATA XREF: SetupDiEnumDeviceInterfacesr
  11. .idata:00569484 ; BOOL __stdcall SetupDiDestroyDeviceInfoList(HDEVINFO DeviceInfoSet)
  12. .idata:00569484                 extrn __imp_SetupDiDestroyDeviceInfoList:dword
  13. .idata:00569484                                         ; DATA XREF: SetupDiDestroyDeviceInfoListr
  14. .idata:00569488
  15. .idata:0056948C ;
  16. .idata:0056948C ; Imports from ntdll.dll
  17. .idata:0056948C ;
  18. .idata:0056948C                 extrn __imp_NtQuerySystemInformation:dword
  19. .idata:0056948C                                         ; DATA XREF: NtQuerySystemInformationr
  20. .idata:00569490
  21. .idata:00569490
  22. .idata:00569490
  23. .idata:00569490                 end DllEntryPoint
  24.  

Для анализа использовал IDA 5.5.0

Теперь сам вопрос. Как этот кусок заменить (или что нужно сделать) что бы при ненахождении ключа (физически) программа не ошибку выдавала, а возвращала как бы ответ что ключ какбэ есть. Заранее спасибо всем откликнувшимся.



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

Создано: 24 мая 2010 15:43 · Поправил: ZLOvar
· Личное сообщение · #2

Скорее всего самая уязвимая процедура в ДЛЛ это:
Code:
  1. .idata:0056948C                 extrn __imp_NtQuerySystemInformation:dword
  2. .idata:0056948C                                         ; DATA XREF: NtQuerySystemInformationr

Прошу выложить всю эту процедуру или её кусок. А ещё лучше полностью всю ДЛЛ. (если это возможно)



Ранг: 0.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 24 мая 2010 15:52 · Поправил: GESTALT
· Личное сообщение · #3

Большое спасибо что откликнулись, если в процессе сможете ее пропатчить то выложите готовую .dll
http://www.multiupload.com/G6G403SWQO


И на всякий случай полностью эта процедура
Code:
  1. xt:004DBA48 ; =============== S U B R O U T I N E =======================================
  2. .text:004DBA48
  3. .text:004DBA48 ; Attributes: thunk
  4. .text:004DBA48
  5. .text:004DBA48 NtQuerySystemInformation proc near      ; CODE XREF: sub_4DBBF4+63p
  6. .text:004DBA48                                         ; sub_4DBBF4+AAp
  7. .text:004DBA48                 jmp     ds:__imp_NtQuerySystemInformation
  8. .text:004DBA48 NtQuerySystemInformation endp
  9. .text:004DBA48
  10. .text:004DBA48 ; ---------------------------------------------------------------------------
  11. .text:004DBA4E                 align 10h
  12. .text:004DBA50 off_4DBA50      dd offset byte_4DBA54   ; DATA XREF: sub_4DBBF4+16r
  13. .text:004DBA50                                         ; sub_4DBBF4+802r
  14. .text:004DBA54 byte_4DBA54     db 0Eh                  ; DATA XREF: .text:off_4DBA50o
  15. .text:004DBA54                                         ; Record
  16. .text:004DBA55                 db 12,'TProcessInfo'
  17. .text:004DBA62                 dd 10h, 1
  18. .text:004DBA6A                 dd offset off_401100
  19. .text:004DBA6E                 dd 0
  20. .text:004DBA72                 align 4




Ранг: 0.2 (гость)
Активность: 0=0
Статус: Участник

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

ZLOvar

Привет! Очень нужна твоя помощь вот в этом вопросе ! Если можешь расскажи поподробнее
http://exelab.ru/f/action=vthread&forum=5&topic=16289.html




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 20 апреля 2011 10:01 · Поправил: ARCHANGEL
· Личное сообщение · #5

GESTALT пишет:
И на всякий случай полностью эта процедура

Code:
  1. .text:004DBA48
  2. .text:004DBA48 ; Attributes: thunk
  3. .text:004DBA48
  4. .text:004DBA48 NtQuerySystemInformation proc near      ; CODE XREF: sub_4DBBF4+63p
  5. .text:004DBA48                                         ; sub_4DBBF4+AAp
  6. .text:004DBA48                 jmp     ds:__imp_NtQuerySystemInformation
  7. .text:004DBA48 NtQuerySystemInformation endp
  8. .text:004DBA48


Да, сильно. Что ж вы хотели там через IDA наанализировать, если вы не знаете базовых понятий. Надо книжки почитать, а потом гарданты ломать уже. Под процедурой полностью понимается не код Native API (и не переходник на неё), а код функции, вызывающей NtQuerySystemInformation из образа защищаемого приложения. То, что вы привели, не имеет никакой ценности, из листинга следует, что нужно привести код sub_4DBBF4.

-----
Stuck to the plan, always think that we would stand up, never ran.





Ранг: 337.6 (мудрец), 224thx
Активность: 0.210.1
Статус: Участник
born to be evil

Создано: 20 апреля 2011 14:40
· Личное сообщение · #6

ARCHANGEL
Ветка годовалой давности

-----
От многой мудрости много скорби, и умножающий знание умножает печаль





Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 20 апреля 2011 18:08
· Личное сообщение · #7

И нафига ты топ поднял, в личку не судьба ему написать?


 eXeL@B —› Вопросы новичков —› Нужно обойти проверку на наличие физического электронного ключа Guardant.
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати