Сейчас на форуме: asfa, _MBK_, Adler (+8 невидимых)

 eXeL@B —› Вопросы новичков —› реверс l2divine (используя brain.ini и hand.dll)
<< . 1 . 2 .
Посл.ответ Сообщение

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

Создано: 02 февраля 2013 18:09 · Поправил: rastHEX
· Личное сообщение · #1

Попробую начать 3ю тему - надеюсь не забанят
Итак какашки брошеные мне заставили меня взять на вооружение brain.ini и hand.dll
При помощи них выяснилось следующее

Защита
[!] dotNet Reactor v3.3 - v3.9 protected !
Microsoft SLPS --> Link <--

Используя NETUnpack получит 5 файлов
Unpacked_1
Unpacked_2
Unpacked_3.dll
Unpacked_4.dll
Unpacked_5.dll

просканировав их ProtectionId на Unpacked_5.dll наткнулся на [!] dotFuscator detected !
это и её размер в 2.2мб натолкнул на мысль что это и есть программа а остальное - мусор упаковщика
(к стати не подскажите - так ли оно на самом деле? )
Затем использовал Kurapica DotNET DeObfuscator в результате работы которого получил длл которая открылась в Рефлекторе.

схема работы бота



На данный момент задача в раскриптовке исходящего и ответного запросов.

Обновление ссылок (результаты работы)
--> линк на самого бота <--
b0e0_02.02.2013_EXELAB.rU.tgz - Unpacked_5-cleaned (сам распакованный exe)
39fd_02.02.2013_EXELAB.rU.tgz - 2dll.rar Unpacked_3 и Unpacked_4

запросы словленые снифером (Base64binarity)
исходящий
Code:
  1. http://www.l2divine.com/ws/gateway.jsp?wsid=21&h=AQCMYXTEPOFeJfaADxNjl9bJFsR23XGMVe0vwRlPz98NK3GkJf8ZUf%2fdrtmzWKhNFlYQBLjRc9fTdKTOvX3eqfWB4IdevFQDjRjiJFNj5wfXUEjsczl8IjVR2hgcVlTMWJiSbgIkuqHq47Jr1h3so0ljmyiVhMO8AoQJNyXIUsr15Llj6MAtm2in9EivDx8dCEJbLHx%2fqU1nU26g5iibAwi%2b9xhTsDqWAZR2uM6WIWX6W6kd3cmbS6EkFIQZddLuGZED58JrKvYiXFqmTuqOhk8rQZ6Lo8KVcPmxuedqDmdZW5crA1oGgf6weeqqIdqCgcQuUPzjX0I1H55L0IpWZmo%3d


входящий
Code:
  1. AWpDKbfQFtVOWmKMri45eHwzT1Xoa+Z3v9wFCU9/Gui6phbAIl48FqMvqtWSZifnnHpoh6BXWrxf\n
  2. Xu1H1t2DGLjg6UEG9oEeW4vWTkx0z1Qt1rMywpbVqES6mVbuQtWHniG09b/AyBp0eIs19gSl9G/q\n
  3. q0SDobWHGwvfKJBe5mVrYgcUtV5bwDWXF+ddF5fl5pXHrTu7BvPTecxNhLw4QTWhrWkvGmEaKDyi\n
  4. 5AQV+pvusxx/8faINwFqAVSxvxfEcAENZnYO1jVR5jNehhJrGF15XlnsBFimUnTjOYRppRUTl8ug\n
  5. INOMnPCcD5daqHNip4ASw7NUpa43cqGN6aZLXmVpzFcAqIfEjuOGeI0p2qQW01spmrOjLKaAQQX4\n
  6. obAzrsCCVn7nbo/IxmX8xfEXfKhcWHp1snlw8opfMBfGzPFl0QJBokcj+FlogVGcV4HbtAsGNwGF\n
  7. +3XY41MAz6XHCF2wtKtubknnpVl96y8/HKDbnd1ykSPCssaW3jgq26jOzQ==\r\n




Ранг: 0.6 (гость), 1thx
Активность: 0=0
Статус: Участник

Создано: 04 февраля 2013 19:21
· Личное сообщение · #2

Medsft у тебя не верные суждения. Смотри как работает:


1. L2divine бот пытается авторизироватся на сервери линейки. Сервер линийки любой.
2. Сервер линейки шлет паблик ключ RSA и еще другую информацию, не будем углубляться в детали.
3. L2divine бот берет Логин, пароль и RSA ключ и еще может какую фигню, шифрует чемто своим и шлет на свой сервер.
4. L2divine сервер смотрит проплачен ли доступ для этого логина. Если проплачен шифрует логин пароль с помощью этого RSA ключа + разрешение что можна пользоватся и все это шифруется чемто своим сверху.
5. L2divine бот шлет полученые данные линейдж серверу. И проходит авторизацию. Дальше L2divine сервер в работе бота никак не участвует. Вся логика работы кроме маленькой части находится в нем же. И вообще сервер линейки никакого отношения к этому боту не имеет.

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



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

Создано: 04 февраля 2013 19:43
· Личное сообщение · #3

heXelium
вот я себе схожую структуру представлял. недумаю что у них договоренность со всеми серверами линейки




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 04 февраля 2013 19:48 · Поправил: reversecode
· Личное сообщение · #4

rastHEX
смысл всего этого? на халяву играть? делом бы лучше занялись, вагоны стоят не разгружены.. а им бы все играть игроманы етить



Ранг: 330.4 (мудрец), 334thx
Активность: 0.160.17
Статус: Участник
ILSpector Team

Создано: 04 февраля 2013 19:53 · Поправил: Medsft
· Личное сообщение · #5

если это так тогда у автора темы должны быть пакеты для обоих серверов
1. Если количество пакетов для обоих серверов примерно одинаково то у вас не возникаетвозникает

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

я видимо не про того бота..... я про бота для оффициальной линейки)))
Reversecode а что тут такого бот тоже прога .....)))



Ранг: 0.6 (гость), 1thx
Активность: 0=0
Статус: Участник

Создано: 04 февраля 2013 19:59
· Личное сообщение · #6

Дык да я и не играю, просто сама идея защиты мне понравилась... И вообще не моя тема....



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

Создано: 04 февраля 2013 20:09
· Личное сообщение · #7

Medsft
Есть оба перехваченных пакета(смотри посты мои на первой странице) и содержание в них явно разное.



Ранг: 0.6 (гость), 1thx
Активность: 0=0
Статус: Участник

Создано: 04 февраля 2013 21:21
· Личное сообщение · #8

rastHEX пишет:
MedsftЕсть оба перехваченных пакета(смотри посты мои на первой странице) и содержание в них явно разное.


У тебя 3, 4 пакеты что нарисованые на моей схеме, естественно они разные если ты внимательно читал. Они тебе ничего не дадут не зная чем зашифровано.

Medsft насколько я понял имел виду пакеты и от сервера ла2. Но нет они тебе не нужны.
Как я уже описал выше я вижу 2 способа решения отлома защиты.



Ранг: 330.4 (мудрец), 334thx
Активность: 0.160.17
Статус: Участник
ILSpector Team

Создано: 04 февраля 2013 21:39
· Личное сообщение · #9

Нет это принципиально: они есть или нет. Это к вопросу схемы предложенной hexelium



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

Создано: 04 февраля 2013 23:45 · Поправил: rastHEX
· Личное сообщение · #10

Для нала как понимаю - загрузить _SVM_BUF.DAT в запущенную Permutation_1cc06_2.0.dll и отлаживать построчно анализируя код. я деобвусцировал Permutation_1cc06_2.0.dll в ней много своих методов реализовано, мне бы код из _SVM_BUF.DAT привести в понятный вид - есть идеи? а потом просто беру и нахожу нужные методы в теле Permutation_1cc06_2.0.dll и составляю алгоритм работы.

