eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
обновлён 2 декабря!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: (+2 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Основной форум —› Опять .net
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 49 . 50 . >>
Посл.ответ Сообщение

Ранг: 60.6 (постоянный)
Статус: Участник

Создано: 30 августа 2010 22:59 · Поправил: 2 сентября 2016 10:10 s0l New!
Цитата · Личное сообщение · #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]


Ранг: 990.3 (! ! !)
Статус: Модератор
Author of DiE

Создано: 2 февраля 2011 14:01 New!
Цитата · Личное сообщение · #2

Tyra да я взломал) но обёртка с лоадером не нравиться зря ключ походу подбирал получается. maxtocode 100% и netprotector 4.x вроде так тулзы подсказали.

блин отлаживать в dile жутко неудобно, иногда брякается, иногда нет, то показывает аргументы то нет. нужно что-нибудь другое...

Ранг: 78.7 (постоянный)
Статус: Участник

Создано: 2 февраля 2011 15:00 New!
Цитата · Личное сообщение · #3

Hellspawn пишет:
да я взломал) но обёртка с лоадером не нравиться зря ключ походу подбирал получается

Если проге не нужен Онлайн, может её не пускать в сеть ? или через host файл попробовать подменить ИП !


Ранг: 990.3 (! ! !)
Статус: Модератор
Author of DiE

Создано: 2 февраля 2011 15:12 New!
Цитата · Личное сообщение · #4

Tyra пишет:
Если проге не нужен Онлайн, может её не пускать в сеть ? или через host файл попробовать подменить ИП !


да она как раз тока в онлайне и работает))) просто я чёт даже захотел тутор написать, по своему первому опыту с NET. какие были грабли и что приходилось делать. просто враппер для send/recv не очень нравиться, зато универсально конечно.

фух, наконец то дома:
DotNet Id - MaxToCode 100%
DNiD - DotNet Reactor v4.X -> Eziriz

прикладываю оригинальный файл + с деобфускатором + инфу, что и как

{ Атач доступен только для участников форума } - target.zip

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



Ранг: 748.2 (! !)
Статус: Участник
bytecode!

Создано: 2 февраля 2011 19:59 · Поправил: 4kusNick New!
Цитата · Личное сообщение · #5

Hellspawn
Отличная работа, однако, для первого опыта-то!)
Если что, пароль на архив Hellspawn'а - target.

Рефлектор совсем платным становится, жаль.


Ранг: 990.3 (! ! !)
Статус: Модератор
Author of DiE

Создано: 2 февраля 2011 20:05 New!
Цитата · Личное сообщение · #6

4kusNick хах, ещё бы запатчить.

как я понимаю пересобрать не получается из за этого?



ilasm.exe пишит:

Code:
  1. Resolving local member refs: 0 -> 0 defs, 0 refs, 0 unresolved
  2. Could not create output file, error code=0x80004005
  3.  
  4. ***** FAILURE *****

Ранг: 60.6 (постоянный)
Статус: Участник

Создано: 2 февраля 2011 20:21 New!
Цитата · Личное сообщение · #7

А зачем пересобирать то? В хекс редакторе поменяй необходимый опкод и всё


Ранг: 990.3 (! ! !)
Статус: Модератор
Author of DiE

Создано: 2 февраля 2011 20:37 New!
Цитата · Личное сообщение · #8

не катит метод потом перестаёт работать.

Ранг: 60.6 (постоянный)
Статус: Участник

Создано: 2 февраля 2011 22:00 New!
Цитата · Личное сообщение · #9

Hellspawn пишет:
не катит метод потом перестаёт работать.


Поменял опкод в хекс редакторе sendspace.com/file/z1ncsr

Генерирую серийник, ввожу, перезапускаю, сбоку в программе не отображается сообщение о недействительном серийнике (в оригинале появляется).


Ранг: 990.3 (! ! !)
Статус: Модератор
Author of DiE

Создано: 2 февраля 2011 22:53 New!
Цитата · Личное сообщение · #10

Kaimi хех, зарегестрируй, а потом нажми кнопку "Запустить" в патченной версии.

Ранг: 510.2 (!)
Статус: Модератор

Создано: 2 февраля 2011 23:23 · Поправил: sendersu New!
Цитата · Личное сообщение · #11

Hellspawn
SAE -> FileDisassembler сколько раз ругался на деоб. сборке?
насчет плохого имени ресурса - а что если записать ресурс руками под своим именем а потом в коде найти и поправить имя на записанное?

похоже вот здесь

Stream manifestResourceStream = executingAssembly.GetManifestResourceStream("              ");


Ранг: 990.3 (! ! !)
Статус: Модератор
Author of DiE

Создано: 2 февраля 2011 23:32 New!
Цитата · Личное сообщение · #12

sendersu
не ругается а как его переименовать? чёт везде пробовал, не позволяют инструменты.

