Сейчас на форуме: -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 апреля 2015 15:49 · Личное сообщение · #2 Прошу совета по одной либе. Есть |
|
Создано: 20 апреля 2015 18:01 · Личное сообщение · #3 Slinger эта либа при установке запускает ESRIRegAsm.exe, которая в свою очередь запустит микросовтовский RegAsm.exe который добавит записи в реестр про эту либу. В этих записях фигурирует PublicKeyToken. Предположу что когда ты просто меняешь байт то не работает из за проверки StrongName. А когда сносишь StrongName то PublicKeyToken становится null и не соответствует тому что в реестре. как то так) ----- zzz |
|
Создано: 06 мая 2015 08:49 · Личное сообщение · #4 The JustDecompile .NET decompiler engine has been open-sourced | Сообщение посчитали полезным: nick8606 |
|
Создано: 09 мая 2015 22:51 · Личное сообщение · #5 |
|
Создано: 09 мая 2015 23:54 · Личное сообщение · #6 jangle Попробуйте сделать что то вроде криптора для своей программы. Вы передаете ей аргумент, она динамически компилирует новую сборку требуемой битности и запускает. Или посредника, который содержит в ресурсах две заранее скомпилированные версии вашей программы, передаете аргумент, запускается выбранная. Но не в домене существующего (если только не той же битности), а как новый процесс. Или посредник будет динамически добавлять зависимость от x32, x64 dll и запускать сборку. |
|
Создано: 19 мая 2015 12:52 · Поправил: YaroslavS · Личное сообщение · #7 Подскажите пожалуйста, заранее прошу прощения если спрошу что-то очевидное: 1) какой из декомпиляторов выдает наиболее близкий к оригиналу C# код. 2) Если стоит задача декомпилировать и собрать приложение, которое часто обновляется и при этом обфусцировано, как (и чем) проще всего сравнивать деобфусцированные de4dot сборки, чтобы выявить изменения. Вообще это возможно? Можно ли как-то сопоставить имена в двух разных сборках после деобфускации, кроме как по контексту кода? 3) Есть ли какие-то способы - приемы автоматически улучшить код до или после декомпиляции? Вычистить возможно мусор от обфускатора, который не убрал de4dot. 4) Есть ли другие заслуживающие внимания варианты для отладки чужих сборок, кроме ilspy (сборка, которая выложена на форуме) и dile? Спасибо. |
|
Создано: 24 мая 2015 05:16 · Личное сообщение · #8 |
|
Создано: 24 мая 2015 13:43 · Личное сообщение · #9 YaroslavS пишет: 1) какой из декомпиляторов выдает наиболее близкий к оригиналу C# код. идеально нету, один чтото свое делает хорошо, другой - иное.. из того, что можно пробовать - ILSpy, .NET Reflector, Telerik, dotPeek YaroslavS пишет: чтобы выявить изменения. Вообще это возможно? ручная работа и не факт что метадата будет совпадать, тогда вобще никак (ибо автоименатор в де4доте будет каждое время по иному звать имена) если у вас 100+ классов то сочусвтвую YaroslavS пишет: Вычистить возможно мусор от обфускатора, который не убрал de4dot. подпилить сам де4дот он идет в сорсах, так что вперед и с песней кстати у него GPLv3, все что до(делается) надо опенсорсить YaroslavS пишет: 4) Есть ли другие заслуживающие внимания варианты для отладки чужих сборок, кроме ilspy (сборка, которая выложена на форуме) и dile? для реал челов есть WinDbg + модуль для дотнета |
|
Создано: 02 июня 2015 22:57 · Личное сообщение · #10 Объясните плиз вот есть кодес Code:
Почему в проце 11 параметров а работает с 12-ью |
|
Создано: 04 июня 2015 18:21 · Личное сообщение · #11 |
|
Создано: 06 июня 2015 10:37 · Личное сообщение · #12 |
|
Создано: 06 июня 2015 12:52 · Личное сообщение · #13 artkar пишет: method private hidebysig instance 11 параметров а работает с 12-ью this же еще - ldarg.0 | Сообщение посчитали полезным: artkar |
|
Создано: 16 июня 2015 18:31 · Поправил: AKAB · Личное сообщение · #14 Assembly Comparer [img] http://www15.zippyshare.com/v/RK3CkHMF/file.html | Сообщение посчитали полезным: nick8606 |
|
Создано: 17 июня 2015 14:19 · Личное сообщение · #15 Есть ли у кого толковый тутор с примерами как патчить опкоды .net на лету? Суть: У меня есть .net пакованное приложение, которое я вынужден каждый раз распаковывать, и патчить. Хотелось бы написать к нему универсальный кряк в виде dll-ки, которая будет подгружаться вместе с жертвой и патчить в нужных местах опкоды по сигнатуре или по названию метода. ----- StarForce и Themida ацтой! |
|
Создано: 17 июня 2015 18:22 · Личное сообщение · #16 Maximus Я использую лоадер https://www.sendspace.com/file/107hpu Он хучит getJit и при обработке нужного метода его патчит. Вархиве пример, но у меня на восьмерке не запустился - а так должен работать. | Сообщение посчитали полезным: Maximus |
|
Создано: 17 июня 2015 18:55 · Личное сообщение · #17 |
|
Создано: 17 июня 2015 20:14 · Личное сообщение · #18 |
|
Создано: 17 июня 2015 21:29 · Поправил: yanus0 · Личное сообщение · #19 Maximus пишет: Подскажи, это будет работать на .NET 4.0? Должно. может есть сие чудо на дельфи? Нет. На дельфи там нужно много переводить структур из corinfo.h - вот если кто сделать из этого .lib чтобы в делфях прилинковать, тогда я думаю можно. Вообще код отсюда + можно делать не внедрением в процес, если сложно отловить сам момент старта и т.д. - то через загрузку AppInit_DLLs можно сделать. При загрузке проверять правильный ли процес... Добавлено спустя 5 минут ajax пишет: вопрос, когда ловить нужное Там в сорсах лоадера есть проверка на контрольную суму кода в методе и на его имя. Тоесть можно фильтровать и патчить, только нужный метод. |
|
Создано: 17 июня 2015 21:55 · Поправил: Maximus · Личное сообщение · #20 + можно делать не внедрением в процес, если сложно отловить сам момент старта и т.д. - то через загрузку AppInit_DLLs можно сделать. Да не, проблем с внедрением в приложение нет. Ответ на этот вопрос есть тут: Спасибо за наводку, попробую че нить соорудить с lib файлом, что бы нудно структуры не переписывать. ----- StarForce и Themida ацтой! |
|
Создано: 21 июня 2015 17:53 · Поправил: Maximus · Личное сообщение · #21 Еще вопрос. Разобрал я С+ структуры и переложил на delphi, и теперь отлично перелавливаю методы и без проблем могу их патчить. Но я хочу пойти дальше и подложить вместо il кода программы полностью свой код. Итак, у меня есть код: Code:
Опкод к нему: $02,$03,$7D,$3E,$01,$00,$04,$2A Моя задача, установить данную переменную в свое значение. Хочу подменить данный код на такой: Code:
Опкод к нему: $02,$72,$??,$??,$??,$??,$7D,$3E,$01,$00,$04,$2A Эти опкоды отлично компилируются, но вот беда, я не знаю как передать ссылку на свою строку (вместо опкодов знаки вопроса) Вопрос: Как мне передать ссылку на свое значение типа String, которое я хочу загрузить в программу? ----- StarForce и Themida ацтой! |
|
Создано: 21 июня 2015 23:44 · Личное сообщение · #22 Я бы нашел какую-то неиспользуемую или, скажем так, малоиспользуемую строку в коде, подменил ее на свою, нашел на нее опкод и вставил на место второй строчки... | Сообщение посчитали полезным: Maximus |
|
Создано: 22 июня 2015 11:05 · Личное сообщение · #23 Maximus пишет: Вопрос: Как мне передать ссылку на свое значение типа String, которое я хочу загрузить в программу? Все пользовательские строки (для ldstr) жестко забиты в метаданные сборки в стрим #US Новую строку добавить вряд ли получится (без пересборки метаданых) - обычно в стриме #US нет свободного места. Так что, как писалось выше, только путем подмены уже существующей строки. ... Или посмотреть что за нативный код метода сгенерировал Jit, возможно получится пропатчить в нативе для конкретной задачи... | Сообщение посчитали полезным: Maximus |
|
Создано: 22 июня 2015 11:07 · Личное сообщение · #24 |
|
Создано: 23 июня 2015 13:28 · Поправил: Maximus · Личное сообщение · #25 Да, написать .Net патчер слету на Delphi еще тот треш. Оставлю тут для тех, кто будет искать: 1. Ставим хук на getJit для .Net больше 2.0 Code:
2. После установки хука для компиляции будет вызываться наша процедура MyCompProc. В самой процедуре надо будет организовать вызов метода, который собственно и будет компилировать код (_RealCompProc) Code:
3. Теперь можно патчить. Патчим IL код. offset = Смещение байта для патча относительно начала кода, oldbyte = старый байт, newbyte = новыйбайт Code:
4. Полная подмена IL кода программы на свой код. В массиве my_code лежит мой код Code:
5. Патчим строку. Как писалось выше, строки компилятор берет из таблицы. Адрес строки высчитывается по формуле $70000000+смещение строки относительно начала таблицы. Я пошел по легкому пути и не стал изменять таблицу. Метод, который я предлагаю для патча следующий: Code:
6. Ну и напоследок патч Native кода Code:
Дополнительно к своей писанине прилагаю простенький примерчик: a212_24.06.2015_EXELAB.rU.tgz - 1.rar ----- StarForce и Themida ацтой! | Сообщение посчитали полезным: Apocalypse, 4kusNick, ajax, yanus0, igorca, zds, denis765600 |
|
Создано: 24 июня 2015 00:26 · Личное сообщение · #26 |
|
Создано: 10 июля 2015 16:03 · Личное сообщение · #27 |
|
Создано: 10 июля 2015 18:20 · Личное сообщение · #28 |
|
Создано: 10 июля 2015 18:22 · Личное сообщение · #29 |
|
Создано: 10 июля 2015 22:07 · Личное сообщение · #30 Возможно не все читают хабр, выложу сюда. 1) Несколько трюков в C# https://channel9.msdn.com/Events/DevCon/Russia-2015/BlueD2S05 2) Используем Roslyn для конверсии C# в C++ https://channel9.msdn.com/Events/DevCon/Russia-2015/Use-Roslyn-conversion-in-C--C- 3) Лучшие доклады конференции DevCon 2015 — Топ 10 http://habrahabr.ru/company/microsoft/blog/262289/ |
|
Создано: 11 июля 2015 07:45 · Личное сообщение · #31 SaNX пишет: ILProtector умеет ктонить снимать? 4f97_11.07.2015_EXELAB.rU.tgz - ILProtectorUnpacker.7z | Сообщение посчитали полезным: SaNX |
<< 1 ... 36 . 37 . 38 . 39 . 40 . 41 . 42 . 43 . 44 . 45 . 46 ... 49 . 50 . >> |
eXeL@B —› Основной форум —› Взлом dotNET программ |
Эта тема закрыта. Ответы больше не принимаются. |