Сейчас на форуме: UniSoft, bartolomeo (+6 невидимых) |
![]() |
eXeL@B —› Программирование —› SFC. |
Посл.ответ | Сообщение |
|
Создано: 31 декабря 2010 18:27 · Поправил: Clerk · Личное сообщение · #1 Здрасте. Допустим получаем мы управление при вызове какого либо кода. При этом получаем адрес возврата или выполняем бактрейс и находим наш скрытый от всех код. Чтоб не позволить это делаем инвалидным адрес возврата и в Ebp загружаем маркер конца цепочки. Тогда детектор не получит так просто адрес на который произойдёт возврат, например: Code:
Вопрос: каким образом можно обнаружить вызывающий код. ![]() |
|
Создано: 01 января 2011 02:18 · Личное сообщение · #2 |
|
Создано: 01 января 2011 02:31 · Личное сообщение · #3 |
|
Создано: 01 января 2011 02:39 · Личное сообщение · #4 |
|
Создано: 01 января 2011 02:47 · Личное сообщение · #5 |
|
Создано: 01 января 2011 09:42 · Личное сообщение · #6 Цель непонятна. Если мы можем увидеть инициализацию, то легко найдем вызывающий код. Считаем ApiPostStub из PbPostProcessInitRoutine, ну а там найдем Tls.Caller. Если мы не можем видеть инициализацию, то и такие извращения не нужны, можно тем же SEH'ом спрятать. ----- Yann Tiersen best and do not fuck ![]() |
|
Создано: 01 января 2011 12:05 · Поправил: Clerk · Личное сообщение · #7 PE_Kill Например перехватили вы функу LoadLibrary() и отслеживаете вызовы из не системных модулей с целью обнаружения постороннего кода в системе, так все детекторы руткитов поступают. Тока мониторят более глубокие ядерные апи. Вот нужно не дать возможность обнаружить вызов. Стаб не известен, он любым может быть. Или более простой пример - ковыряете вы какую либо софтину и сморите колстек когда сработает брейк, это присекается таким образом, дабы сделать видимость системного вызова. ![]() |
|
Создано: 01 января 2011 12:17 · Личное сообщение · #8 |
|
Создано: 01 января 2011 12:19 · Поправил: Clerk · Личное сообщение · #9 Alchemistry Что же я ответил ? Если вы имеете ввиду "глубокие ядерные", то это ничего не меняет. Просто нет смысла приводить вам какието ядерные примеры, если вы даже в юзермоде не можите разобраться. Тут смысл имеет сама концепция вызова апи через системные стабы, что за апи и где она находится совершенно не имеет значения. ![]() |
|
Создано: 01 января 2011 18:54 · Личное сообщение · #10 |
|
Создано: 01 января 2011 19:27 · Личное сообщение · #11 |
|
Создано: 01 января 2011 19:33 · Личное сообщение · #12 |
|
Создано: 01 января 2011 20:01 · Личное сообщение · #13 У тебя ЧСВ зашкаливает, если считаешь местных дураками, зачем сюда ходишь? К слову сказать, если не отвечают, это не значит, что сказать нечего. К примеру, ГС серии вполне себе нормально трассируются самописными движками без дебаг апи. Что касается бактрейса, в общем случае бактрейс нельзя сделать корректно, и с этим ничего не сделать. ![]() |
|
Создано: 01 января 2011 20:14 · Поправил: Clerk · Личное сообщение · #14 Archer У меня чсв не зашкаливает. И дебилами я вас не считаю, иначе не писал ничо. Если вас не устраивают нормальные технические вопросы, то мне даже ответить нечего ![]() С этим вопросом должен был сталкиваться любой, кто хоть раз стек пощупал ![]() Впрочем ваше решение по сути бесполезно, думаю вы понимаете. Защиту обеих цепочек я описал в своём блоге, так что можите тему закрыть и идти медитировать. ![]() |
![]() Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 01 января 2011 20:18 · Личное сообщение · #15 Clerk Помоему ты слишком бурно отметил Новый Год ![]() В обыденной жизни нечто подобное встречается когда идет передача на OEP из пакера/протектора, однако там все стандартно: JMP EAX, PUSH EAX-RET, JMP DWORD PTR DS:[EAX]. Применительно к твоему случаю... можно попробовать EBP восстановить, зная ESP и перебрав стек. ![]() |
|
Создано: 01 января 2011 20:19 · Личное сообщение · #16 |
|
Создано: 01 января 2011 20:20 · Поправил: Clerk · Личное сообщение · #17 |
![]() |
eXeL@B —› Программирование —› SFC. |
Эта тема закрыта. Ответы больше не принимаются. |