Сейчас на форуме: -Sanchez- (+7 невидимых)

 eXeL@B —› Основной форум —› Взлом dotNET программ
<< 1 ... 45 . 46 . 47 . 48 . 49 . 50 .
Посл.ответ Сообщение

Ранг: 60.6 (постоянный), 20thx
Активность: 0.070
Статус: Участник

Создано: 30 августа 2010 22:59 · Поправил: s0l
· Личное сообщение · #1

Со времени создания топика много обсудили, во много м разобрались и много осталось за кадром. Решил подшить выкладываемый софт и линки

Инструменты:

dnSpy - бодрый декомпилятор и отладчик тут беты

Gray Wolf - DE-ObfuScatE / Edit IL(Live) / Add payloads / Edit attributes(public/privet) / Copy strong names signing on EXE/DLL
ReSharper 6.0 Build 2093 Pre-Release - Очень навороченый декомпилер, побробности --> ТУТ <--.
Рег-данные:
Code:
  1. User Name: ReSharper EAP User
  2. License Key: 0-A60kqsqDMPkvPrLC3bz1/jmns4/DAUV6
  3. which is valid until 31 March 2010

Reflector 8.3.3.115 - платный декомпилятор .NET 8.3.0.95 + (дополнение к нему)
Седьмая версия рефлектора - думаю все знают
Сборка Add-in'ов для Reflector - есть много полезных вещей
.Net ID 1.0.0.3 - определение защиты
DNiD by Rue - сигнатурный анализатор
Dotnet IL Editor (DILE)- Opensource дизассемблер и дебаггер
Xenocode Fox Code Analyzer- профайлер и дизассемблер
Reactor Decryptor 1.7 - что то декриптит, но что не понятно(с) zeppe1in
Simple Assembly Explor (SAE) - Assembler, Disassembler, Deobfuscator, IL editor and more...
DotNet Dumper 1.0 - Дампер .net'овских приложений. Подробное описание
Kurapica dotNET Tracer 1.1 - трейсер от известного автора инструментов для .net
ILSpy 1.0.0.481 - Opensource комбайн, на подобие SAE. Подробности тут
dotTrace Performance 4.0.665.4 - Неплохой трейсер для .Net приложений. Умеет делать трейсы не смешивая потоки как KDT. Умеет сравнивать трейсы двух запусков программы
Рег-данные:
Code:
  1. Name: exelab
  2. Serial: OLgDSHG0hJghkLdXYJh1IjM3ytMrqKcn

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 - деобфускатор


ConfuserDumper
ConfuserDelegateKiller
CodeCrackerTools: ConfuserMethodsDecryptor, ConfuserDelegateKiller, ConfuserStringDecryptor, MegaDumper, etc.

Статьи с хабры:
Защита .NET приложений - Субъективная теоретическая муть с хабры, выдаваемая за обзор обфускаторов(только для фанатов)
Как обмануть NET.Reflector - вот это уже годная статья, в которой рассматривается ручная обфускация в стихах и картинках
Взлом программ для чайников - ну не знаю...прописные истины, но приятно, что все это есть на русском языке и нормально оформлено
Реверс-инжиниринг обфусцированной сборки .NET - один только заголовок чего стоит. По сути статья информативная
Инъекции MSIL кода в стороннюю сборку при помощи Mono.Cecil. Реализация принципов АОП в NET
Избавление .NET программы от регистрации на примере BEM
Снимаем дамп объектов с памяти .Net приложения

