Сейчас на форуме: (+5 невидимых) |
eXeL@B —› Протекторы —› Распаковка Hasp envelop конверта под Linux |
. 1 . 2 . >> |
Посл.ответ | Сообщение |
|
Создано: 05 июля 2019 21:27 · Поправил: daFix · Личное сообщение · #1 Приветствую! Попалась задачка по изучению одного бинаря, но он накрыт конвертом. В линухе я не силён, поэтому даже установка GDB для меня проблема - упёрся в отсутствие нужных библиотек для запуска. Реверсил всё это дело через удалённый IDA отладчик, но не придумал как обойти антиотладку через fork. Времени мало и углубляться во внутренности линухи некогда, поэтому буду рад хоть какой-то информации. Задача минимум - просто снять дамп, максимум - снять конверт. Если на паблике инфы вообще нету и задача за пару вечеров не решаема, готов выслушать коммерческие предложения в личке. Если что, антиотладка там реализована через форк процесса с последующим ptrace. Просто занопить fork и вернуть 0 ни к чему хорошему не приводит ----- Research For Food |
|
Создано: 05 июля 2019 22:35 · Личное сообщение · #2 |
|
Создано: 05 июля 2019 22:44 · Личное сообщение · #3 |
|
Создано: 05 июля 2019 22:45 · Личное сообщение · #4 |
|
Создано: 05 июля 2019 22:58 · Личное сообщение · #5 |
|
Создано: 05 июля 2019 22:58 · Поправил: daFix · Личное сообщение · #6 sefkrd Gentoo 4.4.6 Охрененно длинная портянка из кода функции которая занимается отладкой друг друга: Code:
kunix пишет: А ptrace через прямые системные вызовы? Ну, через импорт всё. Если я правильно понял вопрос) ----- Research For Food |
|
Создано: 05 июля 2019 23:12 · Личное сообщение · #7 |
|
Создано: 05 июля 2019 23:12 · Поправил: kunix · Личное сообщение · #8 |
|
Создано: 05 июля 2019 23:16 · Личное сообщение · #9 |
|
Создано: 06 июля 2019 13:00 · Личное сообщение · #10 |
|
Создано: 06 июля 2019 13:37 · Личное сообщение · #11 |
|
Создано: 06 июля 2019 14:04 · Личное сообщение · #12 |
|
Создано: 06 июля 2019 14:08 · Личное сообщение · #13 видимо нужно прочитать мануал по отладке на иде режима ядра а не режима ring3 https://www.hex-rays.com/products/ida/debugger/index.shtml | Сообщение посчитали полезным: dma |
|
Создано: 06 июля 2019 15:55 · Личное сообщение · #14 |
|
Создано: 06 июля 2019 19:29 · Поправил: hors · Личное сообщение · #15 daFix пишет: Если что, антиотладка там реализована через форк процесса с последующим ptrace. Просто занопить fork и вернуть 0 ни к чему хорошему не приводит Без особого труда это можно обойти редактированием и перекомпиляцией ядра. Сам процесс сборки: Теоретически это можно частично проэмулировать в RunTime эмуляторах(qemu, unicorn ...). Но тут надо смотреть, есть кое-какие идеи как это сделать, но руки до практических реализаций не доходили. Тем более что всё быстрее решается перекомпиляцией ядра. daFix пишет: Задача минимум - просто снять дамп, максимум - снять конверт. Ну с дампом проблем никаких нет, а вот процесс снятия конверта может и растянуться. ----- http://ntinfo.biz |
|
Создано: 06 июля 2019 21:39 · Личное сообщение · #16 |
|
Создано: 07 июля 2019 22:24 · Личное сообщение · #17 В принципе если есть две версии для вин тоже, то по идеи основные механизмы должны быть одинаковы, сама архитектура защиты. Но тут Там же краткое описание: Code:
Вероятно от дампа толку мало будет, если прот частями данные декодирует. Я просто не знаю специфику линей. В нт без сурков можно лишь небольшой процент кода выделить, вероятно в лине всё обстоит иначе. Но метод общий - выделить событие EP. На этом месте посмотреть как выглядит модуль. Но это не сделать через штатную трассировку, тем более произойдёт наложение двух трассировок. Нужно крутить эмулятором. |
|
Создано: 08 июля 2019 01:00 · Личное сообщение · #18 Dr0p Под виндой конверт большой сложности не вызывает, там достаточно просто. Иногда даже импорт не трогают. под линухой вроде нет ни каких "наномитов" и прочей нечисти которые реализуются отладкой себя самого. Чувствую, придётся изучать как всё это дело работает в юзермоде и через LD_PRELOAD библиотеку снимать дамп. Перекомпилировать ядро или отлаживать его для меня пока страшновато звучит, попробую более простыми способами справиться ----- Research For Food |
|
Создано: 08 июля 2019 17:59 · Поправил: int_256 · Личное сообщение · #19 ядро там компилится намного проще чем кажется. Для арча (манжаро): клонируете гитом любое ядро с AUR к примеру это https://aur.archlinux.org/packages/linux-lts414 открываете в папке config и в нем ставите CONFIG_KGDB=y пишете makepkg -rsi ждете кучу времени пока соберется пакет и установится. обновляете груб grub-mkconfig -o /boot/grub/grub.cfg после ребута в списке операционок grub появится ваше ядро всё! перед этим я бы советовал добавить CPUCORES=$(nproc --all) в /etc/makepkg.conf чтоб сборка шла на всех ядрах | Сообщение посчитали полезным: hors |
|
Создано: 10 июля 2019 16:00 · Поправил: daFix · Личное сообщение · #20 hors пишет: Ну с дампом проблем никаких нет, а вот процесс снятия конверта может и растянуться. В связи с тем что форум лежал продолжительное время, не мог отписаться. Пока ковырялся по образе, наткнулся на Python! В общем, питоном снял дамп, собрал вроде правильно, по теперь вот ломаю голову как быть с импортом которого в дампе нету. 2ALL: Из за работы могу выделять на задачу максимум час в день, поэтому откладываю варианты связанные с перекомпиляцией ядра. На изучение всего этого уйдёт не один день, думаю ----- Research For Food |
|
Создано: 10 июля 2019 17:40 · Поправил: difexacaw · Личное сообщение · #21 |
|
Создано: 18 июля 2019 16:07 · Личное сообщение · #22 difexacaw пишет: Мне линь не интересен, но интересно чем поможет сборка ядра, тоесть какие изменения нужно и зачем вносить ? а мне винда не интересна я ее дропнул со всех девайсов 4г назад со всеми говнопротами, говноаверами и телеметрией т.е. необходимые изменения, которые нужно вносить вам не должны быть интересны тоже | Сообщение посчитали полезным: Lobido, sefkrd |
|
Создано: 18 июля 2019 17:01 · Поправил: Lobido · Личное сообщение · #23 Во многих системах Linux загрузочный код не хранится в файловой системе с ядром. Вместо этого в MBR находится загрузчик "boot loader", которому известно,в каких блоках находится ядро. В этом случае ядро загружается кодом MBR,а необходимость в дополнительном загрузочном коде файловой системы отпадает. буду рад хоть какой-то информации. Задача минимум - просто снять дамп, максимум - снять конверт. Crackme Linux / C Code:
Программа закодирована / Чтобы получить двоичный файл, сохраните текст ниже в файле с именем c1.bin и затем запустите. $ cat c1.bin | base64 -d | gunzip > c1 $ chmod +x c1 $ objdump -d c1 0x00 Challenger Password: + Checking Password OK. + You did it! + DONE |
|
Создано: 18 июля 2019 20:59 · Личное сообщение · #24 Lobido Code:
Можно вопрос? Ну сделал я этот крякми, и что? За 15 минут в статике разбирается. Каким образом это связано с задачей? ----- Research For Food |
|
Создано: 18 июля 2019 22:57 · Личное сообщение · #25 daFix пишет: Можно вопрос? Ну сделал я этот крякми, и что? За 15 минут в статике разбирается. Каким образом это связано с задачей? Возьми с полки пирожок, вытри пыль и положи обратно | Сообщение посчитали полезным: daFix |
|
Создано: 19 июля 2019 03:32 · Поправил: Lobido · Личное сообщение · #26 Можно вопрос? Ну сделал я этот крякми, и что? За 15 минут в статике разбирается. Каким образом это связано с задачей? > Это намек). Добавлением STAN ,The Ultimate Disassemble возможно генерировать псевдокод из двоичного файла. просто снять дамп, максимум - снять конверт. редактор Bless-hex в помощь (Bless is a Hex Editor ). |
|
Создано: 19 июля 2019 05:14 · Личное сообщение · #27 Lobido Ок. Выше я уже написал о том что получилось питоном снять дамп. И сейчас проблема в том что структуры ELF файла изрядно попорчены протектором. Система - огрызок, в ней ничего нету. Следовательно, устанавливать в систему что-то крайне проблематично Lobido пишет: Добавлением STAN Тут можно поподробнее? Lobido пишет: The Ultimate Disassemble http://www.capstone-engine.org IDA вполне справляется со своей задачей для ковыряния в дампе и реверса алгоритмов шифрования ----- Research For Food |
|
Создано: 21 июля 2019 03:03 · Поправил: difexacaw · Личное сообщение · #28 Lobido Тоесть что бы в линях найти решение обычного юзер крэкми нужно работать с осевым загрузчиком и ядром ? Есчо и в статике разобрать семпл, так это не крэкми тогда получается. Что ты в статике найдёшь в криптованном дампе.. > возможно генерировать псевдокод из двоичного файла. А что делать со статик псевдо-кодом ? У вас какие то специфические крэкми, самые простые походу, без криптовки и паковки. Блокнот что ле отлаживаете и для этого нужно трогать MBR ? > необходимость в дополнительном загрузочном коде файловой системы отпадает. Если такое нужно для отладки простейшего юзер апп, то даже представить стрёмно как отлаживать драйвера или юзер апп сложнее блокнота.. В этих строках чувствуется вся гибкость и удобство линей.) Добавлено спустя 4 минуты daFix В линях наверно свои фишки. Я так и не понял зачем пересобирать ядро, можете объяснить для не шарящих в линях ? ----- vx |
|
Создано: 21 июля 2019 03:59 · Личное сообщение · #29 difexacaw Lobido походу увидел что кто-то реверсит что-то линуховое и не читая темы решил подкинуть крякми. Хз... А товарищи сверху предлагали патчить ядро для обхода ограничения в один отладчик на процесс. Ну или тупо для того чтобы иметь возможность запилить отладку над всеми линуховыми Debug API ----- Research For Food |
|
Создано: 21 июля 2019 04:14 · Личное сообщение · #30 |
. 1 . 2 . >> |
eXeL@B —› Протекторы —› Распаковка Hasp envelop конверта под Linux |