1. Теперь за форумную активность начисляются биткоины и другие криптоденьги. Подробнее.
    Скрыть объявление
  2. Появилась архивная версия форума arhiv.xaker.name, где собраны темы с 2007 по 2012 год.
    Скрыть объявление

Расшифровка плагинов Google SketchUp (RBS Unscrambling)

Тема в разделе "Статьи, руководства, видео", создана пользователем Dr. MefistO, 10 авг 2012.

  1. Dr. MefistO
    Dr. MefistO Крывіч Глобальный модератор
    Симпатии:
    125
    [​IMG]

    Доброго здравия, товарищи!

    Лирическое отступление​


    В этот раз мне снова досталось интересное задание: взломать платный плагин к известному бесплатному 3D-моделлеру: Google SketchUp (далее GSU). Первым делом я полез в гугл поискать на эту тему что-нибудь. Но меня ожидало разочарование. Борды попадались только англоязычные, да и на тех, акромя фраз "There is no chance to unscramble RBS-file." ничего не было. Поэтому...

    Начало​


    Вообще, простые, бесплатные плагины к GSU представляют из себя обычный Ruby-скрипт, т.е. простой текстовый файл, но с расширением .rb. Платные плагины же, в свою очередь, надо было как-то защищать от пытливых глаз крякеров, поэтому и придумали SketchUp Scrambler, который переводит скрипт в нечитаемый (расширение .rbs), и, по мнению многих, необратимый вид. Но сегодня я докажу вам обратное. :)

    Подготовка​


    Давайте скачаем и установим себе GSU. Ссылку я давать не буду, но, думаю, вы ребята умные - найдете)

    Теперь нам нужен подопытный. Я выбрал Skelion (http://skelion.net/). Качаем файл skelion_vXX.rbz, открываем GSU, заходим в меню Окно -> Параметры -> Расширения -> Установить расширение -> выбираем скачанный файл. После всех кнопочек и сообщений перезапускаем GSU. Плагин установлен.

    Анализ​


    Давайте же посмотрим, как выглядит наш плагин снаружи.

    Заходим в папку с программой, там ищем папку Plugins\_skelion. Кроме всего прочего html-хлама видим файл: skelion.rbs. Он то нам и нужен. Пытаемся посмотреть его блокнотом - облом.

    Нам поможет GSU​


    Значит так. Давайте определимся, что мы будем делать. Раз это плагин, значит он грузится при запуске самой программы, а значит она открывает файл плагина и каким-то образом его пережевывает. Значит нам нужно отловить место, когда нужный нам плагин расшифруется в память и сохранить его из памяти на диск в виде чистого .rb-скрипта.

    Грузим GSU (SketchUp.exe) в Olly Debugger. Как обычно, сразу заходим в Search -> All Intermodular Calls (отправная точка почти любого взлома).

    Осматриваем список, видим, что большинство вызываемых процедур MFC-шные, т.е. CPP-шные. Гугл нам помогает, и мы узнаем, что функция открытия файла называется fopen(). Ее и ищем в этом списке. И ставим брейкопоинты на все вызовы данной функции.

    Запускаем отладку клавишей F9 и ждем прерывания. В окне стэка мы будем видеть, какой файл после текущего прерывания будет открыт, поэтому поглядываем туда. Вот и первое прерывание.
    Код:
    2d_simplex_bool.rbs
    Не то - жмем F9 еще разок. А вот и наш файл:
    Код:
    skeleton.rbs
    Достаем чистый .rb-скрипт​


    Нам нужно найти место, где уже расшифрованный .rbs-файл будет куда-нибудь передаваться. Для этого мы будем спокойно и планомерно шагать клавишей F8 по каждой строчке ассемблерного кода до тех пор, пока чего-нибудь не найдем (начало чистого скрипта должно будет показаться в столбце комментариев основного окна кода).

    После пары циклов мы доходим до RETN. Значит в текущей процедуре распаковки не произошло - шагаем дальше.

    [​IMG]

    Видим, что в регистр EAX собирается поместиться адрес некой текстовой строки с кучей звездочек. Даем ему туда поместиться) Теперь жмем правой кнопкой по адресу в EAX и жмем Follow in Dump.

    [​IMG]

    В окне дампа (оно слева снизу обычно) появляется кусок нашего скрипта в чистом виде. Для того, чтобы его извлечь оттуда, жмем правой кнопкой на дампе -> Select All, затем выбираем Edit -> Binary copy.... Открываем любой шестнадцатеричный редактор, и вставляем в новый файл содержимое буфера обмена.

    Теперь просто очищаем от лишнего мусора получившийся файл (начало - там где # #*******, конец - слово end). Сохраняем чистый файл с расширением .rb.

    Исправляем проверки и шифруем

    Собственно, найти проверки лицензии в этом файле не сложно. Ищем по словам "license", "trial" и радуемся. Честно говоря, в Ruby я не Rubly совсем, но язык не сложный и никакого труда вам не составит изменить код как вам вздумается.

    А скремблировать назад мы будем упомянутым в самом начале GSU Scrambler'ом: http://www.sketchup.com/intl/en/developer/docs/utilities.php
    Код:
    SketchUpRubyScramblerWindows.exe unpacked_skelion.rb
    Измененный плагин готов)

    Заключение

    Данный способ очень удобен, когда вы не знаете, каким образом обрабатывается файл, но вы точно знаете, что должно быть в нем)

    Автор: Владимир Мефисто
    Special for XNTeam

    UPD. (BONUS): Во вложении самописный анскремблер RBS файлов.
     

    Вложения:

    Последнее редактирование: 26 май 2013
    10 авг 2012
    2 пользователям это понравилось.
  2. ImpossibleDream
    ImpossibleDream Новичок
    Симпатии:
    0
    Нужна помощь для полного новичка ...

    Здравствуйте Доктор Мефисто,

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

    Единственная проблема в том, что я полный новичок, и все эти вещи очень ново для mehttp :/ / www.xaker.name / forvb / фото / смайлы / новый / O_O.gif. Я абсолютно ничего не знаю о коде (любого типа), и я хотел посмотреть, о редактировании плагинов, которые я использую часто для SketchUp. Моя проблема в том, что файл находится в. Формате RBS и я не могу открыть его для исследования.

    Я нашел ваш учебник (Спасибо за регистрацию этого кстати :) ---> Это потрясающая и очень хорошо для начинающих и продвинутых людей - даже за то, что на другом языке, это было все еще интеллектуальная работа Вами) и использовать Google Translate, чтобы попытаться воспроизвести-следовать вашим указаниям, но я получил очень потеряны использованием отладчика Olly найти. RBS файла. Я не следовать вашим указаниям правильно ---> http://www.xaker.name/forvb/images/smilies/new/am.gif.

    Можно ли сделать (тихоходные) видео, чтобы показать мне, как следовать за вами лучше? [/ B] или вы знаете, если плагин там для OllyDBG, которые могут помочь расшифровывать. RBS файлы? Я действительно хочу, чтобы увидеть, если я могу сделать это. Пожалуйста, помогите.

    Большое спасибо доктор Мефисто
     
    25 май 2013
  3. Dr. MefistO
    Dr. MefistO Крывіч Глобальный модератор
    Симпатии:
    125
    ImpossibleDream,
    Ok, I'll try to make a video (no voice, just notepad). And... feel free to speak english here. Because it was very difficult to understand your message.
     
    Последнее редактирование: 25 май 2013
    25 май 2013
    1 человеку нравится это.
  4. ImpossibleDream
    ImpossibleDream Новичок
    Симпатии:
    0
    Thanks Dr.MephistO!

    And...yes, English is much easier to type/speak than translating into Russian, so thanks also for eliminating the need to translate.

    A video without voice is perfect, but I have another question if you do not mind me asking: If GSU does not initiate the plugin at startup of GSU (I have to click on an icon/picture to start the plugin once GSU is running), is there still a way to find and decode the .RBS file(s) that I am looking for in OllyDBG that is SIMPLE? Remember, I have never done any of this kind of stuff before, so for me it is VERY easy to get lost/confused very quickly.........Also, I saw this information from the only other post on descrambling for rbs files----> If you look at the exe with a hex editor you will find the string "FxrgpuHc vf Haqravnoyl Frkl" (without the double quotes). Just rot13 that string and it becomes "SketchUp is Undeniably Sexy" (without the double quotes)
    ============
    .RBS File format is easy...
    6 bytes - header RBS1.0, followed by recording the prefix length
    4 bytes - len (record length)
    followed by the len-byte - block encrypted standard ecb blowfish c ansi-password "SketchUp is Undeniably Sexy" (without the double quotes)
    ... next record ... and so on until the end of file I think I havent successfully got it to decrypt. Maybe someone can help me?"<-------for the part that says".RBS File format is easy...
    6 bytes - header RBS1.0, followed by recording the prefix length
    4 bytes - len (record length)
    followed by the len-byte - block encrypted standard ecb blowfish c ansi-password "SketchUp is Undeniably Sexy" (without the double quotes)
    ... next record ... and so on until the end of file"-----> does that mean there is an isolated way to descramble the .rbs file type without needing to run GSU or OllyDBG? I am truly sorry for complicated questions and long post Dr. MephistO, but the information on here was the only info on the web that was informative. Thanks again. :)
     
    Последнее редактирование модератором: 26 май 2013
    26 май 2013
  5. Dr. MefistO
    Dr. MefistO Крывіч Глобальный модератор
    Симпатии:
    125
    In the attachment to the first message you can find RBS Unscrambler by me.
     
    26 май 2013
  6. ImpossibleDream
    ImpossibleDream Новичок
    Симпатии:
    0
    Dr. MephistO,

    I am very sorry that I did not get back to you sooner, but I was very busy last week. I just wanted to THANK YOU VERY MUCH for helping me out with that ruby descrambler program. You have no idea how much you helped me! Because of you I was able to modify/improve a plugin to add some features that it originally did not have. I would not have been able to do that without your help. What you did was awesome and you seem like a very good person to me, so thanks again. I hope things are good for you in Belarus, and even though I have said it many times already- THANK YOU so much Dr. MephistO.
     
    5 июн 2013
  7. ppeng
    ppeng Новичок
    Симпатии:
    0
    Dr.MephistO, you are really awesome!

    I am developing an 3D model program and need to use a rbs plugin in GSU,
    thanks to you I could decrypt it and modify. Without your work I should spend much more time on that project.

    Thank you so so so so much!
     
    11 июн 2013
  8. Dr. MefistO
    Dr. MefistO Крывіч Глобальный модератор
    Симпатии:
    125
    Both of you: not Dr. MephistO, but Dr. MefistO. And thank you)
     
    13 июн 2013
  9. kimh
    kimh Новичок
    Симпатии:
    0
    Thanks Dr. MefistO for your help,....... it works perfectly. Sorry for the English comments, my Russian is nonexistent

    Большое спасибо
     
    Последнее редактирование: 5 окт 2013
    2 окт 2013
  10. насосик
    насосик Новичок
    Симпатии:
    0
    @Dr. MefistO,
    there are new files coming with RBE extension. Inside there is a "RBS2.0" starting sequence instead of "RBS1.0" in those of RBS.
    Please do you have a comment on that or - god bless it - even a response?
     
    25 ноя 2015

Поделиться этой страницей

Загрузка...