Medsft
Проверил снифером - прога общается со своим сервером только на этапе лог-ина, дальше запросы напрямую на сервер линейки.



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

Создано: 05 февраля 2013 03:10 · Поправил: rastHEX
· Личное сообщение · #11

сделал апдейт первого поста темы.
Medsft и heXelium - отдельное спасибо



Ранг: 330.4 (мудрец), 334thx
Активность: 0.160.17
Статус: Участник
ILSpector Team

Создано: 06 февраля 2013 18:41
· Личное сообщение · #12

rastHEX пишет:
Используя NETUnpack получит 5 файлов
Умник(( а дампить с использованием инструментов расположенных в шапке "Опятт Net" не пробовал? ))))) Возьми оттуда DotNet Dumper-> стартани свой бот-> стартани Dumper-> выбери процесс с именем l2divine-> нажми правую кнопку мыши-> выбери Dump Ful ->кури!!!!!!! -> а потом гляди в папку с ботом каталог Dumps там много чего интересного для себя найдешь



Ранг: 330.4 (мудрец), 334thx
Активность: 0.160.17
Статус: Участник
ILSpector Team

Создано: 06 февраля 2013 19:16
· Личное сообщение · #13

Более того он даже запускается http://rghost.ru/43598045 (ложить в папку Dumps)



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

Создано: 07 февраля 2013 01:57
· Личное сообщение · #14

снимал дампером для олии - неработал. попробую так Medsft спасибо



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

Создано: 11 февраля 2013 21:31 · Поправил: rastHEX
· Личное сообщение · #15

Medsft Dump all только есть. сделал но ехе не запускается --> Link <--

