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

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

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

лечение программы под .net
  #1  
Старый 15.09.2009, 09:57
lis84
Познающий
Регистрация: 28.04.2009
Сообщений: 61
Провел на форуме:
103259

Репутация: 37
По умолчанию лечение программы под .net

Здравствуйте.

Решил тут на днях тряхнуть стариной, и зарегать на себя небольшую программку.
http://botva.onlinebots.net/

Программка триальная, на 80 запусков, и раз в 2 часа завершает работу.

Метод защиты - серийный номер, который генерится по аппаратному номеру привязанному к машине.

Вобщем то ничего сложного. Покопавшись в отладчике убедил программу что введённая мной белиберда это и есть серийный номер .

Но возникла вторая проблема. Теперь программа ломится на сайт разработчика http://botva.onlinebots.net/checkregistrationcode.php и скидывает ему через post 2 параметра, ключ и email (в программе который вводится)

Прошу помощи. Подскажите на какую api функцию повешать бряк, чтобы он сработал в момент передачи/получения ответа.
Нашёл в памяти адрес строки с адресом (извините за тафталогию), пробовал бряк на чтение с памяти, но он не срабатывает (впрочем он у меня почему то никогда не срабатывал)

Сама программа написанна на c#. Строки с адресом в экзешнике нет, скорее всего она как то кодирована. (чтобы тупо подменить адрес на свой).

В дисшарпе нашол интересную функцию
Скорее всего она и есть искомая весч, но ничего в ней не могу найти, за что зацепиться отладчиком.

Может кто нибудь подскажет как справляться с такими защитами?
Код:
               private string Method2_5(bool p1, bool p2, bool p3)
        {
            string s2;

            int i = 0;
            string s1 = System.String.Empty;
            try
            {
                System.Net.HttpWebRequest httpWebRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(Root.Class8.Method8_1(847480816) + Field2_139 + Field2_140 + Root.Class8.Method8_1(847481588));
                if (Field2_117)
                {
                    if (Field2_116)
                    {
                        System.Net.ICredentials icredentials = new System.Net.NetworkCredential(Field2_250, Field2_249);
                        httpWebRequest.Proxy = new System.Net.WebProxy(Field2_248 + Root.Class8.Method8_1(847489944) + Field2_90.ToString(), true, null, icredentials);
                    }
                    else
                    {
                        httpWebRequest.Proxy = new System.Net.WebProxy(Field2_248, Field2_90);
                    }
                }
                else
                {
                    httpWebRequest.Proxy = null;
                }
                httpWebRequest.Timeout = 30000;
                httpWebRequest.ServicePoint.Expect100Continue = false;
                httpWebRequest.AllowAutoRedirect = false;
                httpWebRequest.Accept = Root.Class8.Method8_1(847480721);
                httpWebRequest.Referer = Root.Class8.Method8_1(847480816) + Field2_139 + Field2_140 + Root.Class8.Method8_1(847481588);
                httpWebRequest.Headers.Add(Root.Class8.Method8_1(847480667), Root.Class8.Method8_1(847480693));
                httpWebRequest.Headers.Add(Root.Class8.Method8_1(847480599), Root.Class8.Method8_1(847480609));
                httpWebRequest.Headers.Add(Root.Class8.Method8_1(847480637), Root.Class8.Method8_1(847480520));
                httpWebRequest.Headers.Add(Root.Class8.Method8_1(847480561), Root.Class8.Method8_1(847480448));
                httpWebRequest.UserAgent = Field2_251;
                httpWebRequest.KeepAlive = true;
                httpWebRequest.Headers.Add(Root.Class8.Method8_1(847480984), Field2_162);
                System.Net.HttpWebResponse httpWebResponse = (System.Net.HttpWebResponse)httpWebRequest.GetResponse();
                System.IO.StreamReader streamReader = new System.IO.StreamReader(httpWebResponse.GetResponseStream(), System.Text.Encoding.GetEncoding(1251));
                s1 = streamReader.ReadToEnd();
                httpWebResponse.Close();
            }
            catch (System.Exception e)
            {
                Root.Class2.Class16 class16 = new Root.Class2.Class16();
                class16.Field16_1 = e;
                class16.Field16_3 = this;
                Field2_281 = System.Convert.ToInt32(Field2_53.Value * (1000M));
                class16.Field16_2 = (double)Field2_281;
                class16.Field16_2 /= 1000.0;
                Invoke(new System.Windows.Forms.MethodInvoker(class16.Method16_1));
                Invoke(new System.Windows.Forms.MethodInvoker(class16.Method16_2));
                return Root.Class8.Method8_1(847489664);
            }
            if (s1.IndexOf(Root.Class8.Method8_1(847482847)) > 0)
            {
                if (p1)
                {
                    Field2_190 = System.String.Empty;
                    while (s1[s1.IndexOf(Root.Class8.Method8_1(847482858)) + 16 + i] != 10)
                    {
                        Field2_190 = System.String.Concat(Field2_190, s1[s1.IndexOf(Root.Class8.Method8_1(847482858)) + 16 + i]);
                        i++;
                    }
                    Field2_190 = Field2_190.Replace(Root.Class8.Method8_1(847482755), System.String.Empty);
                }
                i = 0;
                if (p3)
                {
                    Field2_196 = System.String.Empty;
                    while (s1[s1.IndexOf(Root.Class8.Method8_1(847482763)) + 10 + i] != 32)
                    {
                        Field2_196 = System.String.Concat(Field2_196, s1[s1.IndexOf(Root.Class8.Method8_1(847482763)) + 10 + i]);
                        i++;
                    }
                }
                i = 0;
                if (p2)
                {
                    Field2_167 = System.String.Empty;
                    while (s1[s1.IndexOf(Root.Class8.Method8_1(847482784)) + 51 + i] != 60)
                    {
                        Field2_167 = System.String.Concat(Field2_167, s1[s1.IndexOf(Root.Class8.Method8_1(847482784)) + 51 + i]);
                        i++;
                    }
                    Field2_168 = System.String.Empty;
                    i = 0;
                    s1 = s1.Remove(0, s1.IndexOf(Root.Class8.Method8_1(847482784)) + 51 + i);
                    while (s1[s1.IndexOf(Root.Class8.Method8_1(847482784)) + 51 + i] != 60)
                    {
                        Field2_168 = System.String.Concat(Field2_168, s1[s1.IndexOf(Root.Class8.Method8_1(847482784)) + 51 + i]);
                        i++;
                    }
                }
                return Root.Class8.Method8_1(847481052);
            }
            return Root.Class8.Method8_1(847503990);
        }
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Хакер и закон! SladerNon Болталка 17 12.11.2009 09:42
Исследователь выпускает утилиту для сокрытия вредоносных программ в .Net --StraNger-- Мировые новости 0 21.04.2009 05:42
Хостинги под всё! »Atom1c« ПО для Web разработчика 29 10.02.2009 17:56
Установка Windoze глазами линуксоида (100% факты) nerezus Болталка 47 16.10.2005 15:06



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


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




ANTICHAT.XYZ