Другое:
.NET Reflector v7.0.0.198 (C# Source by wangshy)
[url=http://lifeinhex.com/string-decryption-with-de4dot/]String decryption with de4dot[/url

-

Last edit: 2012-02-17, Links fixed. Jupiter]



Ранг: 512.7 (!), 360thx
Активность: 0.270.03
Статус: Модератор

Создано: 02 сентября 2017 17:50
· Личное сообщение · #2

daFix пишет:
contains XAML which isn't supported. Use --dont-rename.


тут все четко и по делу написано
некоторые обфускаторы меняют имена не только в коде, но и в xaml ресурсе (GUI), а дедот итого никогда не делал и не умел (ибо формат ентот MS проприетарит...)
повезет если xaml есть, но обфускатор в него не лезет

ну и 2ую ошибку вроде ясно написано...

| Сообщение посчитали полезным: daFix


Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

Создано: 02 сентября 2017 23:39
· Личное сообщение · #3

sendersu, sefkrd не, у меня все файлы 32 бита, поэтому суть ошибки для меня так и осталась не ясна

-----
Research For Food





Ранг: 77.2 (постоянный), 73thx
Активность: 0.190.15
Статус: Участник

Создано: 03 сентября 2017 00:43 · Поправил: sefkrd
· Личное сообщение · #4

daFix пишет:
все файлы 32 бита

Не обязательно.. Возможно, во время написания этих dll, участвовал не один прогер(скорее всего..)
И у одного в IDE при компиляции стоял приоритет делать запуск в x64 режиме, у другого в x86..

Предпологаю, что в папке Module1 не мало одинаковых.dll как в папке Module2..
Я в таких случаях, когда +100500 dll, убираю в сторону дубликаты(на кого рычит de4dot), делаю -r -ro, и наоборот..




Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

Создано: 03 сентября 2017 01:07
· Личное сообщение · #5

sefkrd
Так-с... Сначала пытался деобфусцировать папку с подпапками, но потом дошло что это излишне. EXE работает только с библиотеками из своей папки. Попробовал натравить на каждую папку по отдельности и вроде норм. Но остался не деобфусцированный код. Подозреваю, что всё дело теперь в XAML

-----
Research For Food





Ранг: 77.2 (постоянный), 73thx
Активность: 0.190.15
Статус: Участник

Создано: 03 сентября 2017 06:30
· Личное сообщение · #6

daFix пишет:
Но остался не деобфусцированный код

Где? В ресурсах наверное..?



Ранг: 57.0 (постоянный), 10thx
Активность: 0.050.08
Статус: Участник

Создано: 03 сентября 2017 23:22
· Личное сообщение · #7

Подскажите пожалуйста
есть dll dotNet (dll1). Нужно ее пропатчить так чтобы подгружалась нативная dll (ddl2).
Пытался добавить ddl2 изменив импорт ddl1 через CFFE, но после этого приложение крашится.
Как можно попроще это сделать?
или только через
Code:
  1. [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
  2.         private static extern IntPtr LoadLibrary(string libname);

впихнув его в какой-нибудь вызываемый метод dll1?




Ранг: 337.6 (мудрец), 224thx
Активность: 0.210.1
Статус: Участник
born to be evil

Создано: 04 сентября 2017 17:01 · Поправил: ajax
· Личное сообщение · #8

zds
дотнет+импорт будет крашиться. механизмы не исследовал. дотнет и OEP не обрабатывает так-то, к слову

-----
От многой мудрости много скорби, и умножающий знание умножает печаль


| Сообщение посчитали полезным: zds

Ранг: 330.4 (мудрец), 334thx
Активность: 0.160.17
Статус: Участник
ILSpector Team

Создано: 06 сентября 2017 13:16
· Личное сообщение · #9

смотрел кто нибудь? https://exelab.ru/f/action=vthread&forum=2&topic=24716&page=4#19
Интересует расшифровка строк, не въеду пока как ее в реализовать.




Ранг: 77.2 (постоянный), 73thx
Активность: 0.190.15
Статус: Участник

Создано: 06 сентября 2017 14:54
· Личное сообщение · #10

Medsft
Смотрел..
Medsft пишет:
Интересует расшифровка строк

Каких?



Ранг: 330.4 (мудрец), 334thx
Активность: 0.160.17
Статус: Участник
ILSpector Team

Создано: 06 сентября 2017 16:07
· Личное сообщение · #11

sefkrd пишет:
Каких?
всех )) и не сам текст а техника расшифровки




Ранг: 77.2 (постоянный), 73thx
Активность: 0.190.15
Статус: Участник

Создано: 06 сентября 2017 16:35
· Личное сообщение · #12

dnlib ведь..
Или не..?



Ранг: 330.4 (мудрец), 334thx
Активность: 0.160.17
Статус: Участник
ILSpector Team

Создано: 06 сентября 2017 16:49
· Личное сообщение · #13

sefkrd пишет:
Или не..?
- короче спрошу. смог получить exeшник с открытыми стрингами?



Ранг: 88.2 (постоянный), 58thx
Активность: 0.110.04
Статус: Участник

Создано: 06 сентября 2017 17:11
· Личное сообщение · #14

Medsft
Да сможешь
Вот функция --> Link <--
Можешь на нее ставить BP и смотреть что куда выдает, а можно взять dnlib
И самому написать расшифровщик

