Взлом Bimsbot 3.07a
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Взлом Bimsbot 3.07a - 2012-03-08 23:24:35.116666
|
|
|
Gnumoder
Сообщений: 18
Оценки: 0
Присоединился: 2012-03-07 23:42:12.686666
|
Всем доброго времени суток. Начну, пожалуй, сразу с проблемы: Есть такая программа-бот для онлайновой игрулины WoW (ссылка). Мне, естественно, хочется пользоваться ей и не платить (ну жадный я). Способов я перепробовал кучу, но найти механизм активации так и не смог. Использовал следущее - IDA Pro Advanced (32-bit), HDasm, Resource Hacker, winhexru, Reg\Filemon, ArtMoney и еще несколько, которые уже удалил с харда и позабыл о их существовании. Пытался даже перелопатить механизм работы кейгена от (да капец, я прослезился) старой версии, написанием которого занимался разработчик(и) этого самого бота. Но и там фига с маслом. В IDA есть структура главного исполняемого файла бота (в виде дерева). Я так и не сообразил, которая из процедур вызывает проверку активации программы (по-идее она должна быть в числе первых, искал по адресу в HEXe тоже ноль). Итак, требуется: 1. Узнать, где я пропустил нужный алгоритм. 2. Помощь вроде "тыка носом" или толковое объяснение, как правильно искать. Если еще что-то нужно по-подробнее описать, говорите. А то уже 3 день копаюсь, хрень бессвязную несу и по-полчаса залипаю в монитор. P.S. Кстати, бот по тестовому заходу показал себя с лучшей стороны, алгоритмы если не совершенные, то весьма и весьма близки к ним. Может даже на его основе можно и для других игр боты написать с незначительными изменениями кода. Единственный обнаруженный мною минус - это необходимость за него платить =) Автору несомненный плюс за программу. Главное, что бы это за рекламу не посчитали =)
|
|
|
RE: Взлом Bimsbot 3.07a - 2012-03-09 13:45:22.816666
|
|
|
Flint_ta
Сообщений: 3720
Оценки: 1120
Присоединился: 2007-01-26 15:49:18.323333
|
Это .net сборка, упакованая DotNet Reactor v4.X. Мало у кого будет желание в этом ковыряться.
|
|
|
RE: Взлом Bimsbot 3.07a - 2012-03-09 16:51:51.436666
|
|
|
Gnumoder
Сообщений: 18
Оценки: 0
Присоединился: 2012-03-07 23:42:12.686666
|
UPD
|
|
|
RE: Взлом Bimsbot 3.07a - 2012-03-10 15:33:26.050000
|
|
|
Gnumoder
Сообщений: 18
Оценки: 0
Присоединился: 2012-03-07 23:42:12.686666
|
UPD
|
|
|
RE: Взлом Bimsbot 3.07a - 2012-03-10 15:37:49.746666
|
|
|
Flint_ta
Сообщений: 3720
Оценки: 1120
Присоединился: 2007-01-26 15:49:18.323333
|
Тут спросите http://exelab.ru/f/index.php?action=vthread&forum=1&topic=16650&page=0
|
|
|
RE: Взлом Bimsbot 3.07a - 2012-03-13 14:08:06.443333
|
|
|
Gnumoder
Сообщений: 18
Оценки: 0
Присоединился: 2012-03-07 23:42:12.686666
|
UPD
|
|
|
RE: Взлом Bimsbot 3.07a - 2012-03-14 10:19:19.376666
|
|
|
Gnumoder
Сообщений: 18
Оценки: 0
Присоединился: 2012-03-07 23:42:12.686666
|
UPD Файл с трудом деобфусцирован, распакован и готов к переборке… нашел форму вызова окна активации программы. Теперь проблем - где лежит база ключей) private void button_1_Click(object sender, EventArgs e)
{GForm4 gForm = new GForm4();
gForm.ShowDialog();
Application.Exit();}
protected override void Dispose(bool disposing)
{if (disposing && this.icontainer_0 != null)
{this.icontainer_0.Dispose();}
по этой кнопке происходит вызов вот этого поля public GForm4()
{
this.InitializeComponent();
base.Icon = Class6.smethod_7();
}
private void button1_Click(object sender, EventArgs e)
{
Class0.smethod_4(this.textBox_0.Text + "\r\n" + this.method_0());
MessageBox.Show("Коды сохранены, перезапустите бота");
base.Close();
}
public string method_0()
{
WebClient webClient = new WebClient();
string result;
try
{
result = webClient.DownloadString("http://www.bimsbot.ru/fishbot43x.php?id=" + Convert.ToString(Class4.ulong_1) + "&kod=" + this.textBox_0.Text);
}
catch
{
result = "765546318";
}
return result;
}
protected override void Dispose(bool disposing)
{
if (disposing && this.icontainer_0 != null)
{
this.icontainer_0.Dispose();
}
base.Dispose(disposing);
}
private void InitializeComponent()
{
this.label1 = new Label();
this.textBox_0 = new TextBox();
this.button1 = new Button();
base.SuspendLayout();
this.label1.AutoSize = true;
this.label1.Location = new Point(12, 9);
this.label1.Name = "label1";
this.label1.Size = new Size(96, 13);
this.label1.TabIndex = 0;
this.label1.Text = "Код регистрации:";
this.textBox_0.Location = new Point(114, 6);
this.textBox_0.Name = "Код";
this.textBox_0.Size = new Size(136, 20);
this.textBox_0.TabIndex = 1;
this.button1.Location = new Point(262, 5);
this.button1.Name = "button1";
this.button1.Size = new Size(88, 21);
this.button1.TabIndex = 2;
this.button1.Text = "Активировать";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new EventHandler(this.button1_Click);
base.AutoScaleDimensions = new SizeF(6f, 13f);
base.AutoScaleMode = AutoScaleMode.Font;
base.ClientSize = new Size(362, 34);
base.Controls.Add(this.button1);
base.Controls.Add(this.textBox_0);
base.Controls.Add(this.label1);
base.Name = "Коды";
this.Text = "Регистрация";
base.ResumeLayout(false);
base.PerformLayout();
}
}
Вызывает подозрение base.Name = "Коды"; Единственное, где её искать… братцы-кролики, на вашу помощь надеюсь сильно8|
|
|
|
RE: Взлом Bimsbot 3.07a - 2012-03-14 13:26:29.560000
|
|
|
Gnumoder
Сообщений: 18
Оценки: 0
Присоединился: 2012-03-07 23:42:12.686666
|
UPD Случайно наткнулся на такую строку MessageBox.Show("Невозможно связаться с сервером бота для проверки кодов. Проверьте, что ничего не блокирует выход бота в интернет и повторите попытку.\r\n\r\nДо появления связи с сервером бот будет работать в триальном режиме."); Но при любых условиях этот бокс не вызывается…. странно. Но, в таком случае, возможен вариант - подставить свой адрес и сделать так, что бы при любом приходящем запросе, отсылалось "да" (или что ему там нужно). Только вот как это сделать - вопросище %)
|
|
|
RE: Взлом Bimsbot 3.07a - 2012-03-14 13:53:59.840000
|
|
|
Flint_ta
Сообщений: 3720
Оценки: 1120
Присоединился: 2007-01-26 15:49:18.323333
|
private void button1_Click(object sender, EventArgs e)
{
Class0.smethod_4(this.textBox_0.Text + "\r\n" + this.method_0());
MessageBox.Show("Коды сохранены, перезапустите бота");
base.Close();
}
По нажатию на кнопку вызывается Class0.smethod_4, а затем сообщение "Коды сохранены, перезапустите бота". Подозреваю что нужная вам функция Class0.smethod_4, посмотрите что происходит внутри нее.
|
|
|
RE: Взлом Bimsbot 3.07a - 2012-03-14 14:04:42.690000
|
|
|
Gnumoder
Сообщений: 18
Оценки: 0
Присоединился: 2012-03-07 23:42:12.686666
|
// Class0
public static void smethod_4(string string_0)
{ using (StreamWriter streamWriter = new StreamWriter("registration.re", false))
{ streamWriter.WriteLine(string_0); }
}
Тут smethod_4 записывает строку, которую ему передали в файл registration.re А передается ему строка, которая состоит из this.textBox_0.Text + то что возвращает this.method_0()
this.textBox_0.Text + "\r\n" + this.method_0());
Стало быть в method_0() происходит проверка
public string method_0()
{
WebClient webClient = new WebClient();
string result;
try
{
result = webClient.DownloadString("http://www.bimsbot.ru/fishbot43x.php?id=" + Convert.ToString(Class4.ulоng_1) + "&kod=" + this.textBox_0.Text);
}
catch
{
result = "765546318";
}
return result;
}
Тут видно что проверка происходит на сервере http://www.bimsbot.ru/fishbot43x.php?id=" + Convert.ToString(Class4.ulоng_1) + "&kod=" + this.textBox_0.Text);
|
|
|
RE: Взлом Bimsbot 3.07a - 2012-03-14 14:16:52.240000
|
|
|
Flint_ta
Сообщений: 3720
Оценки: 1120
Присоединился: 2007-01-26 15:49:18.323333
|
Упс, нечаянно отредактировал ваше сообщение )
|
|
|
RE: Взлом Bimsbot 3.07a - 2012-03-14 14:28:03.243333
|
|
|
Gnumoder
Сообщений: 18
Оценки: 0
Присоединился: 2012-03-07 23:42:12.686666
|
Так-с… если я правильно соображаю, то он САМ генерит код на основе введенных крякозябриков и версии, ибо в this.method_0() (если я там смотрю) записано: // Class0
public static string smethod_0()
{ WebClient webClient = new WebClient();
string address = "http://bimsbot.ru/verfish.txt";
string result;
try
{result = webClient.DownloadString(address);}
catch
{result = "N/A";}
return result;} После скидывает в http://www.bimsbot.ru/fishbot43x.php?id=%22 в виде запроса, после чего получает подтверждение рег\не рег? Но как он это понимает, если с сервера отсылается комбинация чисел? Значит у него все-таки есть верификационная база?
|
|
|
RE: Взлом Bimsbot 3.07a - 2012-03-14 14:36:29.896666
|
|
|
Gnumoder
Сообщений: 18
Оценки: 0
Присоединился: 2012-03-07 23:42:12.686666
|
Я, кстати, на http://fish-bot.at.ua/ временно пересел, там всякой ереси меньше, искать проще, а защита идентичная бимсу.
|
|
|
RE: Взлом Bimsbot 3.07a - 2012-03-14 14:41:09.560000
|
|
|
Flint_ta
Сообщений: 3720
Оценки: 1120
Присоединился: 2007-01-26 15:49:18.323333
|
quote:
Так-с… если я правильно соображаю, то он САМ генерит код на основе введенных крякозябриков и версии, ибо в this.method_0() (если я там смотрю) записано: Это не то quote:
После скидывает в http://www.bimsbot.ru/fishbot43x.php?id=%22 в виде запроса, после чего получает подтверждение рег\не рег? Он получает какой-то результат, вы бы просниффали запросы и ответы, так было бы яснее что уходит на сервер. quote:
Но как он это понимает, если с сервера отсылается комбинация чисел? Значит у него все-таки есть верификационная база? База обычно находится на сервере, и при запуске он скорее всего тоже что-то отправляет на сервер. А значит читает файл registration.re, поищите в коде где к нему еще идет обращение.
|
|
|
RE: Взлом Bimsbot 3.07a - 2012-03-14 15:10:07.653333
|
|
|
Gnumoder
Сообщений: 18
Оценки: 0
Присоединился: 2012-03-07 23:42:12.686666
|
Обращений к registration.re я не нашел, зато нашел кое-что другое: this.ulong_4 += 1uL;
if (this.ulong_4 > this.ulong_2)
{ this.timer_0.Enabled = false;
this.button_2.Text = "Начать";
MessageBox.Show("Триальная версия работает ограниченное количество забросов.\n\nДля снятия ограничения купите ключ и зарегистрируйте бота.", "Триальная версия");
return;
} Интерес вызывает if (this.ulong_4 > this.ulong_2), т.к. он есть везде, где упоминается триал.
|
|
|
RE: Взлом Bimsbot 3.07a - 2012-03-14 15:12:59.410000
|
|
|
Flint_ta
Сообщений: 3720
Оценки: 1120
Присоединился: 2007-01-26 15:49:18.323333
|
Потому что "Триальная версия работает ограниченное количество забросов", this.ulоng_4 скорее всего кол-во запросов.
|
|
|
RE: Взлом Bimsbot 3.07a - 2012-03-14 15:53:08.703333
|
|
|
Gnumoder
Сообщений: 18
Оценки: 0
Присоединился: 2012-03-07 23:42:12.686666
|
Вот нечто, напоминающее лог. Структура запроса-ответа нужна? GET /fishbot43x.php?id=381746400&kod=567567567777777777777777777777777777777777777777777 HTTP/1.1
Host: www.bimsbot.ru
Connection: Keep-Alive
HTTP/1.1 200 OK
Server: nginx/1.1.10
Date: Wed, 14 Mar 2012 11:49:48 GMT
Content-Type: text/html; charset=CP1251
Transfer-Encoding: chunked
Connection: keep-alive
X-Powered-By: PHP/5.2.17
9
954623436
0
|
|
|
RE: Взлом Bimsbot 3.07a - 2012-03-14 16:15:11.756666
|
|
|
Flint_ta
Сообщений: 3720
Оценки: 1120
Присоединился: 2007-01-26 15:49:18.323333
|
quote:
Вот нечто, напоминающее лог. Структура запроса-ответа нужна? Мне нет ) А вы разбирайтесь что там к чему. Еще раз говорю смотрите что делается с файлом registration.re. Из него должны быть прочитаны данные и отправлены на сервер, и где-то рядом будет код отвечающий за решение о зарегистрированности программы.
|
|
|
RE: Взлом Bimsbot 3.07a - 2012-03-14 16:23:13.116666
|
|
|
Gnumoder
Сообщений: 18
Оценки: 0
Присоединился: 2012-03-07 23:42:12.686666
|
Спасибо за помощь)А существуют трассировщики для подобных задач? Ну например функция а вызывает файл б из файла с?
|
|
|
RE: Взлом Bimsbot 3.07a - 2012-03-15 12:47:22.133333
|
|
|
Flint_ta
Сообщений: 3720
Оценки: 1120
Присоединился: 2007-01-26 15:49:18.323333
|
Логи трассировщиков обычно очень большие, а толк в данном случае от него будет сомнительный. ProcMon попробуйте http://download.sysinternals.com/Files/ProcessMonitor.zip А если вы имели ввиду низкоуровневую трассировку, тогда Ababo Code Tracer.
|
|
|
RE: Взлом Bimsbot 3.07a - 2012-03-17 12:58:07.753333
|
|
|
Gnumoder
Сообщений: 18
Оценки: 0
Присоединился: 2012-03-07 23:42:12.686666
|
Без декомпилирования каким-либо способом реально поправки в файл внести? Вот, кстати, код отвечающий за решение о активации программы: public static string smethod_9(string string_0)
{
FileInfo info = new FileInfo(string_0);
if (!info.Exists)
{
return null;
}
string str = string.Empty;
string str2 = string.Empty;
StreamReader reader = System.IO.File.OpenText(string_0);
try
{
Label_0022:
str2 = reader.ReadLine();
if (str2 != null)
{
str2 = str + str2;
goto Label_0022;
}
}
catch
{
}
reader.Close();
return str;
}
Найти-то нашел, теперь проблемы с компиляцией сборки - постоянно выдает кучу ошибок, которые даже при их исправлении появляются. Я сомневаюсь в их существовании… есть методы принудительной компиляции с сохранением всех ссылок и синтаксиса?
|
|
|
RE: Взлом Bimsbot 3.07a - 2012-03-17 14:48:40.780000
|
|
|
Gnumoder
Сообщений: 18
Оценки: 0
Присоединился: 2012-03-07 23:42:12.686666
|
UPD Нашел способ, но только через ассемблер, в котором я практически ничего не понимаю (на то есть причины). Может помочь с этим кто-нибудь?
|
|
|
|
|