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

 eXeL@B —› Основной форум —› Взлом .NET (part 2)
<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . >>
Посл.ответ Сообщение


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

Создано: 12 сентября 2017 12:06
· Личное сообщение · #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.

Документация:
--> Microsoft <--
--> Metadata and File Format <--
--> CIL(опкоды с полным пояснениями) <--

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

Другое:
.NET Reflector v7.0.0.198 (C# Source by wangshy)
String decryption with de4dot

Прошлый топик https://exelab.ru/f/action=vthread&forum=1&topic=16650&page=-1

-

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

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

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

Создано: 05 января 2019 17:30
· Личное сообщение · #2

dnSpy 6



Ранг: 16.6 (новичок), 1thx
Активность: 0.030.16
Статус: Участник

Создано: 03 февраля 2019 14:02 · Поправил: rukop84
· Личное сообщение · #3

вопрос решен



Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 06 февраля 2019 05:24
· Личное сообщение · #4

Друзья! Всем привет. В общем ситуация такая, есть программа на clickonce. Запуск exe файла происходит при нажатие на файл с расширением appref-ms, напрямую на exe файл нажимаешь, особо ничего не происходит, пару ошибок вылазит и закрывается. В итоге, не получается расшифровать закодированный ILProtector'ом exe файл (определил через de4dot). Приложение .Net (c#)
Пробовал и ILProtector Unpacker, но учу файл то не запускается без ярлыка appref-ms, в итоге ничего не получается.
Как посоветуете поступить в данной ситуации? Сам exe файл исходник которого бы хотелось получить в прикреплённом архиве по ссылке https://cloud.mail.ru/public/C562/Ja6YUVqvT . Повторюсь, программа не запускается из архива, только несколько окон с ошибками моргнёт и всё. Всё запускается только через ярлык appref-ms, но исходник exe файла хотелось бы получить.. Кто что посоветует друзья?


cc38_06.02.2019_EXELAB.rU.tgz - key.png



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

Создано: 06 февраля 2019 11:08
· Личное сообщение · #5

bizzon
Распакованный файл - https://www.sendspace.com/file/jmpc9p

Исходник можно вытянуть при помощи любого любимого декомпилятора (dnSpy, ILSpy, JustDecompile)



Ранг: 15.7 (новичок), 1thx
Активность: 0.030
Статус: Участник

Создано: 06 февраля 2019 16:47
· Личное сообщение · #6

Здравствуйте уважаемые форумчане. У меня такой вопрос имеется файл лицензии закодированный.
Код с программы которая работает с файлом лицензии
{
byte[] bytes = Encoding.ASCII.GetBytes("12345678");
string text = "";
foreach (byte b in bytes)
{
text += b.ToString();
}
string text2 = MainWindow.Decrypt(cipherText, text, "i312uoHJDSGAHgi732i2", "HAS*@BHUKAYY&T{UI", "SHA512", 2, 256);
string s = text2.Split(new char[]
{
'?'
})[0];
if (text2.Split(new char[]
{
'?'
})[1] == @class.method_4())
{
DateTime t = DateTime.Parse(s);
if (DateTime.Compare(MainWindow.GetNistTime(), t) > 0)
{
MessageBox.Show("Программа не активирована", "Информация", MessageBoxButton.OK, MessageBoxImage.Asterisk);
Application.Current.Shutdown();
}
}
else
{
MessageBox.Show("Не тот компьютер", "Информация", MessageBoxButton.OK, MessageBoxImage.Asterisk);
Application.Current.Shutdown();
}
}
Как можно расшифровать файл лицензии изменить год и закодировать обратно?




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

Создано: 06 февраля 2019 18:48
· Личное сообщение · #7

vitalik9 пишет:
Как можно расшифровать

Смотри метод MainWindow.Decrypt, анализируй и делай Encrypt, возможно он скорее всего реализован, и находится рядом с Decrypt..

vitalik9 пишет:
изменить год

Смотри здесь: MainWindow.GetNistTime()



Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 06 февраля 2019 23:09 · Поправил: bizzon
· Личное сообщение · #8

SHADOW785 пишет:
dnSpy

Шикарно!! Спасибо огромнейшее, тем более за исходник! =) Но хотелось бы самому ещё вникнуть в эту суть и понять как у тебя получилось, есть где изучить информацию по этому?



