Сейчас на форуме: -Sanchez- (+7 невидимых) |
![]() |
eXeL@B —› Основной форум —› Взлом dotNET программ |
<< 1 ... 36 . 37 . 38 . 39 . 40 . 41 . 42 . 43 . 44 . 45 . 46 ... 49 . 50 . >> |
Посл.ответ | Сообщение |
|
Создано: 30 августа 2010 22:59 · Поправил: s0l · Личное сообщение · #1 Со времени создания топика много обсудили, во много м разобрались и много осталось за кадром. Решил подшить выкладываемый софт и линки ![]() Инструменты: Рег-данные: Code:
Рег-данные: Code:
Статьи с хабры: Другое: [url=http://lifeinhex.com/string-decryption-with-de4dot/]String decryption with de4dot[/url - Last edit: 2012-02-17, Links fixed. Jupiter] ![]() |
|
Создано: 20 января 2016 17:00 · Личное сообщение · #2 Всем привет. Бьюсь уже неделю над деобфукацией файла. При помощи de4dot удалось частично деобфусцировать файл. Но большинство классов всеравно не читаемы. Пробовал различные версии de4dot, все выдают одинаковый результат. Предположительно обфускация выболнена обычным Конфузером, но я не уверен. Сам файл тут: https://drive.google.com/file/d/0B4RdvybmmiBldDUyb3IxS0haUnc Помогите пожалуйста, очень хочу посмотреть исходники. Буду рад любой информации, хотябы версии обфускатора. Спасибо! ![]() |
|
Создано: 23 января 2016 15:49 · Поправил: Natik · Личное сообщение · #3 splinger ConfuserEx 0.6.0 UnConfuserEx by Shadow прекрастно с ним справляется. Дальше утилитами от CodeCracker (stringdecryptor, switchkiller и т.д.) Ну и в конце De4Dot ![]() |
|
Создано: 24 января 2016 07:17 · Личное сообщение · #4 |
|
Создано: 24 января 2016 10:48 · Личное сообщение · #5 |
|
Создано: 24 января 2016 17:37 · Личное сообщение · #6 Mishar_Hacker Надеялся на чудо но его не произошло ![]() De4Dot дает похожий резцльтат, большинство классов нечитаемы. Natik А как ты определил версию конфузера, можно по-подробнее? Попробую заюзать UnConfuserEx by Shadow, если найду ![]() Добавлено спустя 15 часов 10 минут Прогнал файл через UnConfuserEx by Shadow. Из более чем 1000 классов 18 не деобфусровались. Пытался найти участки кода которые мне нужны, не знаю совпадение или нет, но необходимый кусок не расшифровался. Буду рыть дальше, если у кого-то появятся еще идеи, пожалуйста поделитесь Спасибо. ![]() |
|
Создано: 25 января 2016 16:53 · Личное сообщение · #7 Вместо рефлектора воспользовался последним docPeek, он вроде бы как открывает все файлы. Теперь у меня следующая проблема. Все строковые переменные и прочее закодированы. В рантайме они декодируется вызовом методов класса Module который я приложил. в нем 18к строк и он запутанными тропками правдами неправдами как-то дешифрует строки. Кто-нибудь сталкивался с таким файлом, возможно есть известные методы борьбы с ним? ![]() |
|
Создано: 26 января 2016 00:27 · Поправил: lolo133 · Личное сообщение · #8 splinger Как тебе написали выше, порядок действий такой: 1) UnConfuserEx - распаковка 2) stringdecryptor - декриптовка строк 3) switchkiller - деобфускация защиты Control Follow (это то, что Вы называете кривыми тропками) 4) Dedot (лучше брать пофикшенный v3.1.41592.3405 by IvancitoOz) это уже моё имхо. мой вариант на скорую руку (минус 8 методов): PS: Юзайте dnSpy в качестве дебага, реверсаи сохранения сорцов. В этом случае, счастья у Вас прибавится, а количество потраченных на реверс часов, убавится. ![]() |
|
Создано: 26 января 2016 10:30 · Личное сообщение · #9 |
|
Создано: 26 января 2016 11:28 · Поправил: lolo133 · Личное сообщение · #10 Можно ![]() Учтите только, что практически все антивирусники, подозревают данный софт в троянстве. Если что, положил в архив сорцы от switchkiller'а ![]() |
|
Создано: 26 января 2016 19:23 · Личное сообщение · #11 lolo133 пишет: мой вариант на скорую руку (минус 8 методов): Спасибо за наводку, я также уже самостоятельно провел эти манипуляции и получил аналогичный результат, не успел отписаться ![]() У меня появилось новое затруднение. Предлогаю рассмотреть его на примере приведенного тобой файла. Если рассмотреть класс GClass17 в нем используется подкласс Class151: Code:
При этом объявления самого класса Class151 внутри GClass17 отсутствует. Если же мы обратился к оргинальному файлу, при его открытии в dnSpy мне удалось найти этот класс и в нем есть объявление этого класса: Code:
При этом нормально читаемым его, конечно, тоже нельзя назвать. Я предполагаю что такая фигня происходит всегда когда в коде выполняются операции со списками с использованием символа => Эти отствующие классы удаляются из файла на самом первом этапе после применения UnConfuserEx. Есть идеи как побеждать? ![]() |
|
Создано: 27 января 2016 02:32 · Личное сообщение · #12 Прошу помощи, господа! Есть ConfuserEx версии 0.6.0. Распаковал руками, через de4dot прогнал. Не получается расшифровать строки и некоторые функции. Нашёл 10 функций расшифровки строк, отличаются только константами в вычислениях. Используются в программе в случайном порядке. Так же есть несколько функций для расшифровки кода функций. Существующие StringDecrypter'ы с такой штукой не справляются. de4dot с ключами --strtok сваливается - ругается, что сигнатура функций изменена (возвращаемый тип - не string, а генерик). Как с этим бороться? Исходный файл: p.s.> Кстати, после распаковки (хоть вручную, хоть через UnconfuserEx) и исправления адреса EntryPoint - программка не запускается. Что и где ещё надо поправить, чтобы распакованный экзешник запустился? ![]() |
|
Создано: 27 января 2016 04:37 · Поправил: lolo133 · Личное сообщение · #13 splinger пишет: При этом объявления самого класса Class151 внутри GClass17 отсутствует. Посмотрел в 3х прогах (dnSpy,SAE,Reflector) везде всё есть. Либо вопрос некорректен, либо у тебя реверсионный софт малость кривоват ![]() Code:
PS: Сделал исходники - там тоже всё есть ![]() |
|
Создано: 27 января 2016 05:38 · Поправил: lz · Личное сообщение · #14 Сам не понимаю как, но со строками я справился (ConfuserExStringDecryptor смог!). А вот как быть с зашифрованными вызовами функций (Reference proxies), с которыми связана куча "делегатов"? Добавлено спустя 1 час 16 минут Зацените архивчик утилиток от CodeCracker'a, в этой ветке таких ещё не было: Кто-нибудь может объяснить их назначение и порядок использования? Code:
![]() |
|
Создано: 27 января 2016 09:02 · Личное сообщение · #15 |
|
Создано: 27 января 2016 11:07 · Личное сообщение · #16 ConfuserDelegateKiller вылетает с исключением ![]() Code:
![]() |
|
Создано: 27 января 2016 11:39 · Личное сообщение · #17 |
|
Создано: 27 января 2016 12:40 · Личное сообщение · #18 lz Вот частично распаковал - http://rghost.ru/private/8Lj92dW8Q/e38830d8061863941caeb90206e219a6 Если пройтись de4dot'ом, то сборка работать не будет, но можно получить абсолютно читаемый код (для анализа). Чтобы она работала после de4dot, необходимо пофиксить лишь несколько делегатов и констант. Для этого нужно разбирать сырки уже существующих утилит. ![]() |
|
Создано: 27 января 2016 14:22 · Личное сообщение · #19 SHADOW785, Огромнейшее спасибо! Без этих делегатов всё стало именно так, как нужно! Не поделитесь секретом, как вам это удалось? Хотя бы "пинок" в нужную сторону дайте - утилиткой какой или руками? И вообще - это стандартное поведение конфузера или модификация? Добавлено спустя 1 час 21 минуту Вижу оставшиеся делегаты (в классе ActivationForm) и пару нерасшифрованных констант (целочисленные, StringDecryptor не обработал). Хочу понять, как же всё-таки "фиксить" делегаты? Расшифровку констант поймаю в отладчике. Кстати, имена ресурсов для форм перекодированы, я их восстановил. ![]() |
|
Создано: 27 января 2016 22:42 · Личное сообщение · #20 |
|
Создано: 28 января 2016 00:23 · Личное сообщение · #21 lolo133 пишет: PS: Сделал исходники - там тоже всё есть Благодарствую, попробую твои исходники допилить, непонимаю почему у меня этих классов нет. Первое действие я выполнял двумя способавми: 1. UnConfuserEx 1.0 у меня сразу режет эти классы. 2. Через dnSpy включаю отладку, после инициализации сборки делаю ее дамп, но там тоже их нет. Скинь пожалуйста еще бинарник до извлечения исходников и если не трудно опиши свои действия. Еще раз спасибо! Добавлено спустя 2 минуты PS SAE это что такое? ![]() |
|
Создано: 28 января 2016 01:43 · Личное сообщение · #22 splinger пишет: SAE это что такое? ![]() |
|
Создано: 28 января 2016 10:55 · Поправил: lz · Личное сообщение · #23 splinger, 1. Столкнулся с таким же поведением UnConfuserEx. Я так понял, что в версии конфузера 0.6 были внесены изменения в защите, которые ещё не учтены автором анконфузера. 2. Я распаковывал по методике Shadow с помощью WinDbg по брейкпоинту на VirtualProtect'e (я так понимаю, Shadow785 с этого форума и есть автор ![]() ![]() |
|
Создано: 31 января 2016 18:38 · Поправил: ajax · Личное сообщение · #24 pass 111 либо confuser последний, либо модификация. цена проги ~40$, интересно бы заглянуть внутрь. для русских ограничение. инжект и тп мона попробовать, на англ у меня все запускается. именно вопрос снятия шняги зы: да, пассом опечатался ![]() ----- От многой мудрости много скорби, и умножающий знание умножает печаль ![]() |
|
Создано: 02 февраля 2016 22:05 · Личное сообщение · #25 |
|
Создано: 05 февраля 2016 05:00 · Личное сообщение · #26 ajax Если просто посмотреть все видно если запускать то нужно чуть помучиться Удачного просмотра ![]() |
|
Создано: 09 февраля 2016 15:39 · Личное сообщение · #27 |
|
Создано: 09 февраля 2016 16:53 · Личное сообщение · #28 |
|
Создано: 09 февраля 2016 17:31 · Личное сообщение · #29 |
|
Создано: 09 февраля 2016 19:50 · Личное сообщение · #30 |
|
Создано: 09 февраля 2016 22:38 · Личное сообщение · #31 igorca пишет: olly и .net-как они связаны? Отлично связанны. Особенно бряки на compilemethod удобно ставить... ![]() |
<< 1 ... 36 . 37 . 38 . 39 . 40 . 41 . 42 . 43 . 44 . 45 . 46 ... 49 . 50 . >> |
![]() |
eXeL@B —› Основной форум —› Взлом dotNET программ |
Эта тема закрыта. Ответы больше не принимаются. |