Ребят, как отлаживать инжект в исходниках?

Тема в разделе "WASM.BEGINNERS", создана пользователем dyn, 8 июн 2010.

  1. dyn

    dyn New Member

    Публикаций:
    0
    Регистрация:
    30 окт 2009
    Сообщения:
    566
    Привет. Смотрите ситуацию. На сях написана дллка, которая руками подгружается в ап иного процесса. Т.е. размещаются секции, биндится импорт и т.д.


    Потом передается управление на Энтри.
    Так вот
    хочется как-то отлаживать этот код в исходниках, а не на асме. Можно ли как-то это делать? И вообще, как проще всего отлаживать инжекты? расскажите технологию.

    Т.к. я чайник :)

    Заранее спасибо!
     
  2. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.561
    Адрес:
    Russia
    Можно.
    Берешь Windbg например, аттачишься к процессу. В сорце своем ставишь int 3 инструкцию. Ну и инжектишь длл в процесс. Когда сработал бряк, подгружаешь символы длл и сорцы длл (это все есть в меню windbg). Наслаждаешься отладкой по сорцам.
     
  3. dyn

    dyn New Member

    Публикаций:
    0
    Регистрация:
    30 окт 2009
    Сообщения:
    566
    огромное спасибо!
    Скажите, а в Syser-е такое возможно?
     
  4. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    TermoSINteZ
    Слуш, подобные вопросы не редкость! Может ты в свой блог заметку нахерачишь, как это действие творить ? :)
     
  5. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.561
    Адрес:
    Russia
    EvilsInterrupt
    :) Намек понят. Постараюсь найти время. Мне всегда казалось, что эта тема уже так объезжена.
     
  6. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    TermoSINteZ
    Ога, берёшь второй комп или варю и трассируешь этой глюченной древней геррью кодес пока не надоест :lol:
    dyn
    Код на асме и только в нём возможна отладка. Скрипты гуан, отладка их вобще ппц.. херня. Зачем эти извраты ?
     
  7. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.561
    Адрес:
    Russia
    Clerk
    :-D ну лучше бы по сисеру подсказал народу, можно ли туда сурцы пихать.

    На счет глючности спорить не буду. Потому как глупо.
     
  8. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    TermoSINteZ
    В отладчике я не вижу разницы. Собствено там разницы почти нет, они на асме ведь все у меня.
     
  9. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.561
    Адрес:
    Russia
    Clerk
    Ну я то ответить не могу, потому что не имею на текущей машине Syser. Вроде вопрос этот как-то поднимался. И вроде даже ответы были, что сисер не поддерживает сурцы. Могу ошибаться.
     
  10. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Не въехал, что нужно отлаживать. Если этап загрузки, то с отладкой в лодыре проблем быть не должно. Если длл в чужом процессе, то ставим в студии Debugging/command путь к лодырю, бряк и F5.
     
  11. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.561
    Адрес:
    Russia
    Booster
    Ну тут вопрос в том поддерживает ли Syser отладку через сорцы\символы.
     
  12. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    TermoSINteZ
    Насколько мне известно не поддерживает, хотя давно его уже не юзал.
     
  13. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    давнно не запускал :dntknw: но когда запускал поддерживал.
    точнее если через него загружать на выполнение, а на счёт аттача не помню..
     
  14. JCronuz

    JCronuz New Member

    Публикаций:
    0
    Регистрация:
    26 сен 2007
    Сообщения:
    1.240
    Адрес:
    Russia
    Никогда исходный код не отлаживал в Syser но возможность была
     
  15. J0E

    J0E New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2008
    Сообщения:
    621
    Адрес:
    Panama
    WinDbg подгружает символы командой:

    ld ModuleName [/f FileName]

    ModuleName - очевидно имя модуля, так откуда о нем узнает отладчик, если инжект делается вручную?
     
  16. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.561
    Адрес:
    Russia
    J0E
    Если модуль собран с дебаг инфой, то он ее считает и сам подгрузит нужное (частенько бывало).
    То есть отладчик останавливается на бряке внутри модуля который нужно отладить. Если он видит там символы, он их грузит, и сам открывает сорц. Если сорц не открыт автоматом, и символы не подгружены, надо это сделать ручками.

    Отладчик - инструмент, если он сам не понял, значит надо ему подсказать. Нет ничего в этом плохого, и нет в этом ничей вины.

    /off
    EvilsInterrupt
    В блоге сделал статейку, можете читать.
     
  17. J0E

    J0E New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2008
    Сообщения:
    621
    Адрес:
    Panama
    Это все ясно и не имеет отношения к сути, переформулирую вопрос.

    В списке мудулей загруженной РУКАМИ dll нет. Что написать параметром для ld?
     
  18. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.561
    Адрес:
    Russia
    J0E
    Если модуля нету в списке, но он загружен руками, то он добавляется в список, и можно писать ld "заргуженный руками длл модуль". Windbg прекрасно его распознает. Например загрузили руками DLLForInj.dll
    0:005> ld DLLForInj
    Symbols already loaded for DLLForInj

    Как видно - он распознал модуль (не обращаем внимание что символы уже плдгружены - это он он их автоматом подгрузил, так как длл имеет дебаг инфу. здесь важен сам факт распознавания модуля). Правда если модуль удалит себя из списка при загрузке (длл аттач), может будут проблемы. Но тогда надо просто останавливать выполнение на аттаче. И смотреть код.

    Сорри если опять вопрос не так понял :)
     
  19. J0E

    J0E New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2008
    Сообщения:
    621
    Адрес:
    Panama
    Кто и как его будет добавлять в список?
     
  20. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.561
    Адрес:
    Russia
    J0E
    Ну если в список не добавлено, тогда такая команда не поможет. Но проблема надумана. Если вам надо протестировать работу длл (а автору это и нужно, раз он уверен, что она размещается и биндится правильно, и как он сказал ему интересно тестировать код начиная с энтрипоинта длл, а не тот который биндит и связывает), тестируйте ее загружая в процесс с помощью LoadLibrary. Кто мешает?