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

 eXeL@B —› Вопросы новичков —› Крякинг Shared Libs (.so)
Посл.ответ Сообщение

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

Создано: 11 ноября 2009 17:11
· Личное сообщение · #1

Имеется подгруженная .so библиотека (ОС freebsd). Необходимо отследить и заменить возвращаемое значения одного из обращений к ней. Открыл ее хексридером ht, полмиллиона строк- где искать? objdump возвращает 300к строк, тоже разбираться нереально. Возможно-ли выводить в stdout все обращения к ней с максимально-подробной информацией? Есть-ли такая тулза? в gdb, по всей видимости, есть такая возможноть, но на изучение ее уйдет не один месяц ;) Спасибо




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

Создано: 11 ноября 2009 18:07
· Личное сообщение · #2

ИДА по идее должна хавать so.



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

Создано: 12 ноября 2009 09:06 · Поправил: tundra37
· Личное сообщение · #3

ear пишет:
objdump возвращает 300к строк, тоже разбираться нереально.

А что поиском нельзя найти нужную функцию для анализа - в so имена всех функций имеются и в objdump должны быть.
ear пишет:
Необходимо отследить и заменить возвращаемое значения одного из обращений к ней.

IDA должна еще более приемлимый вариант дать.
А если опыта и желания нет делать самому, то сюда
http://exelab.ru/f/action=vthread&forum=2&topic=14989



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

Создано: 12 ноября 2009 12:22
· Личное сообщение · #4

Спасибо за ответы.

Archer пишет:
ИДА по идее должна хавать so.


tundra37 пишет:
IDA должна еще более приемлимый вариант дать.


К сожалению IDA не на чем запустить, ниодной виндовой машины в окружении нет. Linux IDA не уверен, что такая-же сильная, как и виндовый аналог. Посмотрю обязательно что она из себя представляет под Linux.


tundra37 пишет:
А что поиском нельзя найти нужную функцию для анализа - в so имена всех функций имеются и в objdump должны быть.

из objdump не получается ниодной строки, зато по strings lib.so | grep getLicense возвращает несколько вариантов. Понимаю, что хожу где-то очень рядом, а вот нужную дверь не нахожу.

tundra37 пишет:
А если опыта и желания нет делать самому, то сюда

Спасибо, я видел этот топик. Если самому не пройти через некриптованный крэкинг, то какой-же из меня специалист?



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

Создано: 12 ноября 2009 12:58 · Поправил: tundra37
· Личное сообщение · #5

Так вы хотели, чтоб objdump вам еще и анализ проделал. Т.е. вы знаете, что делает функция, но не знаете ее имя. Ну так по смыслу можно. Именно так я в свое время flexlm ломал. Правда он тогда простой был до безобразия. Но уж тут вам без отладчика не обойтись. Да и IDA вам мало поможет - если алгоритм сложный, то вы по дизасму не разберетесь.
Кстати для gdb появилась наконец нормальная графическая оболочка - insight. Правда я ее пока только в варианте для cygwin видел.



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

Создано: 13 ноября 2009 11:32
· Личное сообщение · #6

Открыл в IDA на виндовой машинке и в ht на линуксовой. Правки буду делать через ht.
Нашел такую конструкцию:

27D4FE cmp rax, [rdx]
27D501 jg short loc_27D51B
...
Далее License Check Passed
...
27D51B -- License CheckFailed

Я так понимаю, что необходимо:
а) убрать полностью эту конструкцию
б) изменить результат cmp на противоположный

У меня есть доступ только к редактированию HEX. Если я вписываю нули на месте двух команд, то получаю неработоспособную библиотеку. Не уверен что это верный подход, даже более того, уверен, что это не верный подход

HEX:
48 3B 02 - CMP
7F 18 - JG, может изменить адрес перехода на следующую команду? Тогда не могу понять, как тут умещается адрес перехода? Он относительный?

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

Спасибо.



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

Создано: 13 ноября 2009 12:01
· Личное сообщение · #7

Все. Сделал! Всем спасибо Сменил сравниваемое значение CMP



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

Создано: 13 ноября 2009 12:43
· Личное сообщение · #8

Ну если там нормальная защита, то этого недостаточно. Сообщение будет выдаваться нужное, но продукт работать не будет. Я видел и такое - генерится правильная лицензия и в протоколе все ОК, но все равно не пашет




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

Создано: 13 ноября 2009 13:32
· Личное сообщение · #9

Если всё сделал, можно закрыть, видимо.
З.Ы. Вообще то убирают команды нопами, а не нулями, почитал бы статьи.


 eXeL@B —› Вопросы новичков —› Крякинг Shared Libs (.so)
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати