Сейчас на форуме: igorcauret, Rio (+6 невидимых)

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

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

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

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



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

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

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



Ранг: 488.1 (мудрец), 272thx
Активность: 0.350
Статус: Участник

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

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

-----
Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме....




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

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

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

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



Ранг: 488.1 (мудрец), 272thx
Активность: 0.350
Статус: Участник

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

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

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

-----
Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме....


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

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

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

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

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




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

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

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



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

Создано: 21 февраля 2015 18:26 · Поправил: maximrouf
· Личное сообщение · #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.




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

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

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



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

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

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

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

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




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

Создано: 21 февраля 2015 20:30 · Поправил: reversecode
· Личное сообщение · #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 (гость), 4thx
Активность: 0.010
Статус: Участник

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

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

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

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




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

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

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



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

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

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

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

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



Ранг: 95.1 (постоянный), 247thx
Активность: 0.260.01
Статус: Участник

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

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

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

-----
TEST YOUR MIGHT




Ранг: 196.0 (ветеран), 72thx
Активность: 0.140.02
Статус: Участник

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

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

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

P.S. unknownproject А нафлудил-то аж из минусов вышел Мои поздравления, с тебя пузырь.


 eXeL@B —› Вопросы новичков —› Вопрос о защите
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати