Сейчас на форуме: -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]



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

Создано: 07 декабря 2010 09:56
· Личное сообщение · #2

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

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

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

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

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

Создано: 07 декабря 2010 17:58
· Личное сообщение · #3

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

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

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

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

Создано: 08 декабря 2010 22:30
· Личное сообщение · #4

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

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

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

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

Создано: 09 декабря 2010 02:27
· Личное сообщение · #5

Kaimi пишет:
Это пробовали?http://forum.tuts4you.com/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 (ветеран), 334thx
Активность: 0.30
Статус: Участник

Создано: 09 декабря 2010 03:13
· Личное сообщение · #6

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

d567_08.12.2010_CRACKLAB.rU.tgz - Fixing Eziriz .Net Reactor 4.0.zip



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

Создано: 09 декабря 2010 17:07
· Личное сообщение · #7

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



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

Создано: 13 декабря 2010 14:25 · Поправил: s0l
· Личное сообщение · #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 (ветеран), 5thx
Активность: 0.020
Статус: Участник
Капрал

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

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



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

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

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

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



Ранг: 156.1 (ветеран), 5thx
Активность: 0.020
Статус: Участник
Капрал

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

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



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

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

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



Ранг: 156.1 (ветеран), 5thx
Активность: 0.020
Статус: Участник
Капрал

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

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

aa98_13.12.2010_CRACKLAB.rU.tgz - Debug.rar



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

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

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



Ранг: 156.1 (ветеран), 5thx
Активность: 0.020
Статус: Участник
Капрал

Создано: 13 декабря 2010 15:10 · Поправил: freeExec
· Личное сообщение · #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 (постоянный), 43thx
Активность: 0.070
Статус: Участник

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

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

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



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

Создано: 13 декабря 2010 15:45 · Поправил: s0l
· Личное сообщение · #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-???. Щас буду пробовать искать экспоненты...



Ранг: 123.0 (ветеран), 10thx
Активность: 0.060
Статус: Участник

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

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

-----
.[ rE! p0w4 ].




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

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

Ultras
GameNet Launcher
rghost.ru/3591907



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

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

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

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

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



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

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

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

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

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



Ранг: 123.0 (ветеран), 10thx
Активность: 0.060
Статус: Участник

Создано: 13 декабря 2010 16:58 · Поправил: Ultras
· Личное сообщение · #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 хэш от пароля. Ничего лишнего не видно...

-----
.[ rE! p0w4 ].




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

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

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

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

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



Ранг: 123.0 (ветеран), 10thx
Активность: 0.060
Статус: Участник

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

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

-----
.[ rE! p0w4 ].




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

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

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

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

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



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

Создано: 25 декабря 2010 12:13
· Личное сообщение · #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 (!), 39thx
Активность: 0.280
Статус: Участник

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

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



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

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

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

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




Ранг: 127.3 (ветеран), 44thx
Активность: 0.090
Статус: Участник

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

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

-----
zzz




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

Создано: 01 января 2011 20:50
· Личное сообщение · #30

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



Ранг: 189.9 (ветеран), 334thx
Активность: 0.30
Статус: Участник

Создано: 01 января 2011 23:27
· Личное сообщение · #31

sendersu находится в менюшке Quick Disassembler


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