eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 августа!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: daFix (+1 невидимый пользователь)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Вопросы новичков —› Подскажите, в какую сторону копать...
. 1 . 2 . 3 . >>
Посл.ответ Сообщение


Ранг: 111.0 (ветеран)
Статус: Участник

Создано: 14 апреля 2013 13:07 New!
Цитата · Личное сообщение · #1

Начну издалека. Ковыряю программу на флэшэ. Во время её работы вылезает окно "Демо режим". Кроме него ограничений нет. Стоимость программы смехотворна, но интересно, именно как отследить вызов окошка. Самые все популярные бряки на АПИ поставил, запустил керберос, но пока безрезультатно. Дизассемблером строки: Registered, Demo, License искал, тоже мимо. Можно как-то через стек отловить последний вызов в памяти, и как это сделать?

http://www.softportal.com/getsoft-4723-display-book-2.html


Ранг: 527.1 (!)
Статус: Участник
5KRT

Создано: 14 апреля 2013 13:36 New!
Цитата · Личное сообщение · #2

aspirin
Так если она на флеше, тогда доставай оттуда SWF и ковыряй его. Олькой тут особо ничего не поделаешь


Ранг: 111.0 (ветеран)
Статус: Участник

Создано: 14 апреля 2013 13:39 New!
Цитата · Личное сообщение · #3

daFix, SWF чем доставать?


Ранг: 225.8 (наставник)
Статус: Участник
radical

Создано: 14 апреля 2013 13:45 · Поправил: DimitarSerg New!
Цитата · Личное сообщение · #4

aspirin пишет:
SWF чем доставать?

Например ExeInfoPE опция RIP (All in one)

Переменная _root.vars.tr_demo отвечает за регу (должна быть 0), как я понял.


Ранг: 111.0 (ветеран)
Статус: Участник

Создано: 14 апреля 2013 13:56 New!
Цитата · Личное сообщение · #5

DimitarSerg, получил 3 файла display_book-rip разного размера, что с ними делать дальше? Олька не открывает.


Ранг: 225.8 (наставник)
Статус: Участник
radical

Создано: 14 апреля 2013 13:58 · Поправил: DimitarSerg New!
Цитата · Личное сообщение · #6

aspirin
display_book3-rip.swf тот что 804кб в SWF-декомпилер запихнуть, сделать экспорт, смотреть дальше.

p.s. Использую Sothink Swf Decompiler


DimitarSerg пишет:
Декомпельнул, смотри в аттаче.

Чё в пи-коде ?


Ранг: 469.0 (мудрец)
Статус: Участник
[www.AHTeam.org]

Создано: 14 апреля 2013 14:32 New!
Цитата · Личное сообщение · #7

Декомпельнул, смотри в аттаче. Строки были все в кириллице, пришлось вернуть кодировку. Теперь вроде все читается.

{ Атач доступен только для участников форума } - decom.txt


Ранг: 111.0 (ветеран)
Статус: Участник

Создано: 14 апреля 2013 14:41 New!
Цитата · Личное сообщение · #8

KingSise, что делать с этим тхт?


Ранг: 111.0 (ветеран)
Статус: Участник

Создано: 14 апреля 2013 14:55 New!
Цитата · Личное сообщение · #9

Нашёл функцию:
DimitarSerg пишет:
Переменная _root.vars.tr_demo отвечает за регу (должна быть 0), как я понял.


