Сейчас на форуме: -Sanchez- (+8 невидимых) |
eXeL@B —› Основной форум —› CPUID hook |
<< . 1 . 2 . 3 . >> |
Посл.ответ | Сообщение |
|
Создано: 05 июля 2007 10:20 · Личное сообщение · #1 |
|
Создано: 07 июля 2007 10:34 · Личное сообщение · #2 drin пишет: VMware/VPC и некоторые другие эмуляторы при желании палятся, в той же фемиде есть подобная опция... Да, но все в основном используют способ через бэкдор, исходник которого гуляет везде. Это обходится парой строчек в файле конфига vmx Можно конечно по железу детектить, но я пока не встречал программ которые используют отличный от первого метод детекта (хотя что-то там в wmkeeper classic используется подзабыл ?) ----- in search of sunrise |
|
Создано: 07 июля 2007 10:41 · Поправил: SergX · Личное сообщение · #3 SLV пишет: > kernel32.DeviceIoControl интересно что ты имел ввиду, упомянув эту апи, провальность идеи или серийник винта через смарт =] Не сосвем тебя понял. Я имел ввиду то что хукнув kernel32.DeviceIoControl можно подставить лоадером любое название винта, серийку и версию. Если не ошибаюсь то это касается и сетевухи и многого другого. Этот пример не на что не претендует. Просто чтоб показать суть. Я делал это так: Var TrueDeviceIoControl: function(hDevice: THandle; dwIoControlCode: DWORD; lpInBuffer: Pointer; nInBufferSize: DWORD; lpOutBuffer: Pointer; nOutBufferSize: DWORD; var lpBytesReturned: DWORD; lpOverlapped: POverlapped): BOOL; stdcall;
|
|
Создано: 07 июля 2007 11:42 · Личное сообщение · #4 bloombloom пишет: Да, но все в основном используют способ через бэкдор, исходник которого гуляет везде. Это обходится парой строчек в файле конфига vmx В фемиде кроме того что палиться еще и юзается кусок кода который на виртуальной машине выполниться по определению не может... это мне разраб сказал... так что там не так просто все. |
|
Создано: 07 июля 2007 11:50 · Поправил: ToBad · Личное сообщение · #5 SergX пишет: If lpBytesReturned=528 Этот момент я не понял. Объясни подробней. Ты так определяешь что запрашивается именно инфа о винте ? Я так понял используешь advApiHook. А все ли защищённые программы будут работать подобным образом ? Я использовал этот метод всего дважды, одни раз подмена инфы о винте, но не через DeviceIoControl, а второй для снятия триала… В обоих случаях был аспр. Кстати вывод логов из Function New… удобно делать через sendmessage в другое приложение или цепляющее dll к процессу. Так же вопрос, а поможет ли этот метод для обмана .NET программ ? |
|
Создано: 07 июля 2007 12:04 · Личное сообщение · #6 Pluton пишет: В фемиде кроме того что палиться еще и юзается кусок кода который на виртуальной машине выполниться по определению не может... это мне разраб сказал... так что там не так просто все. Только что запаковал полной фемидой 1.9.1.0 файлик, поставил детект вм, запустил варю - детектит, заткнул бэкдор и запустил - не детектит. Так что в фемиде просто все. Могу ваш пример потестить, если интересно. ----- in search of sunrise |
|
Создано: 07 июля 2007 12:17 · Личное сообщение · #7 |
|
Создано: 07 июля 2007 13:59 · Поправил: SergX · Личное сообщение · #8 ToBad If lpBytesReturned=528 lpBytesReturned это размер lpOutBuffer DeviceIoControl получает lpInBuffer и возвращает lpOutBuffer. В lpInBuffer запрос к устройству в lpOutBuffer ответ. Размер блока в котором возвращается название винта, серийка и версия у меня всегда был 528 байт на разных компах. Конечно этот способ не универсален, это просто пример. ToBad пишет: Ты так определяешь что запрашивается именно инфа о винте ? В этом примере никак. Но можно сначала ловить CreateFileA который возвращает хендл открываемого устройства. Смотреть какое устройство открывается и запоминать хендл. А потом проверять hDevice:THandle при вызове DeviceIoControl. ToBad пишет: Я так понял используешь advApiHook. Да именно. Респект MS-REMу ! Куда он пропал интересно... ToBad пишет: А все ли защищённые программы будут работать подобным образом ? Если проверять hDevice:THandle и сделать всё правильно то уверен что все. ToBad пишет: Кстати вывод логов из Function New… удобно делать через sendmessage в другое приложение или цепляющее dll к процессу. Хорошая идея. Я делал в файл. Можно сделать и так и так по выбору. ToBad пишет: Так же вопрос, а поможет ли этот метод для обмана .NET программ ? Честно говоря, я почти ничего не знаю про .NET Никогда не было потребности разбираться. |
|
Создано: 07 июля 2007 13:59 · Личное сообщение · #9 |
|
Создано: 07 июля 2007 15:25 · Личное сообщение · #10 bloom пишет: Хотел бы посмотреть на софт с нормальным детектом ВМ, если кто встречал. Вроде WMkeeper банит кошельки когда обнаружит что работает в ВМ. У меня были некоторые эксперименты в этом деле, использовал разные приёмы: * проверял наличие \.host * проверял есть ли в системе мосты и контроллеры под Pentium2, а процессор совсем не Pentium2 * еще 1 приемчик, который WMVare выносит в БСОД (проверял на 2000/XP/2003), поподробнее конечно же не расскажу |
|
Создано: 07 июля 2007 19:02 · Личное сообщение · #11 drin пишет: У меня были некоторые эксперименты в этом деле, использовал разные приёмы: * проверял наличие \.host * проверял есть ли в системе мосты и контроллеры под Pentium2, а процессор совсем не Pentium2 * еще 1 приемчик, который WMVare выносит в БСОД (проверял на 2000/XP/2003), поподробнее конечно же не расскажу так выложи "крякмис" этакий ----- in search of sunrise |
|
Создано: 07 июля 2007 20:25 · Личное сообщение · #12 |
|
Создано: 07 июля 2007 21:45 · Личное сообщение · #13 drin пишет: Ээээ нет я таким не страдаю... У меня почти все продукты с привязкой железу, и конечно же я сопротивляюсь запуску на эмуляторах Выложу "крякми", а вы уже будете знать что там искать вкусненькое... жалко мне Ну тогда ссылку на продукт дай... Прикольно получается: "Уже который год крякерское сообщество из стран СНГ а так же братья из Китая, не могут победить самописную защиту drin-а. Все попытки увидеть хотя бы софт с её использованием потерпели неудачу. Крякеры кусают локти, социальная инженерия более не рулит, авторы протов дико завидуют и пытаются перенять успешную стратегию drin-а..." |
|
Создано: 07 июля 2007 22:47 · Поправил: SergX · Личное сообщение · #14 |
|
Создано: 07 июля 2007 22:52 · Личное сообщение · #15 ToBad пишет: "Уже который год крякерское сообщество из стран СНГ а так же братья из Китая, не могут победить самописную защиту drin-а. Все попытки увидеть хотя бы софт с её использованием потерпели неудачу. Крякеры кусают локти, социальная инженерия более не рулит, авторы протов дико завидуют и пытаются перенять успешную стратегию drin-а..." З.Ы.: а по теме - ответил выше, дам что-то писаное мной, будет тот же кракми, который постепенно перейдет в статус кракед нафик оно мне надо |
|
Создано: 07 июля 2007 22:54 · Поправил: drin · Личное сообщение · #16 |
|
Создано: 09 июля 2007 17:12 · Личное сообщение · #17 |
|
Создано: 09 июля 2007 18:03 · Личное сообщение · #18 |
|
Создано: 10 июля 2007 09:12 · Личное сообщение · #19 |
|
Создано: 10 июля 2007 11:05 · Личное сообщение · #20 |
|
Создано: 10 июля 2007 11:57 · Личное сообщение · #21 |
|
Создано: 10 июля 2007 14:21 · Поправил: SergX · Личное сообщение · #22 |
|
Создано: 11 июля 2007 09:14 · Личное сообщение · #23 |
|
Создано: 25 февраля 2017 05:31 · Поправил: bartolomeo · Личное сообщение · #24 сорри за некропост, но похоже что тот вывод к которому пришли все написавшие в этом топике неверен: " cpuid break via hardware virtualisation Not much to say, cpuid causes VM-Exit, so whenever cpuid occurs in our target, inject int 3 event into Guest. i3here on - must be set in SoftICE No MP support due to problem with NMI handling when SoftICE is active. Disable MP in BIOS if you want to use this tool with SoftICE, as this tool is designed to work with SoftICE and i3here on... Requires Intel Hardware Virtualisation technology, and I have no idea how this will work on AMD!!!! Did you wonder about finding SecuROM cpuid stuff? Well here it is... (c) 2008 deroko of ARTeam" |
|
Создано: 25 февраля 2017 07:06 · Поправил: difexacaw · Личное сообщение · #25 bartolomeo Это не единственный способ. Более того, есть альтернативный метод. Смотрите я потрассировал несколько итераций, что бы показать суть Не требуется ядерных привилегий. Железячная виртуализация это стрелять пушкой по воробьям. Реализация сложна и не стабильна, так же невозможно интегрировать локально в приложение. ----- vx |
|
Создано: 25 февраля 2017 13:31 · Личное сообщение · #26 |
|
Создано: 25 февраля 2017 14:38 · Личное сообщение · #27 VT-x пишет: Инде из вашего видео к сожалению мало что понятно Что там непонятного? Устанавливается монитор и при срабатывании условия вызывается\может вызываться обработчик. После срабатывания можно обрабатывать инструкцию всеми мыслимыми и не мыслимыми способами, прыгнув на свой буфер, а из него уже вернуть необходимый\желаемый результат. Конкретную реализацию не видел, скорее всего роутинг + диспатчер + APC. |
|
Создано: 25 февраля 2017 14:45 · Личное сообщение · #28 VT-x Ну а что там не ясно. Линейный блок копируется в буфер и исполняется. Ветвления эмулируются. Это бесконечный цикл копирования-исполнения. Там же far jmp в видосе на буфер. Работает как часы, только есть небольшая проблема со стеком(защита). При ровной реализации поток никак не может выйти из под монитора или его обнаружить. 87c7_25.02.2017_EXELAB.rU.tgz - STK.pdf ----- vx | Сообщение посчитали полезным: shellstorm |
|
Создано: 25 февраля 2017 17:09 · Личное сообщение · #29 |
|
Создано: 25 февраля 2017 17:15 · Поправил: difexacaw · Личное сообщение · #30 |
|
Создано: 25 февраля 2017 17:28 · Личное сообщение · #31 |
<< . 1 . 2 . 3 . >> |
eXeL@B —› Основной форум —› CPUID hook |