Сейчас на форуме: tyns777 (+6 невидимых) |
eXeL@B —› Вопросы новичков —› Патчинг обфусцированных приложений |
<< . 1 . 2 . |
Посл.ответ | Сообщение |
|
Создано: 04 июля 2019 13:24 · Личное сообщение · #1 Здравствуйте, ув. Профессионалы! Исходные данные: - программа, написанная на C# и обфусцированная .Net Reactor (скорее всего последней версии). Даже сам дедот пишет "Detected Unknown Obfuscator" - изменить код в dnSpy нельзя - сделать инжект dll + патчинг с помощью ILSpector нельзя - нельзя даже изменить значения переменных во время отладки в dnSpy - максимум, что можно сделать дак это изменить значения переменных, когда отладчик dnSpy входит в саму библиотеку mscorlib Задача: - найти и обучиться способу изменять код в обфусцированных приложениях |
|
Создано: 10 июля 2019 23:00 · Поправил: rukop84 · Личное сообщение · #2 Nihil enim пишет: команда pc ret делала деобфускатор на основе de4dot, есть "de4dot .NET Reactor 5.0" в сети. Не помогает? этот дедот уже древний и не помогает давным давно если надо есть более свежий и крутой дедот, который "кушал" все подряд от Tianjiao: h***s://github.com/Tianjiao/de4dot h***s://github.com/Tianjiao/de4dot/releases/download/v3.1.41592.3405/de4dot.zip но в отношении исследуемой программы в этот раз он поперхнулся. Здесь скорее всего одна из последних защит .Net Reactor 6.0 |
|
Создано: 11 июля 2019 09:58 · Личное сообщение · #3 rukop84 пишет: этот дедот уже древний и не помогает давным давно Вы видимо о каком то другом de4dot, т.к. |
|
Создано: 11 июля 2019 11:50 · Личное сообщение · #4 Adler пишет: обновлен 16 дней назад ну так этож собирать надо а тем, кому нужна кнопка "скачать и установить", приходится довольствоваться билдом пятилетней давности | Сообщение посчитали полезным: Adler |
|
Создано: 11 июля 2019 15:24 · Поправил: Vamit · Личное сообщение · #5 -=AkaBOSS=- Да что вы говорите, там и собранный есть 16 дней назад Binaries Get binaries from the ----- Everything is relative... |
|
Создано: 11 июля 2019 16:15 · Личное сообщение · #6 Народ хватит уже. Это другой протектор hidsig забудь Я в этой теме просил Вас высказать гипотезы что не так в методе. Ответа нет ни от кого Добавлено спустя 2 минуты Проверку подписи.. Смотри используемые апи Добавлено спустя 4 минуты Мой совет rucop: лучше плати автору программы исправно, не твой уровень это. |
|
Создано: 11 июля 2019 18:19 · Личное сообщение · #7 Medsft пишет: Я в этой теме просил Вас высказать гипотезы что не так в методе. Ответа нет ни от кого IL вообще не знаю, но меня смущает это: Code:
Но видимо дело не в нем или не только в нем, т.к. если его занопить метод не принимает читаемый вид на C#. | Сообщение посчитали полезным: Medsft |
|
Создано: 11 июля 2019 18:50 · Личное сообщение · #8 Adler пишет: Вы видимо о каком то другом de4dot тот, что у Вас по ссылке - это мой любимый дедот от Tianjiao. А тот, что древний - это от команды PC Ret, который можно найти в сети Добавлено спустя 2 минуты Medsft пишет: Мой совет rucop: лучше плати автору программы исправно, не твой уровень это. чувствую, что Мастер обиду на меня затаил. А за что - не говорит Добавлено спустя 12 минут Мастер Medsft, если речь идет именно об обходе защиты исследуемого приложения, то свои способы обхода я уже нашел и протестировал. Оба способа работают. Есть еще гарантированный 3-й способ, но для него не нашел еще спецсофт. На текущий момент в этой теме я учусь и набираюсь опыта Добавлено спустя 57 минут Мастер Medsft. Дайте хотя бы еще недели 2-2,5 на решение заданных Вами задач. Если по истечении этого срока (до 28 июля включительно) решения не будут найдены, то признаюсь, что данная задача не по зубам и тему можно будет закрывать. Согласны? |
|
Создано: 11 июля 2019 19:47 · Личное сообщение · #9 Medsft > Я в этой теме просил Вас высказать гипотезы что не так в методе. Ответа нет ни от кого Я ответил выше, что делать. Есть чудесный вариант, он покрывает все задачи, универсальное решение - описываешь задачу и выдаётся решение ----- vx |
|
Создано: 11 июля 2019 19:59 · Поправил: rukop84 · Личное сообщение · #10 |
|
Создано: 11 июля 2019 20:44 · Личное сообщение · #11 rukop84 Так а почему не обучаешься тогда, символы смотрел ? ----- vx | Сообщение посчитали полезным: rukop84 |
|
Создано: 11 июля 2019 20:46 · Личное сообщение · #12 difexacaw, обучаюсь. Другое дело, что не сразу все доходит Добавлено спустя 10 минут difexacaw пишет: символы смотрел да-да-да!!!, WriteProcessMemory - это именно оно Добавлено спустя 1 час 13 минут Medsft пишет: что не так в методе а вот и ответ: вызов функции WriteProcessMemory происходит из кусков склеенных констант (видать, чтобы ее не засекли) Ай, да difexacaw! Ай, да молодец! |
|
Создано: 11 июля 2019 22:28 · Личное сообщение · #13 |
|
Создано: 11 июля 2019 23:34 · Личное сообщение · #14 |
|
Создано: 12 июля 2019 07:28 · Личное сообщение · #15 |
|
Создано: 12 июля 2019 09:37 · Поправил: Adler · Личное сообщение · #16 rukop84 пишет: call string System.String::WriteProcessMemory А не смущает, что в классе System.String нет функции WriteProcessMemory, т.к. это системная WinAPI из kernel32.dll которую еще надо импортировать: Code:
А в IL это должно выглядеть как-то так: Code:
И вызываться примерно так: Code:
P.S. Code:
Code:
Code:
Прямо дежавю какое то... | Сообщение посчитали полезным: rukop84 |
|
Создано: 12 июля 2019 13:59 · Личное сообщение · #17 |
|
Создано: 12 июля 2019 21:28 · Личное сообщение · #18 |
|
Создано: 12 июля 2019 22:13 · Личное сообщение · #19 |
|
Создано: 12 июля 2019 23:13 · Поправил: rukop84 · Личное сообщение · #20 Adler, у Вас получилось собрать обратно функцию WriteProcessMemory из кусков кода? Я уже часов 6 ее собираю, не могу собрать: - название библиотеки kernel32.dll есть - название самой функции WriteProcessMemory есть - передача параметров функции и вызов самой функции через делегат тоже есть - а вот как извлечь из кусков кода данные импорта не догоняю расписал скрин: Если справились с задачей, то просьба сделать скрин уже отредактированного метода f6sg, включая измененные байты. Хоть поучусь как надо делать |
|
Создано: 12 июля 2019 23:46 · Личное сообщение · #21 |
|
Создано: 13 июля 2019 01:20 · Поправил: sefkrd · Личное сообщение · #22 |
|
Создано: 13 июля 2019 12:06 · Личное сообщение · #23 sefkrd, если проанализировать ваши сообщения на форуме, то выяснится, что помощи и дельных советов от вас НОЛЬ ЦЕЛЫХ, НОЛЬ ДЕСЯТЫХ. А ранг как пользователя у вас растет за счет подобных сообщений, в которых только троль, да насмешки... Adler пишет: Даже не пытался, а зачем? Что вы от этой функции хотите? хм..., может я опять не въехал в постановку задачи от Мастера Medsft'a: 1)Medsft пишет: И что нужно поправить чтоб понять откуда ноги 2) Medsft пишет: Ну приведите метод к читаемому то)) Вот я и пытаюсь выполнить эти задачи Понимаю это так: - вызов функции winapi WriteProcessMemory разорван по кускам кода. И получается, чтобы привести метод к читаемому нужно его собрать обратно |
|
Создано: 13 июля 2019 12:13 · Поправил: Adler · Личное сообщение · #24 rukop84 пишет: - вызов функции winapi WriteProcessMemory разорван по кускам кода. И получается, чтобы привести метод к читаемому нужно его собрать обратно В моем представлении, надо в том же классе просто сделать объявление функции (второй пример кода из Это мое предположение, проверять которое нет ни времени, ни желания. P.S. В чем сакральный смысл данной функции я не знаю и что имел ввиду Medsft акцентируя внимание на данной функции я не знаю, т.к. вообще не разбирался, что там и для чего... | Сообщение посчитали полезным: rukop84 |
|
Создано: 13 июля 2019 20:14 · Личное сообщение · #25 rukop все банальней, эти методы мусор оставшийся хер знает от чего. Моё мнение. Невозможно не используя джит каким либо образом их исполнить. | Сообщение посчитали полезным: rukop84 |
|
Создано: 13 июля 2019 22:52 · Личное сообщение · #26 sefkrd > Я уже писал ранее - отойди от дотнета, нехер тебе в нём делать.. Я отлично знаю как это работает, так как я это крутил и отлаживал для данной задачи Посему я чётко представляю как работает эта вм, в отличие от вас - для вас это чёрный ящик который можно прогнать через декомпилер. Это если получится. Учитывая что нет/ком образ это массив данных, которые можно криптовать как угодно, а их выборку отследить, то если какая то защита есть, она оставит крест на всех ваших инструментах и принципиально делает декомпиляцию невозможной, я говорил выше. > собрать обратно WriteProcessMemory А что это значит, не понимаю. В моём понимании сборка процедуры - это её описание конструктором(граф) и последующий билд в маш код. Проще говоря обычный викс морф какого то кода. Зачем это в данной теме ? ----- vx |
|
Создано: 13 июля 2019 23:24 · Поправил: rukop84 · Личное сообщение · #27 difexacaw пишет: Я отлично знаю как это работает, так как я это крутил и отлаживал для данной задачи Круто!!! дак вот значит чей мы ребус решаем?! Добавлено спустя 11 минут Мастер Medsft! Я кажется знаю ответ на задачу: Medsft пишет: чтоб понять откуда ноги |
|
Создано: 18 июля 2019 20:06 · Личное сообщение · #28 |
|
Создано: 18 июля 2019 21:16 · Поправил: rukop84 · Личное сообщение · #29 Все сделано, все задачи выполнены, цель создания темы достигнута. Через 2-3 дня Тему закрою. Adler, большое Спасибо за помощь и за то, что принимали активное участие в Теме И еще поправлюсь в своем сообщении по поводу дедотов: - у Вас по ссылке и у меня по ссылке - это разные дедоты (но оба свежие). Не знаю почему я принял их за одно и тоже difexacaw, Спасибо. Вы в следующий раз не скромничайте, а так и пишите, что это Ваше изобретение. Страна должна знать своих Героев!!! Мастер, Medsft, Вы как всегда на высоте. Спасибо, что даете развитие и помогаете новичкам. Благодаря Вам и Вашему наставничеству задачи выполняются, а тема приобретает завершенный вид Вот это еще что-то не укладывается: Medsft пишет: Дам тебе rukop84 дельный совет (с условием что поделишься, у самого времени нет) Чтобы справиться со сборкой нужен инструмент заменяющий в методах по маске последовательность байт на последовательность байт. Раз собираешься заниматься реверсингом NET без него не обойтись. А может в сети такой найдешь хз. Ключевое слово в методах а значит notepad++ не пойдет))) - если ключевое слово в методах, то это должно быть отражено в байт коде. А раз так, то почему не подойдет какой-нибудь hex-редактор с notepad++ для замены байт кода? - сам поиск по байт-коду нужно проводить, ведь также? |
|
Создано: 20 июля 2019 11:49 · Личное сообщение · #30 rukop84 пишет: то почему не подойдет какой-нибудь hex-редактор - ))) мы ж взрослые люди ))) и понимаем что если последовательность байт которую мы хотим изменить встречается более 1 раза МОЖЕТ располагаться не только в телах методов а и в любом другом месте.Поэтому алгоритм один: читать сборку вычислять offset методов их длину и потом там уже искать последовательность. Поскольку ты хотябы заинтересовался программированием))) сделаю тебе за это подарок, когда то сделал контрол для работы с маской: в нем реализовано несколько методов ... нокоторые пригодны для для просто байт арреев, чтото для NET, отдам даже сырки чтобы ты понял что он умеет https://github.com/Medsft2019/HexMaskEditorControl rukop84 пишет: Все сделано, все задачи выполнены молодец Добавлено спустя 59 минут difexacaw пишет: В моём понимании сборка процедуры запутан код в методе который вызывает или не вызывает апи.Так как он выглядит сейчас нельзя вызвать эту апи | Сообщение посчитали полезным: rukop84 |
<< . 1 . 2 . |
eXeL@B —› Вопросы новичков —› Патчинг обфусцированных приложений |
Эта тема закрыта. Ответы больше не принимаются. |