Code:
  1. function f_vars()
  2. {
  3.     _root.vars.dtime = 180000;
  4.     if (_root.vars.tr_demo == undefined)
  5.     {
  6.         _root.vars.tr_demo = 1;
  7.     } // end if
  8.     if (!glob.marfa)
  9.     {
  10.         _root.vars.tr_demo = 0;
  11.     } // end if
  12.     if (glob.data_folder == undefined || glob.data_folder.indexOf("ProgramData\BombinaSoft\") == -1)
  13.     {
  14.         glob.tr_mistake = 1;
  15.         f_wrong_frame();
  16.         return;
  17.     } // end if
  18.     _root.book_j_max = 20;
  19.     _root.vars.tr_but_stop = 0;
  20.     _root.book_text = "";
  21.     _root.book_frame_text = "";
  22.     _root.book_src = "";
  23.     _root.book_part_max = 1;
  24.     _root.ref_url = "";
  25.     _root.vars.demo_time = _root.vars.dtime;
  26.     _root.vars.but_demo_click = 0;
  27.     _root.display_book_src = "";
  28.     _root.tr_load_book = 0;
  29.     _root.tr_pan_tools = 1;
  30.     _root.vars.tr_text_go = 0;
  31.     _root.vars.tr_bg = 3;
  32.     _root.vars.reg_name = "no_name";
  33.     _root.vars.tr_shrift_over == 0;
  34.     _root.vars.page_n_max = 0;
  35.     _root.vars.page_n_max_show = "-/-";
  36.     _root.vars.tr_reload_book = 1;
  37.     _root.vars.n_correct = 0;
  38.     var _loc6 = 0;
  39.     _root.vars.tr_buff = 0;
  40.     for (var _loc3 = 1; _loc3 < 4; ++_loc3)
  41.     {
  42.         this["bg" + _loc3] = new Object();
  43.         this["color_" + _loc3] = new Color(_root.pred_book);
  44.         this["col_ob_" + _loc3] = this["color_" + _loc3].getTransform();
  45.         this["bg" + _loc3].frame = 1;
  46.         this["bg" + _loc3].col_set = this["col_ob_" + _loc3];
  47.     } // end of for
  48.     var _loc5 = new Object();
  49.     _loc5.number = 1;
  50.     _loc5.lines = 20;
  51.     var _loc4 = new Object();
  52.     _loc4.book_number = 0;
  53.     _loc4.book_number_max = _root.book_j_max;
  54.     _loc4.max_time = 31;
  55.     _loc4.bg1 = bg1;
  56.     _loc4.bg2 = bg2;
  57.     _loc4.bg3 = bg3;
  58.     _loc4.shrift = _loc5;
  59.     _loc4.tr_help_line = 1;
  60.     if (_root.so.data.sets.book_number == undefined)
  61.     {
  62.         _root.so.data.sets = _loc4;
  63.         _loc6 = 1;
  64.     }
  65.     else
  66.     {
  67.         _root.sets = _root.so.data.sets;
  68.         _root.vars.max_time = _root.sets.max_time;
  69.     } // end else if
  70.     if (_root.so.data.book[1].src == undefined)
  71.     {
  72.         _loc6 = 1;
  73.         _root.so.data.book = new Array();
  74.         for (var _loc3 = 1; _loc3 <= _root.book_j_max + 1; ++_loc3)
  75.         {
  76.             this["book" + _loc3] = new Object();
  77.             this["book" + _loc3].bytes = 0;
  78.             this["book" + _loc3].src = "no";
  79.             this["book" + _loc3].prots = 0;
  80.             this["book" + _loc3].tit = "no";
  81.             this["book" + _loc3].part = 1;
  82.             this["book" + _loc3].part_max = 1;
  83.             _root.so.data.book[_loc3] = this["book" + _loc3];
  84.         } // end of for
  85.     } // end if
  86.     if (_loc6 == 1)
  87.     {
  88.         _root.so.flush();
  89.         gotoAndPlay(restart);
  90.     } // end if
  91.     _root.book = _root.so.data.book[_root.sets.book_number];
  92.     if (_root.sets.text_align.== undefined)
  93.     {
  94.         _root.sets.text_align = new Object();
  95.         _root.sets.text_align.= 1;
  96.         _root.sets.text_align.levo = "left";
  97.         _root.sets.text_align.pravo = "left";
  98.     } // end if
  99.     if (_root.sets.movic_y == undefined)
  100.     {
  101.         _root.sets.movic_y = 264;
  102.     } // end if
  103.     _root.sets.book_number_max = 20;
  104.     if (_root.book.part == undefined)
  105.     {
  106.         _root.book.part = 1;
  107.     } // end if
  108.     if (_root.book.part_max == undefined)
  109.     {
  110.         _root.book.part_max = 1;
  111.     } // end if
  112.     if (_root.sets.book_number == undefined || _root.sets.book_number == 0)
  113.     {
  114.         _root.sets.book_number = 1;
  115.     } // end if
  116. // End of the function


На основе этих данных можно слепить кейген в дальнейшем? Что тут поправить, чтобы программа считала себя зарегистрированной?


Ранг: 225.8 (наставник)
Статус: Участник
radical

Создано: 14 апреля 2013 15:35 New!
Цитата · Личное сообщение · #10

Я конечно во флеше новичок, но сдается, что вот проверка:

Code:
  1. if (_loc4 == 8)
  2.     {
  3.         var _loc8 = _root.so.data.user_parol;
  4.         if (_loc8 == undefined)
  5.         {
  6.             _loc8 = _root.so.data.user_parol = "100-100-100-100";
  7.         } // end if
  8.         f_kobra("set", "f_get_nose3", _loc8 + ", " + glob.n_code);
  9.         return;
  10.     } // end if
  11.     if (_loc4 == 9)
  12.     {
  13.         return;
  14.     } // end if
  15.     if (_loc4 == 10)
  16.     {
  17.         f_kobra("load");
  18.         return;
  19.     } // end if
  20.     if (_loc4 == 11)
  21.     {
  22.         if (!f_kobra("get"))
  23.         {
  24.             ++this.n6;
  25.             if (this.n6 < 6)
  26.             {
  27.                 this.= 6;
  28.                 return;
  29.             } // end if
  30.             glob.tr_mistake = 6;
  31.             _root.f_wrong_frame();
  32.             return;
  33.         } // end if
  34.         if (kobra.iRez == 0)
  35.         {
  36.             glob.tr_mistake = 7;
  37.             _root.f_wrong_frame();
  38.             return;
  39.         } // end if
  40.         var _loc7 = kobra.szData.split(".");
  41.         if (_loc7.length != 2 || !f_lic_format(_loc7[0]))
  42.         {
  43.             glob.tr_mistake = 8;
  44.             _root.f_wrong_frame();
  45.             return;
  46.         } // end if
  47.         _root.so.data.user_licence = glob.n_code + "-" + _loc7[0];
  48.         if (_loc7[0] == _loc7[1])
  49.         {
  50.             glob.marfa = 0;
  51.         } // end if
  52.         return;
  53.     } // end if
  54.  

Ранг: 34.1 (посетитель)
Статус: Участник

Создано: 14 апреля 2013 16:41 New!
Цитата · Личное сообщение · #11

Проверка пароля не во флеше, если что

Вот это вот копать надо: bs_dbook_3.15.exe

Во флеше лежит только чекер формата. Ну и функции, чтоб в хранилище записать, да забрать оттуда...


Ранг: 111.0 (ветеран)
Статус: Участник

Создано: 15 апреля 2013 18:23 New!
Цитата · Личное сообщение · #12

nick8606 пишет:
Вот это вот копать надо: bs_dbook_3.15.exe

Это где такой файлик искать?
Вот список содержимого моей папки:



Как назойливое окошко отловить?

Ранг: 34.1 (посетитель)
Статус: Участник

Создано: 15 апреля 2013 19:01 New!
Цитата · Личное сообщение · #13

Окошко-то во флэше.
В папке fscommand лежат несколько exe. Там искать надо. Мне кажется проще bs_dbook_3.15.exe пропатчить, чем саму флешку. Вызовов чего-то много...


Ранг: 111.0 (ветеран)
Статус: Участник

Создано: 15 апреля 2013 19:41 New!
Цитата · Личное сообщение · #14

nick8606 пишет:
проще bs_dbook_3.15.exe пропатчить, чем саму флешку.

Каким образом вы запускаете программу в отладчике, у меня при первом же ф9 сразу терминатица?

Ранг: 34.1 (посетитель)
Статус: Участник

Создано: 15 апреля 2013 20:14 New!
Цитата · Личное сообщение · #15

Кхм. Никаким. Оно и должно терминатиться.
В общем механизм такой: запускается флешка и стартует процесс bscommand. Через него запускается bs_dbook во время выполнения команды. После выполнения процесс умирает. Поэтому в отладчике проблематично запустить его... Я и говорю, пропатчить проще


Ранг: 111.0 (ветеран)
Статус: Участник

Создано: 15 апреля 2013 20:32 New!
Цитата · Личное сообщение · #16

nick8606 пишет:
После выполнения процесс умирает. Поэтому в отладчике проблематично запустить его... Я и говорю, пропатчить проще

Что-нибудь предложите? Как окошко найти?

Ранг: 9.8 (гость)
Статус: Участник
tPORt

Создано: 15 апреля 2013 22:26 · Поправил: JMPer New!
Цитата · Личное сообщение · #17

aspirin
При наличии валидной пары можно пробовать патчить хвид.
Формируется тут (файл bs_dbook_3.15.exe):
Code:
  1. 0040AE40  /$  55            PUSH EBP                                 ; HWID

4 колла, в каждом из которых получается по одной части (инфа о диске, что-то с помощью системной GetSystemInfo и заканчивая SystemBiosDate)

и картинки свои полноэкранные либо уменьши, либо превьюшкой сделай.

Ранг: 34.1 (посетитель)
Статус: Участник

Создано: 16 апреля 2013 13:33 · Поправил: nick8606 New!
Цитата · Личное сообщение · #18

Вот. JMPer сваяет кейген(возможно, но необязательно), а пока можно и так: --> Link <--


Ранг: 111.0 (ветеран)
Статус: Участник

Создано: 16 апреля 2013 21:19 · Поправил: aspirin New!
Цитата · Личное сообщение · #19

nick8606
Тут или в личку хоть отпишите, что патчили, интересно же

Такая валидная пара подойдёт?


Ранг: 34.1 (посетитель)
Статус: Участник

Создано: 16 апреля 2013 23:45 New!
Цитата · Личное сообщение · #20

--> Link <--

Корявенько получилось, но, думаю, понятно будет.

Это одно решение. Касающееся, в принципе, темы. Но это так. Отмаз. Патчить/кейгенить надо bs_dbook_3.15. Вдруг там не только наг...

Ранг: 241.5 (наставник)
Статус: Участник

Создано: 17 апреля 2013 00:04 New!
Цитата · Личное сообщение · #21

Как заставить вылезти наг?

Ранг: 34.1 (посетитель)
Статус: Участник

Создано: 17 апреля 2013 00:07 New!
Цитата · Личное сообщение · #22

Подождать 180 секунд и перелистнуть страницу. Ну или просто листать. При перелистывании появится.


Ранг: 111.0 (ветеран)
Статус: Участник

Создано: 17 апреля 2013 17:39 New!
Цитата · Личное сообщение · #23

nick8606 пишет:
Корявенько получилось, но, думаю, понятно будет.

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


Ранг: 111.0 (ветеран)
Статус: Участник

Создано: 20 апреля 2013 12:36 · Поправил: aspirin New!
Цитата · Личное сообщение · #24

nick8606, под VM с XP программа работает, а под 7 нет, в чём причина?

ADD: замена .ехе не помогает, только полное удаление программного каталога. (Если кому понадобится)

Ранг: 34.1 (посетитель)
Статус: Участник

Создано: 20 апреля 2013 14:09 New!
Цитата · Личное сообщение · #25

Хм. Не знаю. У меня под win7x64 нормально работает скомпилированная под xp


Ранг: 111.0 (ветеран)
Статус: Участник

Создано: 4 мая 2013 20:48 · Поправил: aspirin New!
Цитата · Личное сообщение · #26

nick8606 пишет:
Хм. Не знаю. У меня под win7x64 нормально работает скомпилированная под xp

Я тогда проверил, демка действительно пропала, и забыл о программе на некоторое время. Откройте любую книгу, и обратите внимание на форматирование текста (последний абзац левого разворота переходит на правый). Как думаете, может, это автор постарался подставу сделать?)) В ролике посмотрите, тоже самое Дорабатывать надо.

Проверил метод патча на предыдущей версии, там нет функции marfa, но сюрприз тот же


Ранг: 111.0 (ветеран)
Статус: Участник

Создано: 4 мая 2013 20:51 New!
Цитата · Личное сообщение · #27

JMPer пишет:
При наличии валидной пары можно пробовать патчить хвид.
Формируется тут (файл bs_dbook_3.15.exe):
Code:
0040AE40  /$  55            PUSH EBP                                 ; HWID

4 колла, в каждом из которых получается по одной части (инфа о диске, что-то с помощью системной GetSystemInfo и заканчивая SystemBiosDate)

пойдёт ли пара из хэлпа от самого автора?

Ранг: 34.1 (посетитель)
Статус: Участник

Создано: 4 мая 2013 21:30 New!
Цитата · Личное сообщение · #28

aspirin пишет:
Откройте любую книгу, и обратите внимание на форматирование текста (последний абзац левого разворота переходит на правый)


Скорее всего это те же проблемы со шрифтами. Некритично, можно допилить прямо во флеше, в принципе... Но, как уже сказал, способ не 100% верный, но рабочий.


Ранг: 111.0 (ветеран)
Статус: Участник

Создано: 4 мая 2013 21:43 New!
Цитата · Личное сообщение · #29

nick8606 пишет:
Некритично, можно допилить прямо во флеше, в принципе...

и как это сделать?)

Ранг: 34.1 (посетитель)
Статус: Участник

Создано: 4 мая 2013 22:25 New!
Цитата · Личное сообщение · #30

aspirin пишет:
и как это сделать?)


Ааа)) Это флешером надо быть
А я не он
. 1 . 2 . 3 . >>
 eXeL@B —› Вопросы новичков —› Подскажите, в какую сторону копать...

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS