Сейчас на форуме: (+9 невидимых) |
eXeL@B —› Протекторы —› VMProtect (Туторы, скрипты, плагины, ...) |
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 14 . 15 . >> |
Посл.ответ | Сообщение |
|
Создано: 18 марта 2010 11:56 · Поправил: kioresk · Личное сообщение · #1 Решил создать отдельную тему по VMProtect'у, чтобы собирать в одном месте информацию по этому проту и обсуждать детали. Для начала ответ на самый распространенный вопрос. 1. Почему OllyDbg вылетает при запуске программы, защищенной VMProtect'ом? Потому что VMProtect использует баг с переполнением буфера в старых версиях dbghelp.dll, из-за которого отладчик падает. Чтобы обойти его необходимо исправить баг в dbghelp.dll или положить в папку отладчика новую версию файла dbghelp.dll, который можно взять из комплекта Debugging Tools for Windows: Добавлено Microsoft включил дистрибутив Debugging Tools в состав пакета Windows SDK (который весит достаточно прилично), поэтому вот альтернативные ссылки на: 1. 2. |
|
Создано: 14 ноября 2013 11:39 · Личное сообщение · #2 |
|
Создано: 14 ноября 2013 13:04 · Личное сообщение · #3 |
|
Создано: 14 ноября 2013 16:47 · Личное сообщение · #4 Djeck как реализовывать не важно) старые это какие? любые меньше 2.12? ----- [nice coder and reverser] | Сообщение посчитали полезным: Mishar_Hacker |
Ранг: 281.8 (наставник), 272thx Активность: 0.25↘0.01 Статус: Участник Destroyer of protectors |
Создано: 14 ноября 2013 19:31 · Поправил: MasterSoft · Личное сообщение · #5 Djeck пишет: Да и надо решить вопрос со старыми версиями прота. Там проверка немного по другому. да там лажа ваще, хидер даже в принципе подменить достаточно и усё. Djeck пишет: Как мне кажется лучше замутить это дело программным путём, а не скриптом. Я начал это дело, даже GUI нарисовал делал уже прогу на коленке для патча crc, стали баги вылезать...да и с антидебагом тоже какие-то траблы были, но это можно рипнуть из вамитовского плага да и в паблике инфы есть, но я забил в итоге. Hellspawn пишет: старые это какие? любые меньше 2.12? может и ошибаюсь, но вроде меньше 2.x |
|
Создано: 14 ноября 2013 19:49 · Личное сообщение · #6 |
|
Создано: 14 ноября 2013 20:43 · Личное сообщение · #7 Hellspawn пишет: старые это какие? любые меньше 2.12 Да, уже на 2.08 файл не мапится в память. Надо ловить CreateFile или GetModuleHandle MasterSoft пишет: да там лажа ваще, хидер даже в принципе подменить достаточно и усё. Это по методу LCF-AT? Если да, то это не инлайн. Держать рядом не патченный файл не кошерно. Да и на 2.08 например не прокатывает. MasterSoft пишет: делал уже прогу на коленке для патча crc, стали баги вылезать Да какие там баги могут вылезать? Немного проблемно это место найти из-за мусора,но и это не огромная проблема.По анти-отладке вамит уже давал исчерпывающую информацию. А в последних версиях вообще халява: peb запатчить, железки спрятать и захучить Zw* функи. Единственное, так и не понял, как вмпрот палит мемори бряки на секции кода. Hellspawn пишет: версию бы ещё детектить Да, это бы самому было интересно узнать. И вообще у меня складывается впечатление, что ты агрессивно настроен к проту Может быть CRC-патчер? |
Ранг: 281.8 (наставник), 272thx Активность: 0.25↘0.01 Статус: Участник Destroyer of protectors |
Создано: 14 ноября 2013 21:21 · Поправил: MasterSoft · Личное сообщение · #8 Djeck пишет: Это по методу LCF-AT? Если да, то это не инлайн. Держать рядом не патченный файл не кошерно. не знаю чего там LCF-AT придумала, и зачем держать не патченый файл рядом...я говорю про патч хидера на оригинальный в памяти. вот пример тебе грузанул:http://www.sendspace.com/file/5v74ik там оригинал и патченный файл. просто хидер туда целиком запихнул, можно было обойтись патчем нескольких байт, но это я для наглядности. Djeck пишет: Да какие там баги могут вылезать? ну я вообще как кодер не очень=) накодишь - молодец, может хоть прот обновят наконец, а то уныло уже. Djeck пишет: Немного проблемно это место найти из-за мусора,но и это не огромная проблема. это как раз совсем не проблема, пару бряков и прикрутить дисасм как бы не сложно. да проблемы вообще никакой нет в реализации, когда начал писать вроде было сначала всё няшно, даже работало=) а потом лень меня одолела и понял, что для себя и так сойдёт. |
|
Создано: 14 ноября 2013 21:56 · Личное сообщение · #9 MasterSoft пишет: может хоть прот обновят наконец, а то уныло уже. Да не не надо обновлять, и так хорошо MasterSoft пишет: да проблемы вообще никакой нет в реализации, когда начал писать вроде было сначала всё няшно, даже работало=) а потом лень меня одолела и понял, что для себя и так сойдёт. Но это у всех так Вроде работает, да и ладно. |
|
Создано: 15 ноября 2013 00:25 · Поправил: Djeck · Личное сообщение · #10 Вообщем посмотрел, что творится со старыми версиями. Функция расчёта почти такая же, как и в новых. Различается не намного. Например для версии 1.70: Code:
Единственное в версиях меньше 2.12 файл не размещается в памяти, но место сохранения можно найти вообще не запуская файл. Скрипт нужно немного доработать, а то в старых версиях файл запускается. P.S. Пока не понял как читается файл с диска. CreateFile\ReadFile и т.д. не срабатывают. |
|
Создано: 15 ноября 2013 12:03 · Личное сообщение · #11 Djeck в младших версиях проверяется заголовок и какие-то критичные куски самого прота, ловить просто, мемори бряк на хидер например, так это выглядит в файле от MasterSoft. Code:
----- [nice coder and reverser] |
|
Создано: 15 ноября 2013 12:43 · Личное сообщение · #12 Спасибо тебе, волшебник. А тем временем на форуме вмп уже |
|
Создано: 15 ноября 2013 12:53 · Личное сообщение · #13 |
|
Создано: 15 ноября 2013 14:55 · Личное сообщение · #14 Hellspawn пишет: как находить место без запуска? сигнатуры + дизасм? вообщем да. Искать mov dword ptr [ebp], eax. Найдётся несколько мест, но только в нашем после команды сохранения почти всегда стоит pushad. Или ещё можно попробовать найти сдвиг SHL EAX, 4. Я находил только одну команду (нашу). Только в версиях до 2.xx, константа = 7, а поменьше от 4 до 7. Carpe DiEm пишет: А тем временем на форуме вмп уже --> выложили<-- ссылку на этот тред Интересно, что чувак стуканул, но так и не понял как происходит патч хешей. Жалуется, что патчат пиб+ перехватывают Zw* функции Да и кстати, что-то ему пока не ответили. P.S. интересно прот кодит до сих пор дерьмотолог? |
|
Создано: 15 ноября 2013 15:11 · Личное сообщение · #15 |
|
Создано: 15 ноября 2013 15:56 · Личное сообщение · #16 |
|
Создано: 15 ноября 2013 16:10 · Личное сообщение · #17 Carpe DiEm пишет: А тем временем на форуме вмп уже --> выложили<-- ссылку на этот тред Djeck пишет: чувак стуканул Я более, чем уверен, что автор прота и без того чувака в курсе про этот тред ;) Airenikus пишет: Чем больше наворотов у протектора, тем меньше ими пользуются шароварщики Большинство предпочитает простое и эффективное решение, это да, но те кто любит выжать максимум из купленного продукта не поленятся во всем разобраться, такие тоже встречаются. ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. |
|
Создано: 15 ноября 2013 16:53 · Личное сообщение · #18 |
|
Создано: 15 ноября 2013 17:29 · Личное сообщение · #19 |
|
Создано: 15 ноября 2013 18:38 · Поправил: Djeck · Личное сообщение · #20 neprovad пишет: Поглядел краем глаза тутор, почему-то не упоминается что существует проверка кода самого примитива CRC Вот чтобы не задавать таких вопросов, надо глядеть не краем глаза, а обоими глазами . Во-первых нам без разницы, что он там проверяет, мы меняем любые хеши. Пускай он хоть обосрётся проверять их. Во-вторых сам примитив никто и не трогает, как мы можем не пройти проверку? Hellspawn пишет: у меня ниче не палит палит, я уже об этом говорил. А как вообще оля ставит мемори бряки? Какие способы их запалить. | Сообщение посчитали полезным: neprovad |
|
Создано: 15 ноября 2013 18:45 · Личное сообщение · #21 Djeck VirtualProtect как же ещё. запалить проверив атрибуты у памяти. На хеадер если ставить, то брякаемся как раз на проверке сразу, потом чуть потрейсить и вуаля: Code:
----- [nice coder and reverser] |
|
Создано: 15 ноября 2013 18:46 · Личное сообщение · #22 |
|
Создано: 15 ноября 2013 18:56 · Личное сообщение · #23 |
|
Создано: 15 ноября 2013 20:09 · Поправил: newbie_cracker · Личное сообщение · #24 >Djeck палево как то обошол меняя настройки фантика и стронга >Hellspawn бряк на хидер минуту в нтдлл запускал потом сюда Code:
минуты две по запускал ,только после этого выпал на хэши |
|
Создано: 16 ноября 2013 12:09 · Личное сообщение · #25 Мельком поглядел тутор, пока время было. Коль уж я в гритсах, придётся отрабатывать в принципе, чувствуется, что редактора не было, местами грамматика хромает, запятые выставлены рандомно и есть очепятки типа API LOGER или VMProect в противном случае указываем правильный в RVA-формате (т.е. как Вы видите его в отладчике) лично мне в первую очередь из отладчика приходят в голову адреса в CPU, а там ВА, а не РВА на мой взгляд, в патче лучше сверять адреса с учётом плавающей базы через дельта-смещение, иначе может быть коллизия, нежели последнюю часть адреса и часть хеша И последнее нужно найти свободное место в качестве переменной. Сюда система запишет старое значение. Я указал место чуть ниже нашего патча когда патч отожрётся и забудется эта вольность, она доставит много приятных моментов отладки, когда вызов апи паразапишет часть патча. лучше сделай push reg; push esp и не трогай область кода «фиктивную» процедуру получения хешей она нерелокабельна насколько мне известно, LCF-AT - это она, а не он что прота обновление не за горами, в принципе уже сказали, так что запасаемся поп-корном И напоследок, с чем ты так и не разобрался, почему оно падает. Внутри ВМ на входе есть проверка и ветвление. Если проверка не проходит, оно уходит на плохую ветку и крашится. В проверке участвуют некоторые дворды из кода и выделенной памяти, TF из флагов. Конкретно в данном случае фейлится проверка на адрес 0x469e57 и лежащий в ней шифрованный адрес выделенной памяти, откуда берётся второй дворд. Второй дворд конкретно берётся из адреса 0xf70050, это было, видимо, перенаправлено с выделенной памяти скриптом. Полагаю, что это скорее всего косяк скрипта, но не разбирался, как он работает. |
|
Создано: 16 ноября 2013 13:21 · Личное сообщение · #26 Ребят. просмотрел тоже краем глаза.. ВАМита на вас нету.. я на эту граблину года 2 назад наступил, тоже пытался ЦРЦ править, создавая плаг для ольки, просчитывая ЦРЦ из бинаря с винта.. к сожалению данная технология не всегда работает. Беда в том, что в некоторых прогах идет самомодификация кода, и црц.. к моменту расчета, должна считаться уже модифицированного кода. В моем случае было гдето 1.5к црц проверок.. я подменил гдето 98 проц. изза селф модифи. Эта техника имеет право на существование, но не является поноцеей 100 проц. ----- Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме.... |
|
Создано: 16 ноября 2013 16:26 · Поправил: Djeck · Личное сообщение · #27 Archer пишет: в принципе, чувствуется, что редактора не было, местами грамматика хромает, запятые выставлены рандомно Как нету? Word рулит Archer пишет: лично мне в первую очередь из отладчика приходят в голову адреса в CPU, а там ВА, а не РВА Да конечно, это очепятка Archer пишет: она нерелокабельна Да с этим полностью согласен. Каждый этот момент может поправить сам, я дописывал статью на последнем издыхании и сильно спешил, поэтому упустил этот момент Archer пишет: насколько мне известно, LCF-AT - это она, а не он Ну значит ядрённая баба Archer пишет: И напоследок, с чем ты так и не разобрался, почему оно падает. Внутри ВМ на входе есть проверка и ветвление. Если проверка не проходит, оно уходит на плохую ветку и крашится Хм.. интересно почему на xp всё ок, а на семерке фолт. Даже если снимать на 7, всё равно проверку не проходим. Причём тестил на разных компах, практически везде всё ок. Причём я это место видел и понял о чём ты говоришь, но не проверил точно, поэтому будучи не уверенным в своих мыслях не стал об этом говорить. Кстати, в процедуре расчёта хеша есть идентичная проверка. Стоит прыжок, и если не прыгнет идём на идентичный кусок расчёта. Хеш получится тот же самый, поэтому для меня осталось загадкой, зачем две одинаковые процедуры расчёта. VodoleY пишет: Ребят. просмотрел тоже краем глаза.. ВАМита на вас нету.. я на эту граблину года 2 назад наступил, тоже пытался ЦРЦ править, создавая плаг для ольки, просчитывая ЦРЦ из бинаря с винта.. Ты о чём? Нет я вправду не понял... Мы ничего не рассчитываем, всё делает сам прот. Зачем считать что-то с диска? Мы всего-лишь в месте сохранения подменяем сам хеш, ничего не меняя в функции расчёта. VodoleY пишет: Беда в том, что в некоторых прогах идет самомодификация кода, и црц.. к моменту расчета, должна считаться уже модифицированного кода Как это может мешать нам? Ну пусть VMProt и считает, мы то здесь пр чём. Если есть возможность дай посмотреть прогу, что бы понять о чём ты говоришь |
|
Создано: 16 ноября 2013 17:20 · Личное сообщение · #28 |
|
Создано: 16 ноября 2013 17:40 · Личное сообщение · #29 |
|
Создано: 16 ноября 2013 18:55 · Личное сообщение · #30 На счёт проверки, тоже прихожу к мнению, что и Арчи - видать где-то косячит скрипт. Снимал руками, вроде всё ок. Сначало думал, что это опция прота, которая проверяет целостность объектов вм, но даже на минимальных опциях (с выключенной опцией) происходит ошибка. P.S. Вообщем, по статье сделаю вывод такой: она конечно же не лишена недостатков, но основная тема раскрыта, где и что патчить найдено, а как патчить пускай каждый выбирает свой способ.В любом случае хуже от того, что я написал этот туториал не будет. | Сообщение посчитали полезным: Jaa |
|
Создано: 17 ноября 2013 14:28 · Личное сообщение · #31 |
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 14 . 15 . >> |
eXeL@B —› Протекторы —› VMProtect (Туторы, скрипты, плагины, ...) |