вопрос OllyDbg к спецам

Тема в разделе "WASM.BEGINNERS", создана пользователем ltshck, 5 ноя 2007.

  1. ltshck

    ltshck New Member

    Публикаций:
    0
    Регистрация:
    5 ноя 2007
    Сообщения:
    195
    Привет всем. У меня вопрос по OllyDbg.
    Есть программа.

    Вот например код:
    #include <string>
    int main()
    {
    system("notepad.exe text.txt");
    return 0;
    }

    Так вот вопрос как запустить отладку этого процесса с отладкой дочернего?
    Т.е. я хочу отлаживать notepad.exe с переданнами параметрами.

    Шибко пронырам отвечу, что нет, запустить отладку notepad.exe передав в debug-arguments параметры нельзя.

    Интересует именно как запустить с отладкой ВСЕХ дочерних просессов или хотябы указанного.
     
  2. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    точнее формулируйте вопрос

    в диалоге открытия файла в Olly можно указать параметры командной строки
     
  3. ltshck

    ltshck New Member

    Публикаций:
    0
    Регистрация:
    5 ноя 2007
    Сообщения:
    195
    ну вот ведем отладку нашей программы.
    переходим на call system() в дизасме
    - тут вызывается новый процесс, а точнее программа целая (notepad)
    как переключиться на его отладку из текущей отладки?

    причина такого изврата: в передаваемых параметрах есть непечатаемые символы
    потому их нельзя указать ВРУЧНУЮ в параметрах.
     
  4. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    в Olly нет методов переключится на отладку другого процесса

    пропишите в Entry Point notepad.exe байты 0xEB,0xFE запомнив оригинальные, после
    старта процесса notepad.exe приаттачьтесь к нему, на 0xEB,0xFE поставьте брекпоинт,
    измените байты на оригинальные и вперед, возможно придется подкорректировать eip
    (new origin here)
     
  5. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    Asterix
    Можно поинтересоваться, с чего бы это?
     
  6. ltshck

    ltshck New Member

    Публикаций:
    0
    Регистрация:
    5 ноя 2007
    Сообщения:
    195
    супер! что надо. спасибо

    только вопрос на асме как это пишется?

    jmp EIP = EB FE?
     
  7. twgt

    twgt New Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    1.494
    Break on new thread?!
     
  8. ltshck

    ltshck New Member

    Публикаций:
    0
    Регистрация:
    5 ноя 2007
    Сообщения:
    195
    нет, в этом случае тред не создается.
    предложенный способ рабочий, хоть и не очень удобный.

    вот только вопрос.

    0xEB 0xFE на асме как выглядет?
    каждый раз интерпретируется по разномув дизасме.

    jmp EIP - нет такого...

    кто может помочь? Asterix?
     
  9. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    Ну никто не отвечает, я отвечу. :)
    jmp $
    А если в ольке, AFAIK только присваивать именную метку адресу или набирать адрес ручками.
     
  10. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    ltshck
    это jmp "на себя"(jmp $ как писали выше), только зачем вам, в том же hiew можно байтами редактировать,
    или блокнот просто так для примера был выбран а в реале на месте блокнота ваша
    прога?
     
  11. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    при бряке в айсе, по int 3 (при i3here on) приходится возвращаться назад на 1 байт(r eip eip-1),
    вот и тут я написал что возможно, т.к. не помню в какой момент Olly остановит отладку
     
  12. Sn1per4y

    Sn1per4y New Member

    Публикаций:
    0
    Регистрация:
    7 май 2009
    Сообщения:
    4
    Всем доброго времени суток. Простите заранее за ламерство, но так получилось, помогите со следующем вопросом (дело ДИПЛОМ): нужно просечь с помощью Ollydbg в каком месте, какими командами руткит FUTo захватывает процесс, к примеру notepad.exe
    Я запускаю notepad.exe и присоединяюсь к нему с помощью Olly и сохраняю все инструкции - получается как будто идеальный вариант, дальше все закрываем, и затем открываем cmd и запускает блокнот и олю, и вот теперь с помощью FUTo, посмотрев номер процесса блокнота, прячем процесс командой fu -ph №процесса и он прячется в task manager и eproces от sysinternals теперь нет процесса блокнота, а мне нужно как то подсоединиться и проанализировать в каком месте, какие инструкции различаются и итерпретировать результат, сравнить с 1) вариантом, без руткита.
    Подскажите как быть?
     
  13. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Так они ядерные, какая есчо оля, наверно из сипсков в ядре удаляет запись, хотя это ерунда а не сокрытие.
     
  14. Sn1per4y

    Sn1per4y New Member

    Публикаций:
    0
    Регистрация:
    7 май 2009
    Сообщения:
    4
    для моего диплома достаточно, но мне надо это обосновать и показать, подскажите пожалуйста как мне отследить после запуска сокрытия процесса того же блокнота, что происходит, к чему надо подцепиться или как вообще? и как там потом следы искать
     
  15. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Как отследить сокрытие процесса ?
    Очень просто.
    1. Выполняем захват шлюза аппаратного прерывания, HalEndSystemInterrupt(), Kei386EoiHelper(), KfRaiseIrql() etc., короче любого кода который вызывается из прерываний, только нужно выполнить перехват соответственно, например точки останова ставить - можно систему подвесить, ибо любой поток свопится.
    2. В обработчике перехвата определяем текущий процесс и добавляем его в список процессов. Это делаем несколько секунд. Затем получаем список процессов какимнибудь высокоуровневым способом, например через ZwQuerySystemInformatiuon(именно Zw!).
    3. Сравниваем два полученных списка. Если запись есть во втором, а в первом её нет, кричим срытый процесс детектед и рубим систему в бсод, чтоб не напортачил..
     
  16. Sn1per4y

    Sn1per4y New Member

    Публикаций:
    0
    Регистрация:
    7 май 2009
    Сообщения:
    4
    Clerk
    ты прости непросвященного, а по другому никак нельзя сделать?
    Мысль была такая что в оли мы подцепились к блокноту через список всех процессов, и затем сняли весь листинг дисасемблера.
    Потом сделали так, запустили cmd, запустили руткит с командой позволяющая скрыть процесс, и указали на этот блокнот, он пропадает из этого списка, но IceSword показывает что его PID теперь 0, и теперь не возможно подсоединиться через Олю через список процессов, так как его нет, и вот как быть? может надо в какой то другой процесс подцепиться и среди него уже рассматривать ситуацию сначал до рута, потом после и уже потом сравнивать изменившиеся команды, и интерпретировать, вот тут происходит передача управления руткиту и он осуществляет сокрытие процесса

    Подскажи пож-та
     
  17. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    Ничего тебе это не даст.
    При скрытии процесса меняются таблицы ОС. Код процеса не изменяется.
    Так что даже если ты и приаттачишься - разницы не найдёшь.
    К тому же раз речь про руткит - он в режиме ядра работает.
    Чтоб его отлаживать Olly не подойдёт, нужен ядерный отладчик.
    SoftIce, Syser, WinDbg
     
  18. Sn1per4y

    Sn1per4y New Member

    Публикаций:
    0
    Регистрация:
    7 май 2009
    Сообщения:
    4
    спасибо, но тогда не получится делать printscreen(для отчета...) так как в разных кольцах работают...
     
  19. newbie553

    newbie553 New Member

    Публикаций:
    0
    Регистрация:
    1 май 2009
    Сообщения:
    20
    хороший фотоаппарат со штативом. м?
     
  20. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    Запускай всё это хозяйство под виртуальной машиной, и делай себе скриншоты.