![]() |
eXeL@B —› Вопросы новичков —› Крякинг Shared Libs (.so) |
Посл.ответ | Сообщение |
|
Создано: 11 ноября 2009 17:11 · Личное сообщение · #1 Имеется подгруженная .so библиотека (ОС freebsd). Необходимо отследить и заменить возвращаемое значения одного из обращений к ней. Открыл ее хексридером ht, полмиллиона строк- где искать? objdump возвращает 300к строк, тоже разбираться нереально. Возможно-ли выводить в stdout все обращения к ней с максимально-подробной информацией? Есть-ли такая тулза? в gdb, по всей видимости, есть такая возможноть, но на изучение ее уйдет не один месяц ;) Спасибо ![]() |
|
Создано: 11 ноября 2009 18:07 · Личное сообщение · #2 |
|
Создано: 12 ноября 2009 09:06 · Поправил: tundra37 · Личное сообщение · #3 ear пишет: objdump возвращает 300к строк, тоже разбираться нереально. А что поиском нельзя найти нужную функцию для анализа - в so имена всех функций имеются и в objdump должны быть. ear пишет: Необходимо отследить и заменить возвращаемое значения одного из обращений к ней. IDA должна еще более приемлимый вариант дать. А если опыта и желания нет делать самому, то сюда http://exelab.ru/f/action=vthread&forum=2&topic=14989 ![]() |
|
Создано: 12 ноября 2009 12:22 · Личное сообщение · #4 Спасибо за ответы. Archer пишет: ИДА по идее должна хавать so. tundra37 пишет: IDA должна еще более приемлимый вариант дать. К сожалению IDA не на чем запустить, ниодной виндовой машины в окружении нет. Linux IDA не уверен, что такая-же сильная, как и виндовый аналог. Посмотрю обязательно что она из себя представляет под Linux. tundra37 пишет: А что поиском нельзя найти нужную функцию для анализа - в so имена всех функций имеются и в objdump должны быть. из objdump не получается ниодной строки, зато по strings lib.so | grep getLicense возвращает несколько вариантов. ![]() tundra37 пишет: А если опыта и желания нет делать самому, то сюда Спасибо, я видел этот топик. Если самому не пройти через некриптованный крэкинг, то какой-же из меня специалист? ![]() ![]() |
|
Создано: 12 ноября 2009 12:58 · Поправил: tundra37 · Личное сообщение · #5 Так вы хотели, чтоб objdump вам еще и анализ проделал. Т.е. вы знаете, что делает функция, но не знаете ее имя. Ну так по смыслу можно. Именно так я в свое время flexlm ломал. Правда он тогда простой был до безобразия. Но уж тут вам без отладчика не обойтись. Да и IDA вам мало поможет - если алгоритм сложный, то вы по дизасму не разберетесь. Кстати для gdb появилась наконец нормальная графическая оболочка - insight. Правда я ее пока только в варианте для cygwin видел. ![]() |
|
Создано: 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, может изменить адрес перехода на следующую команду? Тогда не могу понять, как тут умещается адрес перехода? Он относительный? Прошу прощения за глупые вопросы, но мне необходим совет куда дальше копать. Спасибо. ![]() |
|
Создано: 13 ноября 2009 12:01 · Личное сообщение · #7 |
|
Создано: 13 ноября 2009 12:43 · Личное сообщение · #8 |
|
Создано: 13 ноября 2009 13:32 · Личное сообщение · #9 |
![]() |
eXeL@B —› Вопросы новичков —› Крякинг Shared Libs (.so) |
Эта тема закрыта. Ответы больше не принимаются. |