Куча говна / Говнокод #27112 Ссылка на оригинал

0

  1. 1
bp kernelbase!VirtualAlloc " .printf \"\n\n\n\nBytes allocated: %lu (k)\n\n\n\",(@rdx/0n1024); k 8"

Давайте течь от windbg

Запостил: MAPTbIwKA MAPTbIwKA, (Updated )

Комментарии (76) RSS

  • а вы скрипутете свой дебагер? а нормальном языке или вот как я?
    Ответить
    • > на нормальном языке

      А там есть? Вроде только этот встроенный и джаваскрипт.

      З.Ы. Хотя вроде ещё питон можно привернуть.
      Ответить
      • именно у windbg изначально был только "этот" и свои extы можно было писать на сишечке:)
        А потом появился NatVis (для красивого предсталвеняи) и теперь вроде стало можно JS.

        У lldb был питон уже очень давно, у gdb вроде какой-то свой был
        Ответить
    • Нет, не жаль.
      Никто кроме борманда не понял что это.
      Ответить
      • гост тоже понял, скорее всего

        но в целом да: низкоуровневую винду из здешней публики хорошо понимает тока борманд
        Ответить
        • Да я тоже только местами. Глубоких знаний нету, с чем столкнулся - то помню.
          Ответить
          • совсем глубокие наверное тока у чуваков c osr есть, и в MS, но обычно если понимаешь общую архитектуру, то можно разобраться

            Кстати забавно, что лоу-левел питушня в винде весьма логична и внятна, а высокоуровневое говно обычно хуже документировано: какой-нить cbs хуй поймешь вообще
            Ответить
            • Ну я так понял, они специально стараются не документировать своё говно. Чтобы потом не пришлось его поддерживать.

              Так ты на свой страх и риск ковыряешься, а с докой у тебя уже будут претензии если они что-то поменяют.
              Ответить
              • да, вероятно. но обратной стороной этого является непонимание администратором своей системы. какие-то сервисы что-то делают, какие-то логи пишут, какие-то ошибки выдают, а зачем все это? что с этим делать?
                бугурт
                Ответить
                • Обратитесь к системному администратору в техподдержку.
                  Ответить
                  • она платная кстати вроде

                    бесплатно тебе могут присоветовать откатиться к точке восстановления или обратиться к сертифицированному майкрософтом эники (инженер или как он у них там назывался)
                    Ответить
                      • ну да, а если не поможет, то сделает sfc /scannow или clean reinstall

                        который реально разбирается в винде называется филд инжинер, и он стоит очень дохуя, его арендуют только если у тебя бизнес на винде и колом стал
                        Ответить
  • А я за «x64dbg». Там, помимо дебаггера, встроена и функциональность «IDA» в миниатюре: хрефы, ренеймы, структуры, все дела. И условные бряки без пердолинга ставить можно.
    Ответить
      • Насколько я знаю — нет, только анскильный юзермод. И, как я уже говорил, дебажить код разной битности не умеет. А жаль.
        Ответить
        • А к дебаг портам виртуалок умеет? Ну хотя там обычно gdb'шный протокол, всяко должен.
          Ответить
            • Почему именно x64dbg, кстати?
              Почему не ollydbg, например?
              Ответить
              • «Ollydbg» сгнил. В сущности, «x64dbg» сделан как раз по образу и подобию «Olly».
                Ответить
                • понятно. Древние у меня сведения

                  Я еще помню был софтайс для ядра вроде
                  Ответить
                    • да, вероятно

                      я помню, что во времена w2k не было живого отладчика ядра у MS (всмысле нельзя было на хост системе даже структуры и переменные позырить), но он был у русиновича, и давался вместе с книжкой, а вроде софтайс умел, если я не путаю

                      Кстати, у прыщей долгое время вообще не было отладчика ядра (Линус был против), но потом завезли

                      А у опзди есть только постмортен дебаг, по дампам
                      Ответить
                      • Ну а сейчас на хосте уже никто и не отлаживается... Проще виртуалку поднять или рядом тачку поставить.
                        Ответить
                        • это да. Но можно посмотреть какие-нить переменные ядра, но там нужно включать какой-то говключ в bcd, иначе ядро нахуй пошлет

                          а когда я про w2k читал виртуалок не было, и русиновичевский дебагер очень рулил, чтоб не подключать вторую тачку по кому
                          Ответить
                          • Выключить секьюр бут, ребутнуться, включить отладку в бцд, ребутнуться...
                            Ответить
                              • в досе можно было дебажить что угодно debug.comом, но я вот не знаю как там можно было бы дебажить, например, обработчик прерывания от клавиатуры
                                Ответить
                                • Ну ты и в венде его на себе не подебажишь...

                                  Именно поэтому я за отладку через кабель.
                                  Ответить
                                  • или через неймпд пайп, угу

                                    кстати, о портах: у винды есть возможность запустить на ком(ну верояно еще 1394 и усб) консоль "Special Administration Console", примерно как прыщи могут там гетти запустить

                                    если у тебя на работает сеть на сервере, то ты можешь по идее пробросить этот порт куда-нить и добраться по cmd или повершел


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

                                        причем как я понел -- в обычных виндах ты можешь только бутменю покрутить, а sac есть только в сервере

                                        это как если бы ты к кому только груб подключил, а не ядро и не терминалы

                                        >r <pid> Raise the priority of a process by one.

                                        ого, какая важная хуйня

                                        ради нее стоит лезть в такие ебеня
                                        Ответить
                            • угу

                              вроде можно выбрать еще debug из меню, или это было когда еще в boot.ini писали /debug ..
                              Ответить
                              • > из меню

                                Ты его вызови ещё, лол. Я умею только соснольной командой или джвумя резетами. Но, возможно, есть и более практичные способы...
                                Ответить
                                • f8 нажать?

                                  ну секур бут нужно убрать наверное, да.

                                  но я не биоспитух в целом, мне эти ваши заморочки не понятны
                                  Ответить
                                  • Нее... F8 в винде давно уже не работает. Они же дрочат на скорость загрузки, а ожидание кнопки будет занимать значительную часть времени.
                                    Ответить
                                    • в семерке работает. У меня там в меню рекавери мод стоит, например

                                      в десятке может и не работает. нужно брать bcdedit и зырить опции, возможно что и меню нужно включать

                                      оо
                                      ты прав

                                      bcdedit /set {default} bootmenupolicy legacy
                                      Ответить
                                      • Да, семёрка это вроде последняя ось, где работала эта кнопка.

                                        А сейчас я в основном через джва резета туда захожу, это реально редко надо. После пары быстрых сбросов винда думает что её хуёво и сама показывает меню.
                                        Ответить
                                        • вруби bootmenupolicy legacy жеж


                                          блядь, как я ненавжиу бцд

                                          как можно было внятный нормальный текстовый файл поменять на говно с бинарным хуево документированным форматом (реестр вообще официально документировал кто-то кроме руссинвича?) и дать в придачу хуевую (и тоже весьма хуево документированную) утилиту

                                          зачем? зачем?
                                          Ответить
                                          • > вруби bootmenupolicy legacy жеж

                                            Чтобы комп грузился на секунду дольше? Нафиг надо.
                                            Ответить
                                            • виртуалка, на которой ты дрова дебажишь?
                                              Ответить
                                              • Тем более. На каждой загрузке виртуалки целую секунду терять. Да и не факт, что вовремя давить F8 удобнее чем просто 2 раза резетнуть. Менюха реально редко нужна.

                                                З.Ы. А если реально что-то сломал - она сама вылезет.
                                                Ответить
        • З.Ы. Вот чем виндбг охуенен - им можно дебажить юзермодный процесс через ядерное подключение. Это иногда прям кучу времени экономит.
          Ответить
          • да, там можно посмотреть память юзермодного процесса и вроде даже бряку поставить
            алсо, он умеет читать и красиво показывать всякие TEB, PEB итд

            Ну и ядро умеет
            Ответить
            • > ядро умеет

              Ну да, по набору хелперов для ядра у него нету конкурентов, наверное.
              Ответить
              • угу, всякие !pool там

                эти же структуры нихуя неось нормально не документированы, так что логично, что их умеют понимать только писатели экстеншенов из майкрософта
                Ответить
    • в windbg тоже можно ставить условные бряки, но с помощю скрипта и инструкции .if
      типа если выполнилось нужное выражение -- бряк, иначе гоу дальше
      Ответить
  • блядь, ну как же я теку-то.
    bp kernel32!WriteConsoleW ".printf \"%mu\", @rdx"
    Ответить
    • В винде уже можно дебажить ядро без второго компа или виртуалки, чтоб как в SoftICE когда-то было?
      Ответить
      • А это вообще как? Вот поставил я бряк где-нибудь в драйвере клавиатуры — а как потом g ввести?
        Ответить
        • https://community.osr.com/discussion/9670/debugging-keyboard-driver

          >However, since Softice's actual processing of the keys happens directly
          >from the IDT, and does not intefere with the keyboard driver, you can set
          >breakpoints at various points inside the default keyboard driver (which
          >Softice patches successfully) and step through them successfully in
          >Softice. (Just be aware that any read/writes to the I/O ports may be out of
          >sync).
          Ответить
          • ну то есть у него свой драйвер был по сути, свой обработчик прерывания
            Ответить
        • И если у тебя идет отладка через COM порт, ты ж тоже не сможешь отлаживать саму эту питушню с COM портом (отлаживать хуйню которая в самом этом WinDBG что-то мутит по COM порту) таким образом
          Ответить
          • Логично. Именно поэтому в XHCI прикрутили специальный дебаг интерфейс, независимый от основного, чтобы ты мог отлаживать драйвер USB подключаясь через USB.
            Ответить
      • А надо? Второй комп или виртуалку дебажить и удобнее и безопаснее.
        Ответить
      • можно только читать состояние ядра, а ставить бряки нельзя конечно
        Ответить
      • P. S. Тьфу, перепутал его с «gdb». Современную гуйню приделали, с лентами и тёмной темой.
        Ответить
            • > radare2

              Если бы его не фанаты vim'а пилили - я бы тоже был за... Я не осилил, короче.
              Ответить
        • слва богу, потому что интерфейс у него пидарский совершенно, и как из 1995-го года

          я пол дня убил, пока настроил нормальные шрифты, фон, расположение окон итд
          Ответить
          • > я пол дня убил, пока настроил

            А потом всё это проебалось? Я до сих пор не понимаю, как старый виндбг переключал профили.
            Ответить
            • а потом сохранил воркспейс, и все.

              я не знаю кстати, где он это хранит. Там можно экспортнуть в файл, но по умолчанию хз где это, может что и в реестре

              вроде как воркспейс привязан к бинарю, процессу или дампу, но есть дефолтный
              Ответить
  • https://habr.com/ru/company/jugru/blog/326454/

    > Если вы когда-либо занимались удаленной отладкой с помощью Visual Studio, самая большая проблема для вас была в том, что нужно было настроить аутентификацию Windows. Вы должны либо использовать домен, в котором находятся оба компьютера, либо установить локальных пользователей с одинаковыми именем и паролем на обеих машинах — совсем нетривиальный процесс.

    Какой пиздец (((

    >В WinDbg таких требований нет, вы можете использовать пароль, вы можете использовать различные транспорты, включая именованные каналы, TCP, SSL, просто HTTP — доступна уйма опций, среди которых можно выбирать.

    А еще есть gdbserver.exe
    Ответить
    • > настроить аутентификацию

      Лолшто, кто-то реально её настраивает а не ставит галку "пускать всех"?
      Ответить
    • что нетривиального в создании пользователя на винде?
      Ответить
      • Создавать пользователей -- это задача для системного администратора! А я программист, мне отлаживать код надо.

        З.Ы. Поэтому я ставлю галку no authentication и теку.
        Ответить

Добавить комментарий

Из-за тебя ушел bormand, guest!

    А не использовать ли нам bbcode?


    8