| Сообщение посчитали полезным: sefkrd


Ранг: 77.2 (постоянный), 73thx
Активность: 0.190.15
Статус: Участник

Создано: 06 сентября 2017 17:16
· Личное сообщение · #15

Нет...
Вроде Class36 занимается этим..
Похоже сами писали..

Добавлено спустя 2 минуты
Mishar_Hacker
Правильно увидел!



Ранг: 330.4 (мудрец), 334thx
Активность: 0.160.17
Статус: Участник
ILSpector Team

Создано: 06 сентября 2017 17:49 · Поправил: Medsft
· Личное сообщение · #16

Mishar_Hacker пишет:
а можно взять dnlib
И самому написать расшифровщик
воо в самую тему попал ... )) ... ты мне подскажи с какого боку зайти, но хотелось бы добавить что там динамик распаковка стрингов пока не юзнули хрен прочитаешь, а юзнуть простым вызовом того что ты нашел не получается))) (получится "X0X") Вообще попробуй остановится где нибудь тут http://prntscr.com/ghu6y5 и в голове прояснится

Нее согласен что особой сложности там нет) не пойму просто на что в reflection там завязан key в словаре..



Ранг: 88.2 (постоянный), 58thx
Активность: 0.110.04
Статус: Участник

Создано: 06 сентября 2017 18:01
· Личное сообщение · #17

Medsft
Брешь dnlib вызываешь все методы с int числами и получаешь свои строки
В лс напиши контакты подумаем



Ранг: 330.4 (мудрец), 334thx
Активность: 0.160.17
Статус: Участник
ILSpector Team

Создано: 06 сентября 2017 18:20
· Личное сообщение · #18

Mishar_Hacker - ))) тыж даже не пробовал ))) Писать тебе похоже лень код, чтоб удостоверится тогда погляди на эту картинку http://prntscr.com/ghunct получишь выхлоп



Ранг: 88.2 (постоянный), 58thx
Активность: 0.110.04
Статус: Участник

Создано: 07 сентября 2017 00:13
· Личное сообщение · #19

Medsft
Через de4dot я побывал делать там не получается
а то что мне лень писать код, тут я согласен, но я думаю если ты шаришь тебе не будет сложно это сделать




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 07 сентября 2017 00:58
· Личное сообщение · #20

Mishar_Hacker пишет:
но я думаю если ты шаришь тебе не будет сложно это сделать

Образцовый халявщик )

-----
EnJoy!


| Сообщение посчитали полезным: Medsft

Ранг: 330.4 (мудрец), 334thx
Активность: 0.160.17
Статус: Участник
ILSpector Team

Создано: 07 сентября 2017 09:27
· Личное сообщение · #21

Есть еще кто смотрел эту сборку?




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 07 сентября 2017 10:20
· Личное сообщение · #22

Medsft пишет:
Есть еще кто смотрел эту сборку?

Ты про Trinus PSVR?

-----
EnJoy!




Ранг: 330.4 (мудрец), 334thx
Активность: 0.160.17
Статус: Участник
ILSpector Team

Создано: 07 сентября 2017 13:20
· Личное сообщение · #23

Jupiter пишет:
Ты про Trinus PSVR?
да о нем. Это конечно кастом, алгоритм интересен защит строк. В реакторе последнем встречается часть данной техники где из stacktrace вытаскивается имя метода содержащее полезную нагрузку а тут от имени не зависит



Ранг: 24.3 (новичок), 65thx
Активность: 0.010
Статус: Участник

Создано: 07 сентября 2017 18:11
· Личное сообщение · #24

Medsft
По stacktrace там проверка откуда был вызван метод расшифровки строки, не более. Нужно патчить либо саму проверку внутри файла, либо модифицировать de4dot для новой версии eazfuscator.

Почищенный файл, если нужно - http://rgho.st/6Bv24ByKS

| Сообщение посчитали полезным: Medsft, sefkrd

Ранг: 330.4 (мудрец), 334thx
Активность: 0.160.17
Статус: Участник
ILSpector Team

Создано: 08 сентября 2017 09:53
· Личное сообщение · #25

SHADOW785
Один вопрос: с чего сформировался вывод что это новый EAZ? (не вижу явных индентификаторов)
Если это не кастом dedot допилю

Добавлено спустя 33 минуты
SHADOW785 спс ))) смог повторить, работает)
http://prntscr.com/gijpxq