// add

переименова сам файл ресурса, потом поменять в il файле вхождение тоже. собралось, но файл не рабочий,
без иконки и т.д.

// add

подключил ресурсы

\ilasm.exe "123.il" /EXE /RESOURCE=123.res /out:res.exe

иконка появилась, но всё равно падает)
тут крешит:

получает эту грёбанную строку "              "

Code:
  1. call string ECo8dAxFuP8Y8VDWW5.c000017::Ygi2Fh0hm(int32)
  2. callvirt instance class [mscorlib]System.IO.Stream [mscorlib]System.Reflection.Assembly::GetManifestResourceStream(string)

как пропатчить, хз
sendersu а чем ты так код восстановил?

Ранг: 60.6 (постоянный)
Статус: Участник

Создано: 3 февраля 2011 00:24 New!
Цитата · Личное сообщение · #13

Reflector с Reflexil нормально сохраняет/загружает сборку после обработки SAE, зачем ilasm то тут использовать?
Hellspawn пишет:
sendersu а чем ты так код восстановил?

Так это как? Если деобфусцировать файл с помощью SAE, то получишь вполне читабельный код, типа
Code:
  1. if (str == c000013.m00007e(-65773122))
  2.     {
  3.         this.m00001e(DateTime.Now.ToLongTimeString() + c000013.m00007e(-65773138));
  4.         return str;
  5.     }
  6.     if (str != c000013.m00007e(-65773307))
  7.     {
  8.         this.m00001e(DateTime.Now.ToLongTimeString() + c000013.m00007e(-65773264));
  9.         this.m000029();
  10.         return str;
  11.     }
  12.     if (str == c000013.m00007e(-65773307))
  13.     {
  14.         this.f000149 = c000013.m00007e(-65773185);
  15.     }
  16.     return str;
  17. }

Ранг: 510.2 (!)
Статус: Модератор

Создано: 3 февраля 2011 00:32 New!
Цитата · Личное сообщение · #14

Hellspawn пишет:
sendersu а чем ты так код восстановил?


дровами "прямые руки"

Kaimi пишет:
получишь вполне читабельный код

не вполне, так как строки украдены жадным протектором......... но вообще можно работать, да...

Hellspawn
вот тебе рабочий вар, играйси наздоровье (прож под VS2k8)
(в файле out.txt список украденного пакостным негодяем)



{ Атач доступен только для участников форума }


Ранг: 990.3 (! ! !)
Статус: Модератор
Author of DiE

Создано: 3 февраля 2011 00:33 New!
Цитата · Личное сообщение · #15

Kaimi у меня рефлектор вылетает такой "читабельный" у меня есть)))
а у sendersu почитабельнее будет, возможно он руками конечно доработал (что и оказалось).
вообщем получилось у меня собрать заного всё осталось проверку найти, которая метод рубит.

Ранг: 60.6 (постоянный)
Статус: Участник

Создано: 3 февраля 2011 00:54 New!
Цитата · Личное сообщение · #16

sendersu пишет:
не вполне, так как строки украдены жадным протектором......... но вообще можно работать, да...

Вообще, подобные строки в программах, обработанных реактором, раньше без проблем восстанавливались SAE, мне странно, что в данном случае он этого не сделал.

Hellspawn пишет:
у меня рефлектор вылетает

Может старый рефлектор? У меня 6.5 не вылетает.


Ранг: 990.3 (! ! !)
Статус: Модератор
Author of DiE

Создано: 3 февраля 2011 02:21 New!
Цитата · Личное сообщение · #17

sendersu всё, разобрался только как ты получил целиковый проект?

Ранг: 510.2 (!)
Статус: Модератор

Создано: 3 февраля 2011 08:03 New!
Цитата · Личное сообщение · #18

Kaimi
мож реактор повзрослел? все ети строки украдены и хранятся в закодированном виде в отдельном ресурсе (тот что имеет дикое имя)
SAE вызивает только стат. ctor- вот там он может восстановить, все другие методы - а их очень много - нет.

Hellspawn
из одного классного фильма - "Брюки превращаются...... превращаются брюки...... " в сами знаете шо
рад что вам удалось


Ранг: 990.3 (! ! !)
Статус: Модератор
Author of DiE

Создано: 3 февраля 2011 09:07 New!
Цитата · Личное сообщение · #19

sendersu так не покатит) делитесь инструментом. или технологией.
мне нужно до конца разобраться. потому что оригинальный файл не могу пропатчить, а скомпиленный, патчиться влёт, правда проще, конечно же в студии все поправить)))


Ранг: 85.9 (постоянный)
Статус: Участник

Создано: 3 февраля 2011 10:40 · Поправил: Airenikus New!
Цитата · Личное сообщение · #20

SAE отлично расшифровывает строки, которые закодированы под NET Reactor, но здесь проблема с этим из-за того, что строка для расшифровки подается в метод с минусовым значением Первый раз вижу такое...

Ранг: 78.7 (постоянный)
Статус: Участник

Создано: 3 февраля 2011 11:02 New!
Цитата · Личное сообщение · #21

Airenikus пишет:
строка для расшифровки подается в метод с минусовым значением Первый раз вижу такое...

Ничего удивительного ! В НЕХ Это нормальное числа, а в Функцию впихивают ADD & XOR ! Много подобного встречал !

Ранг: 510.2 (!)
Статус: Модератор

Создано: 3 февраля 2011 12:01 New!
Цитата · Личное сообщение · #22

Hellspawn пишет:
делитесь инструментом. или технологией

да сложно назвать ето инструментом. или технологией
много ручной работы (приготовлений). если автоматизирую - поделюсь



Airenikus пишет:
SAE отлично расшифровывает строки, которые закодированы под NET Reactor

можно пример асембли которая автоматом делаеться через SAE?
мне таких не встречалось

Ранг: 60.6 (постоянный)
Статус: Участник

Создано: 3 февраля 2011 12:22 New!
Цитата · Личное сообщение · #23

sendersu пишет:
можно пример асембли которая автоматом делаеться через SAE?
мне таких не встречалось

Например вот: sendspace.com/file/93t0y4

Hellspawn пишет:
потому что оригинальный файл не могу пропатчить, а скомпиленный, патчиться влёт

Все тот же условный переход патчить пытаешься?


Ранг: 85.9 (постоянный)
Статус: Участник

Создано: 3 февраля 2011 12:24 New!
Цитата · Личное сообщение · #24

sendersu, я наверное не уточнил, что сначала надо снять протектор, чтобы уже до внутренностей методов добраться

Но как вариант (со снятым протектором), в котором строки расшифровываются в SAE на автомате: rghost.ru/4185941/private/fe43362c1f3497d9597ddddb0bb10e8f


Ранг: 990.3 (! ! !)
Статус: Модератор
Author of DiE

Создано: 3 февраля 2011 15:32 New!
Цитата · Личное сообщение · #25

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

ключ и патч, сразу после считывания ответа сервака:
Code:
  1.       IL_0139:  /* 6F   | (0A)0000C2       */ callvirt   instance string [mscorlib/*23000001*/]System.IO.TextReader/*01000070*/::ReadToEnd() /* 0A0000C2 */
  2.       IL_013e:  /* 0A   |                  */ stloc.0
  3.       ldstr "active"          
  4.       stloc.0     

фух, можно написать небольшой очерк)))

Ранг: 510.2 (!)
Статус: Модератор

Создано: 3 февраля 2011 18:17 · Поправил: sendersu New!
Цитата · Личное сообщение · #26

Мда, автоматизация декодирования строк умышленно затруднена!
протектор сечет каким методом был вызван метод декодирования


<code>
bool flagAutoCall = type == typeof(RuntimeMethodHandle); << опс
f000167 ^= 160;
if (!flagAutoCall)
{
.....
</code>

по ходу надо патчить декодер на ету проверку или можно по другому?

Ранг: 579.2 (!)
Статус: Модератор

Создано: 5 февраля 2011 12:48 New!
Цитата · Личное сообщение · #27

Xenocode 2008, виртуализация. Генерик дамперы не берут.
Из диспетчера сделал full dump, потом выковырял модуль через windbg .writemem. Поправил секции - сборка стала распознаваться в рефлекторах и прочих утилитах.
Вопрос: а можно ли сделать ее рабочей? Есть метода по анпаку виртуализированного софта?

Ранг: 510.2 (!)
Статус: Модератор

Создано: 5 февраля 2011 13:22 New!
Цитата · Личное сообщение · #28

r_e
закиньте примерчик для ознакомления, пож-та

Ранг: 579.2 (!)
Статус: Модератор

Создано: 6 февраля 2011 00:55 New!
Цитата · Личное сообщение · #29

А статью напишете? См. ПМ.


Ранг: 756.5 (! !)
Статус: Участник
Student

Создано: 8 февраля 2011 19:21 · Поправил: Isaev New!
Цитата · Личное сообщение · #30

Обзора по плагинам для Reflector никто не встречал?

[add]
нашёл вроде что хотел тут: www.rsdn.ru/forum/tools/3568228.1.aspx

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


Ранг: 510.2 (!)
Статус: Модератор

Создано: 9 февраля 2011 00:18 New!
Цитата · Личное сообщение · #31

Isaev пишет:
плагинам для Reflector

лучше б написали там что из них работает на 6.5/7.0b
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 49 . 50 . >>
 eXeL@B —› Основной форум —› Опять .net
Эта тема закрыта. Ответы больше не принимаются.

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS