ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование_OLD > Реверсинг
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 17.09.2009, 10:53
Kaimi
Reservists Of Antichat - Level 6
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме:
18127311

Репутация: 1676


Отправить сообщение для Kaimi с помощью ICQ
По умолчанию

Открой в иде, посмотри опкоды функций и найди по ним в хекс редакторе.
Вроде был плагин для рефлектора позволяющий редактировать код и сохранять изменения в файл.
 

  #12  
Старый 17.09.2009, 12:12
lis84
Познающий
Регистрация: 28.04.2009
Сообщений: 61
Провел на форуме:
103259

Репутация: 37
По умолчанию

Цитата:
Сообщение от zeppe1in  
lis84
ну да, рефлектором надо. любой деобфускатор заюзать что бы в читаемый вид переименовал все функции. потом тут все строки зашифрованы, если их расшифровать то всё будет как на ладони).
рипнуть функцию которая их расшифровывает не проблемма, но вручную каждую строку смотреть запара хотя я нашол таки место проверки серйника. надо теперь проитись по всем функциям и заменить вызов расшивровщика на саму строку.)
------
открываеш в рефлекторе, F3 и щеш строки и константы "-2048782763" он найдёт одну функцию
а вней
Код:
            if ((this.​  || this.  ) && (this.(this.  , this..Text) !=  .(-2048733781)))
                {
                    return;
                }
это и есть онлайн проверка.
вот декодер строк http://www.sendspace.com/file/lswugk
вставлять цифры без минуса. и должен лежать в папке с ботвой.
Не могу в упор найти эту строку.

Кстати огромное спасибо за то что подсказал рефлекси. Теперь я понимаю что лезть с отладчиком в .net это глупо там всё гораздо проще.

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

  #13  
Старый 17.09.2009, 12:58
zeppe1in
Постоянный
Регистрация: 12.07.2006
Сообщений: 327
Провел на форуме:
1654818

Репутация: 117
По умолчанию

ты в рефлекторе ищеш? просто DisSharp например кривовато декомпилит.
процедуру то находиш? там в поиске предпоследний квадратик нажать надо)
а в самой процедуре уже смотри цифру "-2048733781", что значит active. там идёт вызов процедуры которая отправяет инфу на сервер и проверяется ответ равен ли он слову active.
пс: почему декодер на запускается очень интерестно он хоть говорит чтонибудь?)
 

  #14  
Старый 17.09.2009, 13:14
lis84
Познающий
Регистрация: 28.04.2009
Сообщений: 61
Провел на форуме:
103259

Репутация: 37
По умолчанию

Честно говоря в дисшарпе 3,1,4 код гораздо более читабельный

У меня в рефлекторе такой цифры почему то не находится. Нашёл от обратного

нашёл функцию проверки

Код:
private void (object , EventArgs )
{
    if ((this..Text == string.Empty) || (this..Text == string.Empty))
    {
        MessageBox.Show( .(847473461));
    }
    else if (this. .Items.Count == 0)
    {
        MessageBox.Show( .(847473376));
    }
    else
    {
        this. ();
        try
        {
            this.   = this.  .SelectedItem.ToString().Replace(this.  .SelectedItem.ToString().Split(new char[] { ':' })[0] +  .(847489944), string.Empty).Trim();
        }
        catch (Exception)
        {
            MessageBox.Show( .(847473241));
            return;
        }
        if (!(this.   == string.Empty))
        {
            try
            {
                if (this.())
                {
                    return;
                }
            }
            catch (Exception)
            {
                return;
            }
            try
            {
                if ((this.   || this.  ) && (this.(this.  , this..Text) !=  .(847489656)))
                {
                    return;
                }
            }
            catch (Exception)
            {
                return;
            }
            if ((this.  .SelectedIndex == 0) || (this.  .SelectedIndex == 2))
            {
                this.   =  .(847480486);
            }
Собственно место

Код:
   try
            {
                if ((this.   || this.  ) && (this.(this.  , this..Text) !=  .(847489656)))
                {
                    return;
                }
            }
            catch (Exception)
            {
                return;
            }
Очень похоже на то что ты говоришь но вот незадача (

В виде опкода

L_014c: ldc.i4 847489656
L_0151: call string  ::(int32)
L_0156: call bool [mscorlib]System.String:p_Inequality(string, string)
L_015b: brfalse L_0162
L_0160: leave.s L_0109

При смене перехода L_015b: brfalse L_0162 на противоположный, получаю exception

UPD. Туплю уже просто. Заменял не на противоположный, а на безусловный.

Всё хоткей. теперь подумаю как вырезать стук к серверу вообще. Ибо х.з что придумает автор, может парсить будем мыла халявщиков

Последний раз редактировалось lis84; 18.09.2009 в 11:55..
 

  #15  
Старый 17.09.2009, 14:49
lis84
Познающий
Регистрация: 28.04.2009
Сообщений: 61
Провел на форуме:
103259

Репутация: 37
По умолчанию

Всем подсказывающим огромное спасибо.
Доломал до красоты, с пропуском обращения на сайт авторов вообще.
Решил потестить, а он не работает зараза )) . В смысле к игре подключиться не может.
Как ломанный, так и не ломанный )
Впрочем главное эстетическое удовольствие и то что я теперь знаю с какого бока подходить к .net
 
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