Добавлено спустя 35 минут
Medsft пишет:
Если это не кастом dedot допилю
а с другой стороны зачем? у меня к нему неоднозначное отношение)))




Ранг: 77.2 (постоянный), 73thx
Активность: 0.190.15
Статус: Участник

Создано: 08 сентября 2017 16:05
· Личное сообщение · #26

Medsft
dedot допилил..?



Ранг: 330.4 (мудрец), 334thx
Активность: 0.160.17
Статус: Участник
ILSpector Team

Создано: 08 сентября 2017 16:32 · Поправил: Medsft
· Личное сообщение · #27

sefkrd пишет:
dedot допилил..?
пока чисто патчем решил проверку stacktrace обойти, жду ответа не буду же я для кастома который один раз в жизни встретился dedot допиливать



Ранг: 24.3 (новичок), 65thx
Активность: 0.010
Статус: Участник

Создано: 08 сентября 2017 16:39
· Личное сообщение · #28

Medsft
Я работал с этим обфускатором просто, так что знаю о чем говорю. В принципе, можешь скачать с официального сайта последнюю версию Eazfuscator, накрыть любую сборку для теста и увидишь тот же код.



Ранг: 57.0 (постоянный), 10thx
Активность: 0.050.08
Статус: Участник

Создано: 11 сентября 2017 22:40
· Личное сообщение · #29

Подскажите пожалуйста как можно найти адрес скомпилированной системной функции SAPKCS1SignatureDeformatter.VerifySignature ?
Хочу через лоадер пропатчить, чтобы был всегда положительный ответ.
Пробовал через хук на getJit и подменой на свою функцию, но через нее отлавливаю только методы самой програмы, системных методов нет.
или это не правильный подход? и нужно патчить методы в самой програме? просто их несколько и хотелось бы пропатчить только один VerifySignature, чтобы была универсальность.



Ранг: 330.4 (мудрец), 334thx
Активность: 0.160.17
Статус: Участник
ILSpector Team

Создано: 12 сентября 2017 09:50
· Личное сообщение · #30

zds пишет:
Подскажите пожалуйста как можно ...... пропатчить...... системную функцию

Аналогии проводить умеешь?
Code:
  1.         [DllImport("kernel32.dll")]
  2.         public static extern IntPtr GetModuleHandle(string lpModuleName);
  3.         [DllImport("kernel32", CharSet=CharSet.Ansi, SetLastError=true, ExactSpelling=true)]
  4.         private static extern IntPtr GetProcAddress(IntPtr hModule, string procName);
  5.         [DllImport("kernel32", CharSet=CharSet.Ansi, SetLastError=true, ExactSpelling=true)]
  6.         private static extern int WriteProcessMemory(int hProcess, IntPtr lpBaseAddress, byte[] lpBuffer, int nSize, ref int lpNumberOfBytesWritten);
  7.  
  8.         public static void PatchStrongNameCheck()
  9.         {
  10.             int lpNumberOfBytesWritten = 0;
  11.             byte[] lpBuffer = new byte[] { 0x33, 0xc0, 0x40, 0xc2, 0x18, 0 };
  12.             IntPtr moduleHandle = GetModuleHandle("advapi32.dll");
  13.             if (moduleHandle != IntPtr.Zero)
  14.             {
  15.                 IntPtr procAddress = GetProcAddress(moduleHandle, "CryptVerifySignatureA");
  16.                 if (procAddress != IntPtr.Zero)
  17.                 {
  18.                     WriteProcessMemory(-1, procAddress, lpBuffer, lpBuffer.Length, ref lpNumberOfBytesWritten);
  19.                 }
  20.                 IntPtr lpBaseAddress = GetProcAddress(moduleHandle, "CryptVerifySignatureW");
  21.                 if (lpBaseAddress != IntPtr.Zero)
  22.                 {
  23.                     WriteProcessMemory(-1, lpBaseAddress, lpBuffer, lpBuffer.Length, ref lpNumberOfBytesWritten);
  24.                 }
  25.             }
  26.         }


| Сообщение посчитали полезным: DenCoder, zds


Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 12 сентября 2017 12:06
· Личное сообщение · #31

Топик закрыт. Продолжение здесь https://exelab.ru/f/action=vthread&forum=1&topic=24863


<< 1 ... 45 . 46 . 47 . 48 . 49 . 50 .
 eXeL@B —› Основной форум —› Взлом dotNET программ
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати