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

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


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

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

Сейчас на форуме: rus935, mazaxaker (+1 невидимый пользователь)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · 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]

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

Создано: 7 декабря 2010 09:56 New!
Цитата · Личное сообщение · #2

iggvwh пишет:
Сборка не открывается даже в SAE

что именно не работает? детальней пож-та

CFFExplorer показал все метаданные

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


Ранг: 9.6 (гость)
Статус: Участник

Создано: 7 декабря 2010 17:58 New!
Цитата · Личное сообщение · #3

sendersu пишет:
что именно не работает? детальней пож-та

При попытке отобразить что находится внутри длл-ки SAE генерирует исключение (верней не он, а Mono.Cecil, на базе которой он сделан)
Вам смогли поправить метаданные через CFFExplorer, чтоб сборка была видна в рефлекторе? Дело в том, что я с CFF - как колхозница с микроскопом)). Если можно - было б неплохо если б вы описали, какие манипуляции вы делали. Или ссылку на мануал (какие-то мне попадались, но там было что-то сложней, чем только восстановление заголовка, поэтому не разобрался)

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


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

Создано: 8 декабря 2010 22:30 New!
Цитата · Личное сообщение · #4

iggvwh пишет:
Вам смогли поправить метаданные через CFFExplorer, чтоб сборка была видна в рефлекторе?

Это пробовали?
forum.tuts4you.com/index.php?showtopic=22455

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


Ранг: 9.6 (гость)
Статус: Участник

Создано: 9 декабря 2010 02:27 New!
Цитата · Личное сообщение · #5

Kaimi пишет:
Это пробовали?http://forum.tuts4you.com/index.php?showtopic=22455

An Error Occurred
Sorry, an error occurred. If you are unsure on how to use a feature, or don't know why you got this error message, try looking through the help files for more information.
[#10342] We could not determine which forum this topic is in.

Ранг: 189.9 (ветеран)
Статус: Участник

Создано: 9 декабря 2010 03:13 New!
Цитата · Личное сообщение · #6

Там регаться надо чтобы просмотреть, смотри аттач.

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

Ранг: 9.6 (гость)
Статус: Участник

Создано: 9 декабря 2010 17:07 New!
Цитата · Личное сообщение · #7

Хм, оказывается в моем случае - ларчик просто открывался. Достаточно было обновить Mono.Cecil до версии 0.9.4 Как же она облегчает жизнь!

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

Создано: 13 декабря 2010 14:25 · Поправил: s0l New!
Цитата · Личное сообщение · #8

Прошу тех, кто хорошо разбирается в шарпе перевести кусочек кода на делфи или просто объяснить логику
Code:
  1. private string GetHash(string password)
  2. {
  3.     byte[] bytes = Encoding.ASCII.GetBytes(password);
  4.     if (bytes == null)
  5.     {
  6.         return "";
  7.     }
  8.     SHA1CryptoServiceProvider provider = new SHA1CryptoServiceProvider();
  9.     string str = BitConverter.ToString(provider.ComputeHash(bytes)).Replace("-", "");
  10.     if (str != null)
  11.     {
  12.         str = str.ToLower();
  13.     }
  14.     return str;
  15. }

Попробовал просто получить хэш sha-1 от слова BhjVfe
в результате: 84de51aadb52162de91b8c2536bd2cc9f708ee58
а должно быть: b3b72df8ae3aade513b888eefcfe49d716d5a331

Заранее спасибо

Ранг: 156.1 (ветеран)
Статус: Участник
Капрал

Создано: 13 декабря 2010 14:38 New!
Цитата · Личное сообщение · #9

Могу тебя огорчить, пароль до Хеша доходит в другом виде.

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

Создано: 13 декабря 2010 14:41 New!
Цитата · Личное сообщение · #10

freeExec пишет:
Могу тебя огорчить, пароль до Хеша доходит в другом виде.

Если это из-за Encoding.ASCII.GetBytes, то к какому виду приводит его функция? Ведь это вызов функи из стандартной библиотеки

Ранг: 156.1 (ветеран)
Статус: Участник
Капрал

Создано: 13 декабря 2010 14:42 New!
Цитата · Личное сообщение · #11

GetHash(string password), уже вот тут пассворд != тому что ты ввел.

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

Создано: 13 декабря 2010 14:46 New!
Цитата · Личное сообщение · #12

freeExec, ты скомпилировал на шарпе эту функцию? Или откуда уверенность?

Ранг: 156.1 (ветеран)
Статус: Участник
Капрал

Создано: 13 декабря 2010 15:00 New!
Цитата · Личное сообщение · #13

Что бы не быть голословным. Можешь её засунуть в Рефлектор

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

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

Создано: 13 декабря 2010 15:01 · Поправил: s0l New!
Цитата · Личное сообщение · #14

freeExec
Спасибо, понял. Буду искать где введеный пароль мутирует...
Придумал! Нужно пропатчить хэширование на MessageBox и тогда получится подглядеть значение параметра password. Только вот как это сделать?

Ранг: 156.1 (ветеран)
Статус: Участник
Капрал

Создано: 13 декабря 2010 15:10 · Поправил: freeExec New!
Цитата · Личное сообщение · #15

Ну как тут уже советовали мне попробуй SimpleAssemblyExplorer
Хотя чето не выходит

Но может пригодится, сам мессадж бок выглядит так:
0 L_0000: nop
1 L_0001: ldarg.0
2 L_0002: call System.Windows.Forms.DialogResult System.Windows.Forms.MessageBox::Show(System.String)
3 L_0007: pop

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


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

Создано: 13 декабря 2010 15:17 New!
Цитата · Личное сообщение · #16

s0l пишет:
Попробовал просто получить хэш sha-1 от слова BhjVfe
в результате: 84de51aadb52162de91b8c2536bd2cc9f708ee58
а должно быть: b3b72df8ae3aade513b888eefcfe49d716d5a331

Возьми HashCalc и Посмотри ! Увидишь, что от Твоей строки ХЭШ считается Правильно !
Откуда Взят второй ХЭШ ?
Из Какой Проги дергал КОД ?

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

Создано: 13 декабря 2010 15:45 · Поправил: s0l New!
Цитата · Личное сообщение · #17

freeExec пишет:
0 L_0000: nop
1 L_0001: ldarg.0
2 L_0002: call System.Windows.Forms.DialogResult System.Windows.Forms.MessageBox::Show(System.String)
3 L_0007: pop

Спасибо, попробую

Tyra пишет:
Возьми HashCalc и Посмотри ! Увидишь, что от Твоей строки ХЭШ считается Правильно !
Откуда Взят второй ХЭШ ?
Из Какой Проги дергал КОД ?

А я и не говорил что не правильно (-:
Второй хэш - это то, что нужно получить.
Код дергал из убогого клиента, который передает в другой exe параметры. Хочу сделать аналог. Только и всего.
-
В-общем с MessageBox трюк не удался, стал копать дальше, оказалось, что SHA-1 вообще тут не при чем и я выделил не ту функцию. Хэш пароля - это RSA-???. Щас буду пробовать искать экспоненты...

Ранг: 122.8 (ветеран)
Статус: Участник

Создано: 13 декабря 2010 16:19 · Поправил: Ultras New!
Цитата · Личное сообщение · #18

s0l, выложил бы софт, так проще будет разбираться...
GetHash работает верно.

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

Создано: 13 декабря 2010 16:41 New!
Цитата · Личное сообщение · #19

Ultras
GameNet Launcher
rghost.ru/3591907

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

Создано: 13 декабря 2010 16:45 · Поправил: Tyra New!
Цитата · Личное сообщение · #20

s0l пишет:
что SHA-1 вообще тут не при чем и я выделил не ту функцию. Хэш пароля - это RSA-???.

Если в Программе Используется RSA, то и SHA1 Тут Тоже Причем ! Для подписи очень часто используется !
Попробуй в файле поискать RSAKeyValue как Unicode !
s0l пишет:
GameNet Launcher

Какая Функция Интересует ? Что Именно Ищем ?

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

Создано: 13 декабря 2010 16:54 New!
Цитата · Личное сообщение · #21

Tyra пишет:
Какая Функция Интересует ? Что Именно Ищем ?

Логика работы ланучера:
После авторизации в верхней форме и нажатии кнопки запустить игру, лаунчер запускает AIKARU.exe со следующими параметрами:
D:\Games\AIKA\AIKARU.exe 1000008066 b3b721ac8ae3aade5f67888eefcfe49d716d5a331 3000020 10000000000 login

Все параметры кроме второго(как-раз таки хэш) - неизменны. Требуется понять логику хэширования второго параметра, чтобы написать альтернативный лаунчер, ибо этот дико тормозит.

Ранг: 122.8 (ветеран)
Статус: Участник

Создано: 13 декабря 2010 16:58 · Поправил: Ultras New!
Цитата · Личное сообщение · #22

----
LoginControl_Login
Code:
  1. private void LoginControl_Login(object sender, LoginEventArgs e)
  2. {
  3.     this.GNASettings.IsEnemyPC = e.IsEnemyPC;
  4.     string nickName = e.NickName;
  5.     string password = e.Password;
  6.     if (((nickName == null) || (password == null)) || ((nickName.Trim() == "") || (password.Trim() == "")))
  7.     {
  8.         GNAError.Show("Проверьте правильность введенного имени и пароля", "Внимание");
  9.     }
  10.     else
  11.     {
  12.         new GetAuthByPasswordComand(e.NickName, e.Password).Execute(new AuthWebApiManager(), new ExecuteCallBackHandler(this.GetAuthCallBack));
  13.     }
  14. }

----
GetAuthByPasswordComand
Code:
  1. public GetAuthByPasswordComand(string login, string password) : base("user.getAuth", 1, typeof(AuthInfoResponse))
  2. {
  3.     this.Login = login;
  4.     this.PasswordHash = this.GetHash(password);
  5.     base.Parameters.Add("login", this.Login);
  6.     base.Parameters.Add("passhash", this.PasswordHash);
  7.     base.Parameters.Add("xml", "1");
  8. }

----
GetHash
Code:
  1. private string GetHash(string password)
  2. {
  3.     byte[] bytes = Encoding.ASCII.GetBytes(password);
  4.     if (bytes == null)
  5.     {
  6.         return "";
  7.     }
  8.     SHA1CryptoServiceProvider provider = new SHA1CryptoServiceProvider();
  9.     string str = BitConverter.ToString(provider.ComputeHash(bytes)).Replace("-", "");
  10.     if (str != null)
  11.     {
  12.         str = str.ToLower();
  13.     }
  14.     return str;
  15. }


--

Считается SHA хэш от пароля. Ничего лишнего не видно...

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

Создано: 13 декабря 2010 17:04 New!
Цитата · Личное сообщение · #23

Ultras пишет:
Считается SHA хэш от пароля. Ничего лишнего не видно...

Я тоже так решил, но как видно выше - это не так.

s0l пишет:
Попробовал просто получить хэш sha-1 от слова BhjVfe
в результате: 84de51aadb52162de91b8c2536bd2cc9f708ee58
а должно быть: b3b72df8ae3aade513b888eefcfe49d716d5a331
- это как раз-таки хэш уже в виде параметра. Возможно где-то дальше он еще преобразовывается, но я найти не смог =(

Ранг: 122.8 (ветеран)
Статус: Участник

Создано: 13 декабря 2010 17:34 New!
Цитата · Личное сообщение · #24

А точно ли хэш генерится прогой? Не возвращает ли его сервер, после успешной авторизации?

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

Создано: 13 декабря 2010 18:05 · Поправил: Tyra New!
Цитата · Личное сообщение · #25

Ultras пишет:
Не возвращает ли его сервер, после успешной авторизации?

Очень Похоже на SSL connect !
Этот ХЭШ в Реесте не Лежит ?
Гденить тут SOFTWARE\GGS\GNA

+
Сюда Посмотри
GGS.GNA.Common.Settings
Load

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

Создано: 25 декабря 2010 12:13 New!
Цитата · Личное сообщение · #26

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

• Better decompilation, including iterator block (yield) support, and improved .NET 4.0 support.
• Tabbed decompilation.
• The ability to decompile and explore code in referenced assemblies directly in Visual Studio.

There are also numerous bug fixes and smaller improvements.

System requirements are still pretty modest, although you will need .NET 3.5 or later to run this new version of Reflector. Other than that, Windows XP or later, 128 MB of RAM (although we’d recommend more), and 16 MB free hard disk space, is where it’s at.


качать с офсайта - справа
reflector.red-gate.com/download.aspx

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


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

Создано: 27 декабря 2010 10:25 New!
Цитата · Личное сообщение · #27

для редактирования mixed-mode сборок есть что-нибудь более-менее внятное, кроме hex-едита ручками?

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

Создано: 27 декабря 2010 11:14 New!
Цитата · Личное сообщение · #28

Av0id
хочу огорчить вас, но похоже нету (по крайней мере я такого не встречал)
дело в том что Mono.Cecil не поддерЖивает mixed mode........

остается один девайс - прямые руки


Ранг: 127.3 (ветеран)
Статус: Участник

Создано: 27 декабря 2010 13:11 New!
Цитата · Личное сообщение · #29

Av0id
CFF Explorer умеет нопить)

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

Создано: 1 января 2011 20:50 New!
Цитата · Личное сообщение · #30

zeppe1in
глянул сегодня в CFF'е - так и не нашел как IL кодес нопить там
Разве CFF умеет декомилить IL? он (нас. я знаю) хорошо парсит заголовки и метаданные дот Нета
мож просветите?
а то в хюве лазить напрягает

Ранг: 189.9 (ветеран)
Статус: Участник

Создано: 1 января 2011 23:27 New!
Цитата · Личное сообщение · #31

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

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

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