| Сейчас на форуме: -Sanchez- (+8 невидимых) |
| eXeL@B —› Основной форум —› Взлом dotNET программ |
| << 1 ... 18 . 19 . 20 . 21 . 22 . 23 . 24 . 25 . 26 . 27 . 28 ... 49 . 50 . >> |
| Посл.ответ | Сообщение |
|
|
Создано: 30 августа 2010 22:59 · Поправил: s0l · Личное сообщение · #1 Со времени создания топика много обсудили, во много м разобрались и много осталось за кадром. Решил подшить выкладываемый софт и линки ![]() Инструменты: - бодрый декомпилятор и отладчик - DE-ObfuScatE / Edit IL(Live) / Add payloads / Edit attributes(public/privet) / Copy strong names signing on EXE/DLL - Очень навороченый декомпилер, побробности . Рег-данные: Code:
- платный декомпилятор .NET - думаю все знают - есть много полезных вещей - определение защиты - сигнатурный анализатор - Opensource дизассемблер и дебаггер - профайлер и дизассемблер - что то декриптит, но что не понятно(с) zeppe1in - Assembler, Disassembler, Deobfuscator, IL editor and more... - Дампер .net'овских приложений. - трейсер от известного автора инструментов для .net - Opensource комбайн, на подобие SAE. Подробности - Неплохой трейсер для .Net приложений. Умеет делать трейсы не смешивая потоки как KDT. Умеет сравнивать трейсы двух запусков программы Рег-данные: Code:
- 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. - деобфускатор Статьи с хабры: - Субъективная теоретическая муть с хабры, выдаваемая за обзор обфускаторов(только для фанатов) - вот это уже годная статья, в которой рассматривается ручная обфускация в стихах и картинках - ну не знаю...прописные истины, но приятно, что все это есть на русском языке и нормально оформлено - один только заголовок чего стоит. По сути статья информативная Другое: [url=http://lifeinhex.com/string-decryption-with-de4dot/]String decryption with de4dot[/url - Last edit: 2012-02-17, Links fixed. Jupiter] ![]() |
|
|
Создано: 03 сентября 2013 14:01 · Личное сообщение · #2 |
|
|
Создано: 03 сентября 2013 20:06 · Личное сообщение · #3 |
|
|
Создано: 04 сентября 2013 11:54 · Личное сообщение · #4 |
|
|
Создано: 04 сентября 2013 12:32 · Личное сообщение · #5 Medsft Не, ну я впринципе согласен с NikolayD. Обфускаторов для .NET нереально много, как на паблике так и самопальных, смысла гадать что это за зверь - нет, если он не оставил подсказок в метадате или ещё где. Я посмотрел - там обфускация имён, строк и control flow. Это умеет делать любой более-менее солидный обфускатор, так что перовое, что я бы сделал - тоже воспользовался бы автоматическими средствами для деобфускации, дедот справляется с именами и control flow, а обфускацию строк можно уже руками обратить, написав утиль для замены методов, получающих строки на сами строки. Ну и после деобфускации уже можно реверсить логику и решать что и как дальше - кодить кейген или патчить оригинальную сборку. Зачем тут ещё что-то мудрить? ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. | Сообщение посчитали полезным: tino, NikolayD |
|
|
Создано: 04 сентября 2013 12:37 · Личное сообщение · #6 |
|
|
Создано: 04 сентября 2013 13:15 · Личное сообщение · #7 4kusNick пишет: Medsft Не, ну я впринципе согласен с NikolayD NikolayD пишет: tino, обфускатор какой-то, а какая разница? Деду файл скорми. Да я и не писал что за такой подход надо вешать)))) Просто такой принцип не способствует развитию мозга начинающего реверсера.... P.S. Но в этом есть и свои плюсы. Как говаривал один мой знакомый профессор ставя на экзамене, тем кто заслуживал по уровню знаний только колы, четверки.... "Чем больше дураков я выпущу в жизнь, тем ценнее буду я.." | Сообщение посчитали полезным: XQuader |
|
|
Создано: 04 сентября 2013 21:00 · Личное сообщение · #8 tino, коммерческий с недавних пор обфускатор. Medsft, какая у Вас есть работающая альтернатива деду? )) | Сообщение посчитали полезным: tino |
|
|
Создано: 04 сентября 2013 22:04 · Личное сообщение · #9 |
|
|
Создано: 04 сентября 2013 22:21 · Поправил: Airenikus · Личное сообщение · #10 |
|
|
Создано: 05 сентября 2013 11:23 · Личное сообщение · #11 |
|
|
Создано: 05 сентября 2013 11:25 · Поправил: Medsft · Личное сообщение · #12 |
|
|
Создано: 05 сентября 2013 14:02 · Личное сообщение · #13 |
|
|
Создано: 05 сентября 2013 14:26 · Личное сообщение · #14 |
|
|
Создано: 05 сентября 2013 15:09 · Поправил: Medsft · Личное сообщение · #15 |
|
|
Создано: 05 сентября 2013 16:10 · Личное сообщение · #16 |
|
|
Создано: 06 сентября 2013 11:56 · Личное сообщение · #17 |
|
|
Создано: 06 сентября 2013 16:38 · Поправил: Airenikus · Личное сообщение · #18 |
|
|
Создано: 06 сентября 2013 18:28 · Личное сообщение · #19 |
|
|
Создано: 06 сентября 2013 23:00 · Личное сообщение · #20 Кто какие удобные тулзы для редакторования ресурсов в сборках знает? ildasm -> редакторование файла .resources -> ilasm не предлагать, ilasm не может сассемблировать IL файл обратно, т.к. он почти 4 гига получается в размере ![]() SAE тоже не подоходит, сборка обфусцирована и mono.cecil, который юзает SAE не умеет работать с такими сборками. Попробовал ResourceManager от CodeCracker, но не вдуплил как он работает. Очень не хотелось бы кодить тулзу для этого самому (вариант поменять руками не канает, т.к. надо менять в разных файлах разные ресурсы, надо автоматизировать), я наверняка упускаю какой-то общеизвестный велосипед для этой задачи. ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. ![]() |
|
|
Создано: 07 сентября 2013 00:45 · Поправил: Jonny · Личное сообщение · #21 4kusNick пишет: Очень не хотелось бы кодить тулзу для этого самому Есть библиотека, используемая в de4dot - . Там выполнена вся грязная работа по парсингу таблицы метаданных и тп. И он умеет записывать изменения. Есть парочка примеров в исходниках. | Сообщение посчитали полезным: 4kusNick |
|
|
Создано: 10 сентября 2013 19:42 · Личное сообщение · #22 |
|
|
Создано: 10 сентября 2013 22:25 · Личное сообщение · #23 |
|
|
Создано: 10 сентября 2013 23:07 · Поправил: 4kusNick · Личное сообщение · #24 Mishar_Hacker пишет: не понимаю чем накрыт Атрибут "[module: ConfusedBy("Confuser v1.9.0.0")]" в метадате как бы намекает, хоть бы изучили сборку сперва. PS: последний писк моды против конфуза - , хоть бы на пару страниц назад листнули. ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. ![]() |
|
|
Создано: 19 сентября 2013 18:40 · Личное сообщение · #25 |
|
|
Создано: 20 сентября 2013 02:49 · Личное сообщение · #26 Jonny пишет: Есть библиотека, используемая в de4dot - --> dnlib <--. Там выполнена вся грязная работа по парсингу таблицы метаданных и тп. И он умеет записывать изменения. Есть парочка примеров в исходниках. Эта либа тоже не справилась =( Падает при сохранении сборки (даже если я ничего в ней не менял) где-то в районе записи методов - похоже она всю сборку пересобирает и обламывается из-за обфускации. ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. ![]() |
|
|
Создано: 20 сентября 2013 14:36 · Поправил: Medsft · Личное сообщение · #27 |
|
|
Создано: 20 сентября 2013 16:37 · Личное сообщение · #28 |
|
|
Создано: 20 сентября 2013 16:56 · Личное сообщение · #29 4kusNick пишет: Именно. Вы поправили эту проблему в своей версии dnlib.dll? Вроде в либе есть возможность заставить записывать старое значение стека. Например, тут (de4dot.code.AssemblyModule): Code:
module.Write(newFilename, writerOptions); - module является объектом типа ModuleDefMD из dnlib, а в writerOptions.MetaDataOptions.Flags можно передать значение KeepOldMaxStack = 0x8000. ![]() |
|
|
Создано: 20 сентября 2013 17:20 · Поправил: 4kusNick · Личное сообщение · #30 Я пробовал принудительно выставлять KeepOldMaxStack прямо в самой либе, в месте записи методов - не помогло. Попробую ваш вариант, может там в дебрях этот параметр ещё на что-то влияет. --- Попробовал, теперь другая ошибка при записи методов: Instruction operand is null Пробовал ещё флаг MetaDataFlags.PreserveAll ставить, тоже не помогло - либа все равно перефаршмачивает всю сборку ( ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. ![]() |
|
|
Создано: 20 сентября 2013 19:02 · Поправил: Jonny · Личное сообщение · #31 4kusNick пишет: Попробовал, теперь другая ошибка при записи методов: Instruction operand is null Чаще всего это связанао с тем, что MDToken является невалидным, в соответсвующей таблице нет записи с таким индексом. Например, в Dotnet reactor используется следующий прием: Code:
XXXXXXXX - это рандомное число, которое является токеном. Dnlib ругнется как у тебя , и запишет в операнд токен под номером FFFFFFFF. В твоем случае нужно найти кусок кода отвечающий за запись MethodBody при сохранении и вместо ассемблирования просто подставлять байты из ориг образа. Возможно там реализован механизм для таких случаев, иначе придется патчить либу. Нечто такое например используется при восстановлении спертых тел методов: Code:
| Сообщение посчитали полезным: 4kusNick |
| << 1 ... 18 . 19 . 20 . 21 . 22 . 23 . 24 . 25 . 26 . 27 . 28 ... 49 . 50 . >> |
| eXeL@B —› Основной форум —› Взлом dotNET программ |
| Эта тема закрыта. Ответы больше не принимаются. |














Для печати