Сейчас на форуме: (+6 невидимых) |
eXeL@B —› Протекторы —› И снова HASP Envelope |
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . >> |
Посл.ответ | Сообщение |
|
Создано: 18 сентября 2006 07:39 · Поправил: ARCHANGEL · Личное сообщение · #1 Народ, тема достаточно проста, наконец-то мои руки дошли до изучения HASP Envelope by Alladin или как его там. Примером для своих опытов выбрал я известный Kompas 3D V7 plus и начал его отучать от электронного ключа, но процесс был недолгим, т.к. тут вот какая фигня. Дело в том, что мне нужно ни много, ни мало запустить прогу без USB-ключа, если я её распакую, то цель будет достигнута, но проблема в том, что проверка ключа идёт где-то в недрах самой защиты, и прога без него не распаковывается, значит не получается сделать рабочий дамп, драйвера-эмуляторы тут могут помочь, но на разных операционных системах нужны разные драйвера, а это уже не хорошо. Да и процесс создания такого драйвера простым не назовёшь (сужу по статьям с wasm.ru про Hasp - автор Chingachguk), а изучать стотонные тьюторы без уверенности в их актуальности и возможности потренироваться на более-менее простых примерах тоже неудобно. Можете посоветовать либо толковую ссылку, либо ещё что-то. И ещё, народ, большая просьба не писать всякую чушь типа "пользуйся поисковиком" или "скачай готовый крэк и изучи", поймите, что я проделал определённую работу прежде, чем создавать свой топик и обращаться на форум, поэтому войдите в положение и постарайтесь написать что-нибудь толковое ----- Stuck to the plan, always think that we would stand up, never ran. |
|
Создано: 27 сентября 2007 10:30 · Личное сообщение · #2 Попробуй поюзать монитор Тора меньшей версии например 2,1... КРоме того любой монитор должен хотя бы показывать пароли ключа с этого и надо начинать. Просто монитор 3,2 наверное уже не мониторит лпт порты, а только юсб и заточен под новые дрова. Первая функция которая обрабатывается прогой кроме служебных результаты которых не проверяются всегда будет функа IsHasp проверка есть ли вообще ключ который откликается на такие пароли. результат работы возвращенный статус ноль найден единица нет. если единица то проверка дальше не идет. |
|
Создано: 27 сентября 2007 11:21 · Личное сообщение · #3 Tupis любой монитор должен хотя бы показывать пароли ключа
пароли ключа уже отловил. как дальше отловить саму функцию IsHasp? ещё оказалось, что ида не увидела кусок кода, который в сайсе исполняется как надо. хасп может шифровать участки кода софта? или код самого хаспа пошифрован в exe'шнике проги? PS: Hasp v4.02 |
|
Создано: 27 сентября 2007 12:08 · Личное сообщение · #4 |
|
Создано: 27 сентября 2007 12:24 · Личное сообщение · #5 |
|
Создано: 27 сентября 2007 13:17 · Личное сообщение · #6 |
|
Создано: 27 сентября 2007 13:22 · Личное сообщение · #7 |
|
Создано: 27 сентября 2007 13:34 · Личное сообщение · #8 |
|
Создано: 27 сентября 2007 13:40 · Личное сообщение · #9 |
|
Создано: 27 сентября 2007 13:47 · Личное сообщение · #10 intro Брякайся на FreeEnvironmentStringsA и выходи на уровень выше, там ищи что-то вроде этого cmp bh, 32 - проверяем чтобы номер функции был < 50 jb 004C68FD mov esi, dword ptr [ebp+08] mov eax, dword ptr [esi] mov esi, dword ptr [ebp+10] mov esi, dword ptr [esi] push ebp call 004C7236 - Тут вызов HASP pop ebp mov edi, dword ptr [ebp+14] mov dword ptr [edi], eax - первое возвращаемое значение mov edi, dword ptr [ebp+10] mov dword ptr [edi], ebx - второе возвращаемое значение mov edi, dword ptr [ebp+0C] mov dword ptr [edi], ecx - третье возвращаемое значение mov edi, dword ptr [ebp+08] mov dword ptr [edi], edx - четвертое возвращаемое значение |
|
Создано: 27 сентября 2007 13:59 · Личное сообщение · #11 |
|
Создано: 27 сентября 2007 19:00 · Поправил: 2nd · Личное сообщение · #12 |
|
Создано: 28 сентября 2007 14:58 · Личное сообщение · #13 |
|
Создано: 30 сентября 2007 18:11 · Личное сообщение · #14 intro пишет: Hugo Chaves, пока нет, так как в инете я не нашёл, а образ диска выложить канал не позволяет. 2nd, а может быть есть какой-нить другой, специфичный для нового аpi? В общем так.... В ольке - юзай Olly Advance - это для того что бы тебя хасп не увидал. Делай HW бряк на deviceIoControl - тебе надо отловить перед этим CreateFile - по параметрам файла поймеш что это хасп - словишь хэндл - его в deviceIoControl -и смотри - это есть не что иное как вызов напрямик в дровишки из программы (или ДЛЛ). Далее по коду ты найдешь ту функу которая плюет данные в deviceIoControl - это и будет та функа - у нее обычно кол-во входных параметров равно стандартной hasp(....); из СДК З.Ы. Ну и Кроме торовского еще и другие логеры есть |
|
Создано: 30 сентября 2007 21:55 · Личное сообщение · #15 sataron пишет: Ну и Кроме торовского еще и другие логеры есть эт я в курсе. в остальном, спс за совет. буду смотреть. вопрос ещё один есть - хасп блокирует запуск проги без ключа, а ведь можно использовать апи хаспа в связке с собственным защитным кодом для дополнительных проверок внутри проги во время работы софта, так ведь. таким образом в самый неожиданный момент может случиться аварийный выход из проги или какие-то функции не будут работать или, что ещё хуже, буду выдавать заведомо некорректный результат. и проверок таких может быть, соотвественно, масса. кто-нибудь сталкивался с подобной реализацией защиты с использованием хаспа? |
|
Создано: 02 октября 2007 12:28 · Личное сообщение · #16 |
|
Создано: 02 октября 2007 12:46 · Личное сообщение · #17 |
|
Создано: 02 октября 2007 12:55 · Личное сообщение · #18 |
|
Создано: 02 октября 2007 15:50 · Личное сообщение · #19 |
|
Создано: 02 октября 2007 15:52 · Личное сообщение · #20 |
|
Создано: 03 октября 2007 18:58 · Личное сообщение · #21 Если у тебя нетц дампа ключа оригинального - то моно поуступить так: Смотришь к каким ячейкам прога обращается первый раз.. заполняешь их FF типа... запускаешь - смотришь чем произошло... если не помогло - лезеж дебегером в тело проги на вызоф ф-ки которая к хаспу запрос кидает, там последние 4 параметра - это облать памяти куда ложаться данные - потом тупо по коду смотришь че с данными делается... Я как то без дебага прогу запустил ориентируясь только на номер ячейки в ключе |
|
Создано: 17 октября 2007 10:02 · Личное сообщение · #22 |
|
Создано: 17 октября 2007 10:41 · Поправил: intro · Личное сообщение · #23 |
|
Создано: 03 ноября 2007 18:52 · Поправил: evgbog · Личное сообщение · #24 |
|
Создано: 04 ноября 2007 00:02 · Личное сообщение · #25 evgbog пишет: Как подступиться? Для начала почитай тутор "Unpacking HASP, HASP_HL(SL) & HARDLOCK Envelop with key or emulator" от s0cpy, думаю много вопросов после этого разрешится. Лежит тут по ссылке в предыдущем посте. evgbog пишет: Первые 3 байта кода известны Прикольно, дай отгадаю, это - 4D5A50h aka MZP |
|
Создано: 04 ноября 2007 00:15 · Поправил: SergioPoverony · Личное сообщение · #26 |
|
Создано: 04 ноября 2007 01:14 · Поправил: SergioPoverony · Личное сообщение · #27 |
|
Создано: 04 ноября 2007 01:24 · Поправил: evgbog · Личное сообщение · #28 intro пишет: Для начала почитай тутор "Unpacking HASP, HASP_HL(SL) & HARDLOCK Envelop with key or emulator" от s0cpy, думаю много вопросов после этого разрешится. Лежит тут по ссылке в предыдущем посте. я так понял, что это вариант, когда есть ключ, но у меня ключа нет intro пишет: Первые 3 байта кода известны Прикольно, дай отгадаю, это - 4D5A50h aka MZP Нет, не угадали.. это 6A 74 68 aka PUSH 74 PUSH XXXXXX это код в точке входа, у защищенногно модуля он другой почитал документацию по HASPу (http://www.aladdin.com/support/hasp/vendor.aspx), есть на русском удалось с помощью Toro Monitor отследить PW1 и PW2 какие нужно еще заполнить поля в Toro чтобы он заработал как емулятор ключа? какими должны быть поля Generation, DongleType, MemoryType, USB И т.д? а то у меня проходят команды Hasp In:> HaspIsHasp Hasp Out:> HaspIsHasp Status=7 (0x7) P1=0 P2=0 и все.. status=7 я так понимаю это "HASP_CONTAINER_NOT_FOUND" |
|
Создано: 04 ноября 2007 08:20 · Поправил: SergioPoverony · Личное сообщение · #29 |
|
Создано: 08 ноября 2007 13:46 · Личное сообщение · #30 |
|
Создано: 08 ноября 2007 14:51 · Личное сообщение · #31 |
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . >> |
eXeL@B —› Протекторы —› И снова HASP Envelope |