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

ВИДЕОКУРС ВЗЛОМ
выпущен 8 мая!


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

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

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

 eXeL@B —› Вопросы новичков —› Вопрос о защите
Посл.ответ Сообщение

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

Создано: 21 февраля 2015 03:03 · Поправил: maximrouf New!
Цитата · Личное сообщение · #1

Столкнулся с таким явлением -



Около 200 таких вот петель внутри нативной библиотеки android.

1. Каждая петля контролирует целостность определенного блока.
Если изменить логику одного блока, то через некоторое время попадешь
в такую же петлю в другом блоке (не в соседнем, а в каком нибудь рандомном).
2. Петли сами находятся внутри блоков, а значит они контролируют
и целостность других петель.
3. Плюс есть петели в которые попадаешь, только когда работаешь
в режиме отладки через дебаггер.

Вопщем, жутко интересно..)) Хотелось бы узнать, есть ли имя у такой защиты.

Ранг: 488.4 (мудрец)
Статус: Участник

Создано: 21 февраля 2015 09:33 New!
Цитата · Личное сообщение · #2

maximrouf я не хочу вас обижать.. но ваш скрин бесполезен.. ниче тут нету.. ни алгоритма ни просчета.. а ещеесть шанс что декомпилятор гонит

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

Создано: 21 февраля 2015 16:48 New!
Цитата · Личное сообщение · #3

Ученик не имеет права обижаться.
- Так что, не в обиде. )))
А выкладывать библиотеку не могу, иначе стану нарушителем правил форума. ))

Однако, вы мне в любом случае помогли. Не думал, что это может быть ошибкой Иды.

Ранг: 488.4 (мудрец)
Статус: Участник

Создано: 21 февраля 2015 17:06 New!
Цитата · Личное сообщение · #4

maximrouf в этой жизни ничему нельзя верить.. и ни одни слова принимать на веру. код если странный.. ессть шанс ошибки декомпиля. ты кинул 5 иснтрукций.. их вполне можно проверить по мануалу АРМ проца. или взять другой декомпиль. сомнения. должны быть всегда. возможно код и верен возможно его так тупорыло компиллер построил

Добавлено спустя 1 минуту
я просто че матерился.. в вашем коде 2 ветки.. непонятно куда уходят и не понятно откуда вхождение.. поэтому вариантов море

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


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

Создано: 21 февраля 2015 17:50 · Поправил: maximrouf New!
Цитата · Личное сообщение · #5

Сомнения по декомпилятору не подтвердились. Hopper показал похожий результат (-ссылка-)..

Буду копать дальше.


Ранг: 1984.9 (!!!!)
Статус: Модератор
retired

Создано: 21 февраля 2015 17:53 New!
Цитата · Личное сообщение · #6

Выложить софт не нарушает правил форума. Скорее можно попасть под нарушение п.9, если софт не выкладывать.

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

Создано: 21 февраля 2015 18:26 · Поправил: maximrouf New!
Цитата · Личное сообщение · #7

- Спасибo.

Описaние прoдукта:

Это нaбор библиoтек для плaтфoрм - iоs, аndroid, win, mаc
Коммерческoе название "Vufоriа"
1. Дaют доступ к кaмeре мoбильного устрoйства или к web-кaмере PС.
2. Рaccчитывают кooрдинаты устройства относительно заранее заготовленной картинки. (трeкинг изoбрaжeния в видеопотоке)


Изначально, "Vufоriа" былa бесплaтным нaбором библиотек для энтузиастов исслeдоватeлeй компьютeрного зрeния.
Однако, новая вeрсия, кoтoрую скоро анoнсируют, станет платной.

В послeднeй бета-вeрсии добaвлeнa защита кo всeм чeтырем библиoтекам.
Конкретно Andrоid библиотека мeня очень сильно смутилa.

Этo мoй личный интерес к зaщите, бeз какого либo умыслa.


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

Создано: 21 февраля 2015 19:26 New!
Цитата · Личное сообщение · #8

название so либы и адреса тоже нужно вытянуть из вас клещами?

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

Создано: 21 февраля 2015 20:01 New!
Цитата · Личное сообщение · #9

Пардон. У меня каша в голове, от радости, что общаюсь с настоящими мастерами реверса.

Имя libVuforia.so, адрес 0005BAC0 (sub_5BAC0)

Первое (тестовое) изменение происходит по адресу 0005BB70
Я меняю JZ на JMP (BEQ на B)


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

Создано: 21 февраля 2015 20:30 · Поправил: reversecode New!
Цитата · Личное сообщение · #10

maximrouf пишет:
Пардон. У меня каша в голове, от радости, что общаюсь с настоящими мастерами реверса.

говорят лесть один из грехов человека

компилятор такое не генерит, это самопал
можно оттолкнутся от того что 0x921BB8 константа и она глобальна для всех
.got:00939348 ____off_939348 DCD 0x921BB8
быть может можно это как то заюзать при взломе

Code:
  1.   addr0_v2 = (unsigned int)sub_15B520 & ~1;
  2.   hash0_v3 = 0;
  3.   do
  4.   {
  5.     if ( addr0_v2 > 0x921BB8 )
  6.     {
  7.       while ( 1 )
  8.         ;
  9.     }
  10.     v4 = *(_DWORD *)addr0_v2;
  11.     addr0_v2 += 4;
  12.     hash0_v3 ^= v4;
  13.   }
  14.   while ( hash0_v3 );
  15.   addr1_v5 = (unsigned int)sub_15B208 & ~1u;
  16.   hash1_v6 = 0;
  17.   do
  18.   {
  19.     if ( addr1_v5 > 0x921BB8 )
  20.     {
  21.       while ( 1 )
  22.         ;
  23.     }
  24.     v7 = *(_DWORD *)addr1_v5;
  25.     addr1_v5 += 4;
  26.     hash1_v6 ^= v7;
  27.   }
  28.   while ( hash1_v6 );
  29.   addr2_v8 = (unsigned int)sub_15B840 & ~1u;
  30.   hash2_v9 = 0;
  31.   do
  32.   {
  33.     if ( addr2_v8 > 0x921BB8 )
  34.     {
  35.       while ( 1 )
  36.         ;
  37.     }
  38.     v10 = *(_DWORD *)addr2_v8;
  39.     addr2_v8 += 4;
  40.     hash2_v9 ^= v10;
  41.   }
  42.   while ( hash2_v9 );

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


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

Создано: 21 февраля 2015 20:44 New!
Цитата · Личное сообщение · #11

.. и грех, не воспользоваться лестью, если твоему собеседнику это нравится.

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

4 библиотеки, но у каждой своя защита.
Возможно работу делали 4 программиста, каждый со своим подходом.


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

Создано: 21 февраля 2015 20:48 New!
Цитата · Личное сообщение · #12

эту защиту можно почистить, думаю там шаблон байт легко найти и позаменять на пустышку

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

Создано: 21 февраля 2015 21:27 New!
Цитата · Личное сообщение · #13

Я так делал. (FE FF FF EA - петля в саму себя, менял на FF FF FF EA - переход вперед по логической цепочке)
Шаблон действительно одинаков для всех петель.

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

Так что, надо сказать разработчикам спасибо за маленькие петельки на которых можно "зависнуть".

Ранг: 95.7 (постоянный)
Статус: Участник

Создано: 22 февраля 2015 08:32 New!
Цитата · Личное сообщение · #14

maximrouf пишет:
попадал в петли

Петли ? Может все-таки циклы ?

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

Создано: 22 февраля 2015 08:38 New!
Цитата · Личное сообщение · #15

unknownproject пишет:
Петли ? Может все-таки циклы ?

Да это вообщем-то из разряда дебагер или отладчик, суть то не меняется.

P.S. unknownproject А нафлудил-то аж из минусов вышел Мои поздравления, с тебя пузырь.
 eXeL@B —› Вопросы новичков —› Вопрос о защите

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

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