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

 eXeL@B —› Основной форум —› Взлом dotNET программ
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 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]




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

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

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

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

-----
[nice coder and reverser]




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

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

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

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




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

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

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


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

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

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

7a80_02.02.2011_CRACKLAB.rU.tgz - target.zip

-----
[nice coder and reverser]


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


Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

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

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

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

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.





Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 02 февраля 2011 20:05
· Личное сообщение · #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 *****


-----
[nice coder and reverser]




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

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

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




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

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

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

-----
[nice coder and reverser]




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

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

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


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

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




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

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

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

-----
[nice coder and reverser]




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

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

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

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

Stream manifestResourceStream = executingAssembly.GetManifestResourceStream("              ");




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 02 февраля 2011 23:32
· Личное сообщение · #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 а чем ты так код восстановил?

-----
[nice coder and reverser]




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

Создано: 03 февраля 2011 00:24
· Личное сообщение · #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. }




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

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

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


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

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

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

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



7bf7_02.02.2011_CRACKLAB.rU.tgz




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

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

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

-----
[nice coder and reverser]




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

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

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

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

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

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




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

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

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

-----
[nice coder and reverser]




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

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

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

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




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

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

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

-----
[nice coder and reverser]





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

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

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



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

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

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

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



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

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

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

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



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

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



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

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

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

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

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

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




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

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

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

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




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 03 февраля 2011 15:32
· Личное сообщение · #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     

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

-----
[nice coder and reverser]




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

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

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


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

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



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

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

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

-----
старый пень




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

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

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



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

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

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

-----
старый пень





Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

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

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

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

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh


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

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

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

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

лучше б написали там что из них работает на 6.5/7.0b


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