PTRACE_TRACEME в челлендже не убивается ни патчем, ни LD_PRELOAD — что я упускаю?

Рейтинг: 51% · 4 голосов
Capture The Flag, реверс бинарных файлов, разработка эксплойтов, ассемблер, форензика, крэкми и задачи по информационной безопасности.
Аватара пользователя
kernel_veteran
Сообщения: 63
Зарегистрирован: 11 май 2026, 06:09

PTRACE_TRACEME в челлендже не убивается ни патчем, ни LD_PRELOAD — что я упускаю?

Сообщение kernel_veteran »

Сижу над крякми с HTB, классика: ptrace(PTRACE_TRACEME, 0, 0, 0) в начале, если под отладкой — программа кидает мусор вместо флага. Запатчил вызов на NOP в IDA, всё равно ловлю битый вывод. LD_PRELOAD с фейковым ptrace тоже не помог. Где подвох?
👍2 ❤️ 🔥1 😄 🤔
✔ Лучший ответ сформирован автоматически — grpcsre
coder_vasya писал(а):Возьмите frida и хукните ptrace на уровне ABI, ей вообще пофиг raw syscall это или libc frida Interceptor цепляется за адрес функции. а если они дергают syscall инструкцией прямо в коде, то никакой функции ptrace там нет, хукать тупо нечего. тебе тогда Stalker с перехватом svc, а это уже не 5 строк жс. так что 'пофиг raw syscall' это слишком оптимистично
Перейти к ответу →
Аватара пользователя
overflown
Сообщения: 13
Зарегистрирован: 12 май 2026, 02:37

Re: PTRACE_TRACEME в челлендже не убивается ни патчем, ни LD_PRELOAD — что я упускаю?

Сообщение overflown »

О, вот это похоже на правду. То есть мой LD_PRELOAD на сам ptrace из glibc не сработает, если они дёргают syscall инструкцией напрямую?
👍2 ❤️1 🔥3 😄3 🤔
Аватара пользователя
svelte1
Сообщения: 30
Зарегистрирован: 13 май 2026, 13:06

Re: PTRACE_TRACEME в челлендже не убивается ни патчем, ни LD_PRELOAD — что я упускаю?

Сообщение svelte1 »

+1 к raw syscall. Сейчас это стандарт в нормальных челленджах, наивный IsDebuggerPresent-аналог давно никого не держит. Загляни ещё в проверку /proc/self/status поле TracerPid — её часто ставят рядом.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
haskell_chan
Сообщения: 22
Зарегистрирован: 14 май 2026, 13:46

Re: PTRACE_TRACEME в челлендже не убивается ни патчем, ни LD_PRELOAD — что я упускаю?

Сообщение haskell_chan »

TracerPid это вообще боль. Под gdb он не ноль, и они это палят простым open+read. Лечится тоже LD_PRELOAD на open/openat и подсовыванием своего файла, но проще пропатчить сравнение.
👍3 ❤️ 🔥2 😄2 🤔2
Аватара пользователя
basedgoblin
Сообщения: 13
Зарегистрирован: 11 май 2026, 19:11

Re: PTRACE_TRACEME в челлендже не убивается ни патчем, ни LD_PRELOAD — что я упускаю?

Сообщение basedgoblin »

Проверил — есть и open("/proc/self/status"). Их там целых три уровня защиты, я думал это лёгкий челлендж на 20 очков лол.
👍1 ❤️ 🔥2 😄 🤔
Аватара пользователя
vault_lord
Сообщения: 6
Зарегистрирован: 27 май 2026, 11:32

Re: PTRACE_TRACEME в челлендже не убивается ни патчем, ни LD_PRELOAD — что я упускаю?

Сообщение vault_lord »

20 очков и три антидебага это даже мило. В моё время ptrace на самого себя ставили чтобы НИКТО потом не подключился, форк-бомбой self-trace. Подключаешься gdb — а слот уже занят, EPERM в лицо.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
tommee
Сообщения: 64
Зарегистрирован: 11 май 2026, 02:37

Re: PTRACE_TRACEME в челлендже не убивается ни патчем, ни LD_PRELOAD — что я упускаю?

Сообщение tommee »

Кстати тот самый трюк с self-ptrace через форк до сих пор живой в реальной малвари, не только в CTF. Родитель трейсит ребёнка, ты не можешь влезть ни к одному из них без убийства пары.
👍1 ❤️ 🔥1 😄 🤔
Аватара пользователя
coder_vasya
Сообщения: 73
Зарегистрирован: 12 май 2026, 05:35

Re: PTRACE_TRACEME в челлендже не убивается ни патчем, ни LD_PRELOAD — что я упускаю?

Сообщение coder_vasya »

А почему все мучаются с gdb? Возьмите frida и хукните ptrace на уровне ABI, ей вообще пофиг raw syscall это или libc, она инструментирует по адресу. 5 строк на JS.
👍2 ❤️ 🔥 😄 🤔
Аватара пользователя
zfsandy
Сообщения: 11
Зарегистрирован: 14 май 2026, 15:51

Re: PTRACE_TRACEME в челлендже не убивается ни патчем, ни LD_PRELOAD — что я упускаю?

Сообщение zfsandy »

Ну можно Stalker натравить и трейсить блоки, ловить svc/syscall. Но согласен, для одного бинаря оверкилл, проще nop.
👍1 ❤️ 🔥1 😄 🤔
Аватара пользователя
matguyvr
Сообщения: 65
Зарегистрирован: 14 май 2026, 08:48

Re: PTRACE_TRACEME в челлендже не убивается ни патчем, ни LD_PRELOAD — что я упускаю?

Сообщение matguyvr »

Самый ленивый путь: запусти под qemu-user в режиме отладки или подними в Unicorn эмуляторе, там никакого реального ptrace для ОС нет, все проверки видят чистую среду. Иногда быстрее чем выковыривать все три флага.
👍 ❤️ 🔥1 😄 🤔
Ответить
Поделиться темой: ✈ Telegram VK

Вернуться в «CTF и реверс-инжиниринг»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость