Привет всем. У меня вопрос по OllyDbg. Есть программа. Вот например код: #include <string> int main() { system("notepad.exe text.txt"); return 0; } Так вот вопрос как запустить отладку этого процесса с отладкой дочернего? Т.е. я хочу отлаживать notepad.exe с переданнами параметрами. Шибко пронырам отвечу, что нет, запустить отладку notepad.exe передав в debug-arguments параметры нельзя. Интересует именно как запустить с отладкой ВСЕХ дочерних просессов или хотябы указанного.
ну вот ведем отладку нашей программы. переходим на call system() в дизасме - тут вызывается новый процесс, а точнее программа целая (notepad) как переключиться на его отладку из текущей отладки? причина такого изврата: в передаваемых параметрах есть непечатаемые символы потому их нельзя указать ВРУЧНУЮ в параметрах.
в Olly нет методов переключится на отладку другого процесса пропишите в Entry Point notepad.exe байты 0xEB,0xFE запомнив оригинальные, после старта процесса notepad.exe приаттачьтесь к нему, на 0xEB,0xFE поставьте брекпоинт, измените байты на оригинальные и вперед, возможно придется подкорректировать eip (new origin here)
нет, в этом случае тред не создается. предложенный способ рабочий, хоть и не очень удобный. вот только вопрос. 0xEB 0xFE на асме как выглядет? каждый раз интерпретируется по разномув дизасме. jmp EIP - нет такого... кто может помочь? Asterix?
Ну никто не отвечает, я отвечу. jmp $ А если в ольке, AFAIK только присваивать именную метку адресу или набирать адрес ручками.
ltshck это jmp "на себя"(jmp $ как писали выше), только зачем вам, в том же hiew можно байтами редактировать, или блокнот просто так для примера был выбран а в реале на месте блокнота ваша прога?
при бряке в айсе, по int 3 (при i3here on) приходится возвращаться назад на 1 байт(r eip eip-1), вот и тут я написал что возможно, т.к. не помню в какой момент Olly остановит отладку
Всем доброго времени суток. Простите заранее за ламерство, но так получилось, помогите со следующем вопросом (дело ДИПЛОМ): нужно просечь с помощью Ollydbg в каком месте, какими командами руткит FUTo захватывает процесс, к примеру notepad.exe Я запускаю notepad.exe и присоединяюсь к нему с помощью Olly и сохраняю все инструкции - получается как будто идеальный вариант, дальше все закрываем, и затем открываем cmd и запускает блокнот и олю, и вот теперь с помощью FUTo, посмотрев номер процесса блокнота, прячем процесс командой fu -ph №процесса и он прячется в task manager и eproces от sysinternals теперь нет процесса блокнота, а мне нужно как то подсоединиться и проанализировать в каком месте, какие инструкции различаются и итерпретировать результат, сравнить с 1) вариантом, без руткита. Подскажите как быть?
Так они ядерные, какая есчо оля, наверно из сипсков в ядре удаляет запись, хотя это ерунда а не сокрытие.
для моего диплома достаточно, но мне надо это обосновать и показать, подскажите пожалуйста как мне отследить после запуска сокрытия процесса того же блокнота, что происходит, к чему надо подцепиться или как вообще? и как там потом следы искать
Как отследить сокрытие процесса ? Очень просто. 1. Выполняем захват шлюза аппаратного прерывания, HalEndSystemInterrupt(), Kei386EoiHelper(), KfRaiseIrql() etc., короче любого кода который вызывается из прерываний, только нужно выполнить перехват соответственно, например точки останова ставить - можно систему подвесить, ибо любой поток свопится. 2. В обработчике перехвата определяем текущий процесс и добавляем его в список процессов. Это делаем несколько секунд. Затем получаем список процессов какимнибудь высокоуровневым способом, например через ZwQuerySystemInformatiuon(именно Zw!). 3. Сравниваем два полученных списка. Если запись есть во втором, а в первом её нет, кричим срытый процесс детектед и рубим систему в бсод, чтоб не напортачил..
Clerk ты прости непросвященного, а по другому никак нельзя сделать? Мысль была такая что в оли мы подцепились к блокноту через список всех процессов, и затем сняли весь листинг дисасемблера. Потом сделали так, запустили cmd, запустили руткит с командой позволяющая скрыть процесс, и указали на этот блокнот, он пропадает из этого списка, но IceSword показывает что его PID теперь 0, и теперь не возможно подсоединиться через Олю через список процессов, так как его нет, и вот как быть? может надо в какой то другой процесс подцепиться и среди него уже рассматривать ситуацию сначал до рута, потом после и уже потом сравнивать изменившиеся команды, и интерпретировать, вот тут происходит передача управления руткиту и он осуществляет сокрытие процесса Подскажи пож-та
Ничего тебе это не даст. При скрытии процесса меняются таблицы ОС. Код процеса не изменяется. Так что даже если ты и приаттачишься - разницы не найдёшь. К тому же раз речь про руткит - он в режиме ядра работает. Чтоб его отлаживать Olly не подойдёт, нужен ядерный отладчик. SoftIce, Syser, WinDbg
спасибо, но тогда не получится делать printscreen(для отчета...) так как в разных кольцах работают...