твой ехе матюкается эрором и запускается, однако при нажатии пункта меню нет никаких действий.
текст
Code:
  1. Подробная информация об использовании оперативной 
  2. (JIT) отладки вместо данного диалогового 
  3. окна содержится в конце этого сообщения.
  4.  
  5. ************** Текст исключения **************
  6. Microsoft1Licensing1Runtime210BA: Failed to load permutation assembly for runtime v2.0.50727 ---> System.IO.FileLoadException: Failed to load permutation assembly Microsoft.Licensing.Permutation_1cc06_2.0, Version=1.0.0.1, Culture=neutral, PublicKeyToken=5b7832056d5afd0b ---> System.IO.FileNotFoundException: Невозможно загрузить файл или сборку "Microsoft.Licensing.Permutation_1cc06_2.0, Version=1.0.0.1, Culture=neutral, PublicKeyToken=5b7832056d5afd0b" или один из зависимых от них компонентов. Не удается найти указанный файл.
  7. Имя файла: "Microsoft.Licensing.Permutation_1cc06_2.0, Version=1.0.0.1, Culture=neutral, PublicKeyToken=5b7832056d5afd0b"
  8.    в System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
  9.    в System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
  10.    в System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
  11.    в System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
  12.    в System.Reflection.Assembly.Load(String assemblyString)
  13.    в Microsoft.Licensing.Utils.AssemblyUtil.LoadAssemblyFromLocalPath(String sFullOrShortAssemblyName)
  14.    в Microsoft.Licensing.Utils.AssemblyUtil.GetAssembly(String sFullOrShortAssemblyName)
  15.    в Microsoft1Licensing1Runtime210DB.A(String A_0, Boolean A_1)
  16.  
  17. Предупреждение: регистрация привязки сборок выключена.
  18. Чтобы включить регистрацию ошибок привязки сборок, установите значение параметра реестра [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) в 1.
  19. Примечание. Регистрация ошибок привязки сборок может привести к некоторому снижению производительности.
  20. Чтобы отключить эту функцию, удалите параметр реестра [HKLM\Software\Microsoft\Fusion!EnableLog].
  21.  
  22.    в Microsoft1Licensing1Runtime210DB.A(Exception A_0, String A_1)
  23.    в Microsoft1Licensing1Runtime210DB.A(String A_0, Boolean A_1)
  24.    в Microsoft1Licensing1Runtime210DB.D()
  25.    в Microsoft1Licensing1Runtime210DB.E()
  26.    --- Конец трассировки внутреннего стека исключений ---
  27.    в Microsoft1Licensing1Runtime210DB.E()
  28.    в Microsoft1Licensing1Runtime210DB.F()
  29.    в Microsoft.Licensing.SLMRuntime.get_SVM()
  30.    в Microsoft.Licensing.SLMRuntime.InternalSVMExecMethod(Assembly declaringAssembly, String SVMMethodId, ISLMVirtualMachineParams paramsReader)
  31.    в Microsoft.Licensing.SLMRuntime.SVMExecMethod(Object obj, String SVMMethodId, Object[] args)
  32.    в eval_b7.eval_w(Object sender, EventArgs e)
  33.    в System.Windows.Forms.Form.OnLoad(EventArgs e)
  34.    в System.Windows.Forms.Form.OnCreateControl()
  35.    в System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
  36.    в System.Windows.Forms.Control.CreateControl()
  37.    в System.Windows.Forms.Control.WmShowWindow(Message& m)
  38.    в System.Windows.Forms.Control.WndProc(Message& m)
  39.    в System.Windows.Forms.ScrollableControl.WndProc(Message& m)
  40.    в System.Windows.Forms.ContainerControl.WndProc(Message& m)
  41.    в System.Windows.Forms.Form.WmShowWindow(Message& m)
  42.    в System.Windows.Forms.Form.WndProc(Message& m)
  43.    в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
  44.    в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
  45.    в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
  46.  
  47.  
  48. ************** Загруженные сборки **************
  49. mscorlib
  50.     Версия сборки: 2.0.0.0
  51.     Версия Win32: 2.0.50727.5466 (Win7SP1GDR.050727-5400)
  52.     CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
  53. ----------------------------------------
  54. L2Divine
  55.     Версия сборки: 10.0.4769.32363
  56.     Версия Win32: 10.0.*
  57.     CodeBase: file:///C:/Users/МаксимТаня/Desktop/L2Divine/Dumps/l2Divine_fix-cleaned.exe
  58. ----------------------------------------
  59. System.Windows.Forms
  60.     Версия сборки: 2.0.0.0
  61.     Версия Win32: 2.0.50727.5467 (Win7SP1GDR.050727-5400)
  62.     CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
  63. ----------------------------------------
  64. System
  65.     Версия сборки: 2.0.0.0
  66.     Версия Win32: 2.0.50727.5467 (Win7SP1GDR.050727-5400)
  67.     CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
  68. ----------------------------------------
  69. System.Drawing
  70.     Версия сборки: 2.0.0.0
  71.     Версия Win32: 2.0.50727.5467 (Win7SP1GDR.050727-5400)
  72.     CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
  73. ----------------------------------------
  74. System.Windows.Forms.resources
  75.     Версия сборки: 2.0.0.0
  76.     Версия Win32: 2.0.50727.5420 (Win7SP1.050727-5400)
  77.     CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_ru_b77a5c561934e089/System.Windows.Forms.resources.dll
  78. ----------------------------------------
  79. Microsoft.Licensing.Runtime2.0
  80.     Версия сборки: 1.0.0.1
  81.     Версия Win32: 2.0.1314.0
  82.     CodeBase: file:///C:/Users/МаксимТаня/Desktop/L2Divine/Dumps/Microsoft.Licensing.Runtime2.0.DLL
  83. ----------------------------------------
  84. Microsoft.Licensing.Utils2.0
  85.     Версия сборки: 1.0.0.1
  86.     Версия Win32: 2.0.1314.0
  87.     CodeBase: file:///C:/Users/МаксимТаня/Desktop/L2Divine/Dumps/Microsoft.Licensing.Utils2.0.DLL
  88. ----------------------------------------
  89. System.Xml
  90.     Версия сборки: 2.0.0.0
  91.     Версия Win32: 2.0.50727.5420 (Win7SP1.050727-5400)
  92.     CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
  93. ----------------------------------------
  94. mscorlib.resources
  95.     Версия сборки: 2.0.0.0
  96.     Версия Win32: 2.0.50727.5466 (Win7SP1GDR.050727-5400)
  97.     CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
  98. ----------------------------------------
  99.  
  100. ************** Оперативная отладка (JIT) **************
  101. Для подключения оперативной (JIT) отладки файл .config данного
  102. приложения или компьютера (machine.config) должен иметь
  103. значение jitDebugging, установленное в секции system.windows.forms.
  104. Приложение также должно быть скомпилировано с включенной
  105. отладкой.
  106.  
  107. Например:
  108.  
  109. <configuration>
  110.     <system.windows.forms jitDebugging="true" />
  111. </configuration>
  112.  
  113. При включенной отладке JIT любое необрабатываемое исключение
  114. пересылается отладчику JIT, зарегистрированному на данном компьютере,
  115. вместо того чтобы обрабатываться данным диалоговым окном.
  116.  
  117.  