Ранг: 15.7 (новичок), 1thx
Активность: 0.030
Статус: Участник

Создано: 07 февраля 2019 10:51 · Поправил: vitalik9
· Личное сообщение · #9

Еще такой вопрос.
Вот часть кода программы до шифрования файла лицензии
text6 = text6.Replace("\r", "");
text6 = text6.Replace("\n", "");
if (text6.Equals("Неправильный пароль или логин") && text6.Equals("Вы ничего не ввели"))
{
MessageBox.Show(text6, "Информация", MessageBoxButton.OK, MessageBoxImage.Asterisk);
}
else
{
string salt = string.Concat(new string[]
{
text6.Substring(8, 1),
text6.Substring(20, 1),
text6.Substring(15, 1),
text6.Substring(5, 1),
text6.Substring(17, 1),
text6.Substring(22, 1),
text6.Substring(3, 1)
});
string cipherText = text6.Remove(8, 1).Remove(19, 1).Remove(14, 1).Remove(5, 1).Remove(14, 1).Remove(17, 1).Remove(3, 1);
try
{
s = DateTime.UtcNow.ToString("dd.MM.yyyy HH:mm");
bytes = Encoding.ASCII.GetBytes(s);
string s2 = DateTime.UtcNow.AddMinutes(-1.0).ToString("dd.MM.yyyy HH:mm");
Encoding.ASCII.GetBytes(s2);
string text7 = "";
foreach (byte b2 in bytes)
{
text5 += b2.ToString();
}
foreach (byte b3 in bytes)
{
text7 += b3.ToString();
}
try
{
if (MainWindow.Decrypt(cipherText, text5, salt, initialVector, "SHA512", 2, 256) == "kY@toej12p9jiY73")



как в этом тексте изменить на 31 декабря 2025 года?




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

Создано: 07 февраля 2019 20:30
· Личное сообщение · #10

vitalik9
Учи яп..



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

Создано: 10 февраля 2019 09:33
· Личное сообщение · #11

Самое простое и быстрое - в отладчике в s подставить нужную дату и время, а потом остановиться на последней строке и посмотреть что вернет MainWindow.Decrypt. Это значение и подставить в равенство.



Ранг: 15.7 (новичок), 1thx
Активность: 0.030
Статус: Участник

Создано: 18 февраля 2019 11:37 · Поправил: vitalik9
· Личное сообщение · #12

try
{
byte[] bytes3 = Encoding.ASCII.GetBytes("12345678");
string text15 = "";
foreach (byte b5 in bytes3)
{
text15 += b5.ToString();
}
string text16 = MainWindow.Decrypt(cipherText3, text15, "i312uoHJDSGAHgi732i2", "HAS*@BHUKAYY&T{UI", "SHA512", 2, 256);
string s4 = text16.Split(new char[]
я знаю значение text16
можно ли вписать измененное значение
потом добавить encrypt
в отладчике поставить точку останова после encrypt и увидеть значение encrypt
помогите это реализовать.
Пожалуйста.
отладчик dnspy



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

Создано: 18 февраля 2019 11:47
· Личное сообщение · #13

vitalik9 пишет:
я знаю значение text16

Фарш обратно не провернуть

Решение
Инжектишь статический приватный класс в сборку примерно такого содержимого

private static class MyHack
{
private string GetTrueVaalue()
{
return "твое правильное значение";
}

}

затем строку "string text16 = MainWindow.Decrypt(..." заменяешь на string text16=MyHack.GetTrueValue();
бинари патчингом



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

Создано: 18 февраля 2019 19:02
· Личное сообщение · #14

Судя по тому, что всуе упомянут SHA512, мясо из котлет действительно навряд ли восстановишь. Ибо это не биективное отображение строк, а так называемая хэш-функция, по которой исходную строку восстановить однозначно невозможно.



Ранг: 15.7 (новичок), 1thx
Активность: 0.030
Статус: Участник

Создано: 19 февраля 2019 12:44 · Поправил: vitalik9
· Личное сообщение · #15

С этим разобрался.
Вырезал проверку лицензии.
но она есть в еще одном методе
А там вот вот такая проблема
мне нужно изменить значение в методе.
Открыл метод в dnspy
и без каких либо изменений для начала нажал компилировать.
Программа выдала ошибку на строку uint num2 = <PrivateImplementationDetails>.ComputeStringHash(text3);
http://prntscr.com/mn305z
а если изменить весь класс то ошибок еще больше без внесения изменений
как можно решить данную проблему?



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

Создано: 19 февраля 2019 13:59
· Личное сообщение · #16

C перекомпиляцией никак!
Пользуйся байт-патчингом




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

Создано: 20 февраля 2019 22:14 · Поправил: sefkrd
· Личное сообщение · #17

Medsft пишет:
Фарш обратно не провернуть

Не совсем..

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

Ранг: 15.7 (новичок), 1thx
Активность: 0.030
Статус: Участник

Создано: 20 февраля 2019 22:42 · Поправил: vitalik9
· Личное сообщение · #18

проблема решена
спасибо за помощь



Ранг: 30.8 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 23 марта 2019 21:24
· Личное сообщение · #19

ObfuscatedByAgileDotNetAttribute()
Друзья , de4dot не может распаковать. Чем можно?



Ранг: 3.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 25 марта 2019 15:24
· Личное сообщение · #20

парни а confuserex где можно почитать как его снять
стандартным не снимается - что курить гуглить - подскажите.



Ранг: 10.0 (новичок), 4thx
Активность: 0.020
Статус: Участник

Создано: 03 апреля 2019 00:44
· Личное сообщение · #21

mored пишет:
парни а confuserex где можно почитать как его снять

а есть ссылка на файл?



Ранг: 15.7 (новичок), 1thx
Активность: 0.030
Статус: Участник

Создано: 04 апреля 2019 08:58
· Личное сообщение · #22

в программе используется Newtonsoft.Json
как можно просмотреть код в csharp?




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

Создано: 04 апреля 2019 17:21
· Личное сообщение · #23

vitalik9
dnSpy

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

Ранг: 15.7 (новичок), 1thx
Активность: 0.030
Статус: Участник

Создано: 04 апреля 2019 19:26
· Личное сообщение · #24

пробовал не открывает dnSpy
не отображает код программы в c




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

Создано: 04 апреля 2019 19:51 · Поправил: sefkrd
· Личное сообщение · #25

vitalik9
Это open source либа,, --> Link <--
Значит код обфускан,,



Ранг: 15.7 (новичок), 1thx
Активность: 0.030
Статус: Участник

Создано: 04 апреля 2019 20:14 · Поправил: vitalik9
· Личное сообщение · #26

Добавлено спустя 6 минут
не понятно чем она накрыта
https://yadi.sk/d/befytBl6XxEkmw



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

Создано: 05 апреля 2019 07:06
· Личное сообщение · #27

vitalik9
appfuscator



Ранг: 15.7 (новичок), 1thx
Активность: 0.030
Статус: Участник

Создано: 05 апреля 2019 10:23 · Поправил: vitalik9
· Личное сообщение · #28

я пробовал дотом но что до обработки что после нее никаких изменений
и дот ошибок не выдает
в программе есть ссылки и при открытие через dnspy ссылок не видно

Добавлено спустя 8 минут
http://prntscr.com/n7s02z вот что показывает die



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

Создано: 05 апреля 2019 14:12
· Личное сообщение · #29

Dear vitalik9, tell us what you need from us?



Ранг: 15.7 (новичок), 1thx
Активность: 0.030
Статус: Участник

Создано: 05 апреля 2019 15:53
· Личное сообщение · #30

подскажите чем снять защиту?



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

Создано: 05 апреля 2019 16:52 · Поправил: Medsft
· Личное сообщение · #31

vitalik9 пишет:
подскажите чем снять защиту?
вот это конкретно, а то тяните резину.
h__s://forum.tuts4you.com/topic/37118-appfuscator-unpacking-tools/?tab=comments#comment-174405


<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . >>
 eXeL@B —› Основной форум —› Взлом .NET (part 2)
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати