Universal Fixer 1.0 - fix dumps after dumping them whit Dotnet Dumper or other similiar tools and will also fix nasty things: multiple assembly/module definitions, wrong extends, etc. iMPROVE .NET Deobfuscator - деобфускатор
Ранг: 431.7 (мудрец), 389thx Активность: 0.73↘0.32 Статус: Участник
Создано: 27 ноября 2017 09:49 · Поправил: dosprog · Личное сообщение · #6
)) Тупо "играл и не смог раскрутить барабан". Подскажите All, плз, как в IlSpy (v.2.2.0.1737) установить брейкпоинт? А то все пункты в меню есть, даже "Remove All Breйkpoints", а установить брейкпоинт (типа как <F9> в DnSpy) - нету.
подскажите советом пожалуйста... исследовал прогу. вроде бы разобрался с лицензированием, но есть проблема: если запускать прогу прод отладчиком для dotNet (Ilspector или dnSpy), то все работает как надо (все параметры из лицензии читаются, все функции разблокируются и все работает как надо). Но если запускать прогу без отладчика, то она уже не читает некоторые строки лицензии и часть функций не работает. Т.е. под отладчиком прога действует по другому алгоритму. Явного детекта отладчика (типа isDebuggerPreset или IsAttached) в коде я не нашел. если запустить прогу через OllyDbg (даже чистую без плагинов) или даже вручную поправить isDebuggePreset на 1, то она работает так же как без отладчика. Т.е. програ детектит только dotNet отладчик. Такое ощущение, что какие-то методы выполняются или не выполняются только под отладчиком или переменные\константы под отладчиком отличаются. Нашел что есть спец атрибуты методов\классов для отладчика, но среди них не нашел которые могли бы влиять на алгоритм\переменные. может есть какие-то идеи? уже неделю мучаюсь.....
zds пишет: Такое ощущение, что какие-то методы выполняются или не выполняются только под отладчиком или переменные\константы под отладчиком отличаются. Н-да. Отличная идея как реализовать защиту! А вот как искать, где собака зарыта, сходу непонятно...
я правильно понял, что атрибуты типа DebuggerStepThroughAttribute или DebuggerHiddenAttribute не влияют на выполнение кода? т.е. код выполняется в любом случае, просто дебаггер вместо захода в метод F11 выполняет F10 в первом случае или не реагирует на BP во втором
sefkrd можно по подробнее если не сложно это предположение причины или руководство к действию? смотрел из Olly из GAC подгружается только несколько системных либ
zds прога патченая? в памяти посмотри, откуда грузятся либы при нормальном запуске. там могут быть из GAC взяты оригинальные. про это, видимо, намекали
----- От многой мудрости много скорби, и умножающий знание умножает печаль
ajax нет все без патчей сделано. я писал выше, что смотрел загруженные либы когда пробовал запускать через olly - из GAC подгружаются только несколько системных библиотек, все остальное грузится из родного каталога
Вобщем, есть софтина из многих mixed-code сборок. И нужно мне в ней в managed части попатчить. Да так чтоб native не поломать. Насколько я помню dnSpy пересборку делает проекта. Может есть утиль которая умеет inplace replacement? Еще как вариант CLR похучить, но это явно не самый простой способ. Но пример будет кстати. Еще подошел бы метод типа профайлинга с подменой тел методов на лету. Но по ссылке внешнее приложение профайлит таргет. А я все-таки предпочел бы обвязкой не заморачиваться. Попутно вопрос: подгрузка сборки не инициирует DLL_THREAD_ATTACH нотифай в нативных либах. Нет ли в CLR колбека, который выполнялся бы раньше всех сразу после подгрузки DLL и до выполнения <Module>.cctor и прочей инициализации? Предзагрузка через LoadLibrary не помогает потому что система не считает подгруженный образ сборкой и грузит ее по новой на другую базу.
r_e пишет: Вобщем, есть софтина ........ а jit уже перехвачен в защите таргета?
Добавлено спустя 2 минуты freudz пишет: Помогите распаковать Тебе как минимум сюда https://exelab.ru/f/action=vthread&forum=2&topic=24716 но чтото мне подсказывает что сюда https://exelab.ru/f/action=vthread&forum=1&topic=17633
Medsft Спасибо за направления, но нет =) Я тут за советами...
de4dot валится (exception) у меня на методе MethodBodyParser.ParseMethodBody2:
Code:
if(codeOffset !=12)
throw new InvalidMethodBody();
codeOffset = 44 в моем случае. И вот ломаю голову о назначении захардкоженных чисел. Кто-нить может разъяснить?
Спасибо.
Добавлено спустя 8 минут freudz пишет: есть таргет, вроде определяется как Agile.NET обфускатор (de4dot не справляется). Однако, при отладке возникают мессаджбоксы Oreans/Themida.
Теперь понятно... Ядро рантайма Agile.NET закрыто Themida/Winlicense(2.X)[-]