Ранг: 330.4 (мудрец), 334thx
Активность: 0.160.17
Статус: Участник
ILSpector Team

Создано: 12 февраля 2013 12:51
· Личное сообщение · #16

Из сообщения же видно что длл ку подгрузить не может.
Мой тебе совет:Засовывай ехешку в reflector и filedisassemblerom делай сырки и вперед это мясо в студию. Пару тысяч ошибок исправишь (из них 1000 за 15 мин) остальные (пишешь в какой нибудь утилите например где есть групповая замена заменить во всех cs`никах имена методов первую букву на заглавную, вернее это в начале) и будет тебе счастье
Да и еще strong name снеси чем нибудь.
Кстати ехешник можешь получить сам: l2divine.exe из директории Dumps травишь на него universal fixer (исправляем заголовок) затем de4dot (деобсфуркация) затем в SAE его же deobfuctacor с опциями string only и у тебя на руках почти сломатый бот )))))



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

Создано: 12 февраля 2013 18:37 · Поправил: rastHEX
· Личное сообщение · #17

Medsft спасибо. пробую

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



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

Создано: 19 февраля 2013 00:01
· Личное сообщение · #18

4й день изучаю код, пробовал дамп и в рефлектор и в иду и в дасм подсовывать - немогу найти код отвечающий за крипт\декрипт запроса. комьюнити прошу помощи или советов.



Ранг: 330.4 (мудрец), 334thx
Активность: 0.160.17
Статус: Участник
ILSpector Team

Создано: 19 февраля 2013 18:21 · Поправил: Medsft
· Личное сообщение · #19

Ну тебя ratsHEX. Алгоритм твоих дальнейших действий разгадан.Следующим твоим вопросом будет:
N-й день изучаю код, пробовал (все что придет тебе на ум из программ имеющих отношение к реверсингу) - немогу (перекомпилить проект или метод) комьюнити прошу помощи.
Сказал бы проще - ребята сломайте мне бота очень на халяву хочется стать ТОР-игроком. Только вряд-ли это получится на хяляву.
Согласись ты ведь даже если я пришлю тебе исходный код в формате MVS2010 ты его даже скомпилить не сможешь.
Почему я делаю такой вывод: в твоих последних репостах нет ни слова о чем я написал чуть выше, ты сырки даже в руки не брал.
И вообще, Модератор закрой тему pls.

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

Ранг: 0.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 20 февраля 2013 03:14
· Личное сообщение · #20

Medsft
Code:
  1. http://www.exelab.ru/f/index.php?action=vthread&forum=3&topic=20428#10





Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 20 февраля 2013 12:00
· Личное сообщение · #21

От модератора: не зря я закрывал предыдущие темы, знал что закончится попрошайничеством, больше никаких ботов не потерплю.

-----
[nice coder and reverser]



<< . 1 . 2 .
 eXeL@B —› Вопросы новичков —› реверс l2divine (используя brain.ini и hand.dll)
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати