1. Pascal / Говнокод #13220

    +127

    1. 1
    2. 2
    3. 3
    4. 4
    function GetBiosNumber: string;
     begin
       result := string(pchar(ptr($FEC71)));
     end;

    Windows NT поддерживает прерывания!!! А Вы знали?

    Запостил: Stertor, 23 Июня 2013

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

    • Где здесь прерывания, Stertor?!
      Ответить
      • показать все, что скрытоНу, если даже не прерывание, то в любом случае, обращение к какому-то недействительному/запрещенному указателю памяти. Винда NT прихлопнет такую прогу. А вот на 98/Me он (код) выполнится.
        Ответить
        • > Винда NT прихлопнет такую прогу.
          Линух тоже. Не зря же режим работы проца называется "защищенным".

          А прерывания, кстати, действительно есть до сих пор. Сейчас для скорости общение с ядром производится через sysenter/sysexit, но прерывание, емнип, никуда не делось, можно пихать аргументы и вызывать функции ядра в обход ntdll :)

          P.S. Я не понял, в чем заключаются breaking news этого поста. Сможете пояснить?
          Ответить
          • Программам прерывания вызывать не обязательно, а вот внутри винда их использует.
            Ответить
          • Прерывания разве можно под NT вызывать из 3 кольца?
            Ответить
            • Можно некоторые. И даже можно писать в порты ввода вывода. Для этого есть IO карта разрешенных портов и в векторе прерываний прописаны уровни разрешений
              Ответить
    • Нашлась ещё одна занятная константа 0xFECAL
      Ответить
    • показать все, что скрытоя поставлю всем минусы. ахахахахах)
      (Trollface)
      Ответить
      • о неет, пощады, всемогущий!
        Ответить
      • Если ты плюнешь на коллектив — коллектив утрётся.
        Если коллектив плюнет на тебя — ты утонешь.
        Ответить
        • показать все, что скрытоБорманд, чую я, что "коллектив" действительно утрется - языком.
          Не надо так близко к сердцу принимать; это всего лишь сайт. В конце концов, солнце же не перестанет светить)
          Ответить
          • > Не надо так близко к сердцу принимать
            Вы так говорите, как будто я принимаю это близко к сердцу ;)
            На ГК любой комментарий является сарказмом, если не указано обратное.
            Ответить
            • это не мой код) в сети нашел. Этот, и еще про клаву с хуками. Вот остальные - да.
              Ответить
        • показать все, что скрытоТебе напомнить настоящее положение вещей, мудило?
          Ответить
          • anonimb84a2f6fd141 , судя по твоим высказываниям, у тебя неплохая попка. Я бы, с тобой, ну... Ну ты меня понял...
            Ответить
          • Я не пойму, иногда этот анонимб84а пишет нормально, иногда он начинает кукарекать. Там двое под одной учёткой?
            Ответить
            • Их легион, это же анонимусы. Они иногда и друг с другом через одну учетку общаются.
              Ответить
            • показать все, что скрыто>>Я не пойму, иногда этот анонимб84а пишет нормально, иногда он начинает кукарекать. Там двое под одной учёткой?
              Под моей учеткой весь сайт,ибо я публиковал свой пароль, в надежде на бан, однако даже я себя относительно культурно веду. Во всяком случае пытаюсь изо всех сил.
              Ответить
              • > публиковал свой пароль, в надежде на бан
                Говнокод жесток и бессердечен. Здесь некому протянуть соломинку бана, и спасти тонущего новичка...

                P.S. И пароль сменить, емнип, нельзя.
                Ответить
                • Пост удален.

                  Модератор
                  Ответить
                  • Если зарегистрировались под своими данными -это Ваша проблема. Надо было раньше думать!
                    Ответить
                  • Модераст-пидораст.

                    Модератор
                    Ответить
                    • anonimb84a2f6fd141 ,stertor,iking - не перестанете флудить, забаню. Последнее китайское!!


                      Модератор
                      Ответить
          • Напомни.
            Ответить
      • поставил топику плюс только из страха
        авансом

        хотя - id 5934 - не такой уж и нуб
        должен уже ориентироваться что к чему
        Ответить
        • > id 5934
          Надо нарегать четырехзначных ID, чтобы потом продавать их.
          Ответить
        • plusplus, о чем идет речь? Я действительно, не понимаю. Просветите?
          Ответить
          • минусы ставят всегда субъективно, попал или не попал в тренд

            конкретно этот говнокод - при каком царе горохе оно работало? где ты его откопал?
            Ответить
            • В сети нашел. Его предлагают как вариант для получения номера биоса. Ради интереса скомпилировал и запустил - винде это очень не понравилось, обматерила меня и прибила процесс. А вот 98 он сработал, правда выдал малопонятный мусор.
              Ответить
        • А как посмтреть свой id?
          Или у тех, кто зареген под openid его нет?
          Ответить
    • Ебать что за дельфинарий
      Ответить
    • Тарас, когда-то бы я посмеялся вместе с тобой. Я тоже не любил раньше делфи, но бейсик перестал меня возбуждать, а в c++ пока не лез. API учу.
      Ответить
    • показать все, что скрытоОлолололо--ТрололололоОлолололо--Трололололо
      пилять, не фсе цвета поттершифаитОлолололо--ТрололололоОлолололо--Трололололо
      пилять, не фсе цвета поттершифаитОлолололо--ТрололололоОлолололо--Трололололо
      пилять, не фсе цвета поттершифаит
      Ответить
    • показать все, что скрытоПриходите на наш сайт : yadelphi.ru
      Ответить
      • я думал дельфины вымерли, а оказывается кроме долбоеба Березняка еще некрофилы есть
        Ответить
        • показать все, что скрытоА можно вопрос. КОМУ КАКОЕ НАХУЙ ДЕЛО, ЧТО ТЫ ТАМ ДУМАЕШЬ?!!
          Ответить
          • Это одно из направлений сайта - стебать некрофилов вроде перлоебов.
            Ответить
            • Если кто-то кое-где у нас порой
              Сишачку учить не хочет,
              Значит, снова нам идти в незримый бой,
              Так назначено судьбой для нас с тобой —
              Говнокоды, дни и ночи!
              Ответить
            • Ну выучу потом, какие проблемы. Я не ленивая свинья. Вижуал Бейсик я одолел сам - меня никто не учил. Потом и автоит, PureBasic. А теперь дорос и до Делфи.
              Ответить
    • Пост удален.

      Модератор
      Ответить
      • Здесь нет модератора, умора. После -11 пост уходит с главной.
        Ответить
        • Да ну, на хуй! А кто тогда удаляет мои посты, и подписывается "модератор"? Или это кто-то палку гнет?
          Ответить
          • Это админ священник. Скоро и тебя выпилят на хуй. Не хуй генофон портить.
            Ответить
            • Очень прекрасно будет. Жду, не дождусь.
              Ответить
            • > генофон
              Устройство для передачи звука посредством генов?
              Генетический фон в окружающем нас мире?
              Ответить
              • или, скорей, записи. граммофон, магнитофон, генофон...
                Ответить
                • сексофон
                  Ответить
                  • это когда даже соседи выходят покурить?
                    Ответить
                    • ага, мой возбужденный хуй по кругу. Трубка мира
                      Ответить
                      • бля, ну не надоело пошлить?
                        чтоб ты жил в мире порно, чтоб тебя однажды стало тошнить от этого всего, но тебе бы упорно везде рисовался извращенный секс. чтоб ты даже когда пошел попить чаю, а там у чайника член, и их него в чашку тебе течет моча.

                        заебал.
                        Ответить
                        • а в чашку тебе течет семенная жидкость.
                          Ответить
                          • кааааааааааааааааааааааааааааааайф...

                            Это значит, что на втором этаже в кран дрочит толпа парней, так получается?
                            Ответить
                          • в общ, оставь при себе свои сексуальные фантазии.
                            Ответить
                            • Lure Of Chaos, у тебя есть парень?
                              Ответить
                              • это я типа заступаюсь за своего онального друга оооо )
                                Ответить
                              • зачем мне?
                                у меня лучше, у меня есть женщины.

                                а ты поищи себе подобного, тут под одним ником видимо много братьев по твоему разуму
                                Ответить
                                • Ну, на всякий случай. Мало ли что...
                                  Ответить
                                  • ага, если вдруг попа зачешется
                                    Ответить
                                    • короче, регистрируем 20 аккаунтов (ну или больше), и далее оперируем с ними - поочередно отправляем пост запрос. Куки-менеджеры, естественно, должны быть раздельными, для каждого клиента. Если кому-то "всыпать" репу -20 -мало не покажется. Я написал программу для массовой регистрации аккаунтов в яндексе. Интересует?
                                      Ответить
                                • сообщение удалено.

                                  Модератор
                                  Ответить
                                  • ну смотря как посмотреть)
                                    Ответить
                                    • Сообщение удалено.

                                      Представитель Пентагона
                                      Ответить
                                      • Сообщение удалено.

                                        Экс-министр Чехословакии
                                        Ответить
                                        • Сообщение удалено.

                                          Девочкомальчик
                                          Ответить
                                          • Сообщение удалено.

                                            Крокодил Гена
                                            Ответить
                                          • Сообщение удалено.

                                            Герцог Йеллоунстонский
                                            Ответить
                                            • Подрочил я короче и иду к шифанеру чтобы трусы сменить. Открываю дверцу а там сидит Lure Of Chaos совершенно голый, но в резиновых сапогах, улыбается и манит меня пальчиком.
                                              Ответить
                                              • Это не Lure Of Chaos, а я был)
                                                Ответить
                                                • бля предыдущее сообщение это провокация.
                                                  Это Lure Of Chaos сам с собой пиздит.
                                                  Ответить
                                                  • А-а-а! Все, я разобрался. Я не к шефонеру подходил, а к трельяжу с зеркалом. Спиану сразу не разобрался.
                                                    Ответить
                                                    • Плюсатор однозначно будет вредоноснее, чем минусатор. Да и не так банально.
                                                      Ответить
                                                      • хоть по рублю мне скиньтесь. Я вам прогу вместе с исходниками дам. Правда, выход готовых аккаунтов небольшой - от 20 до 30 акков за сеанс(
                                                        Ответить
                                                      • хоть по рублю мне скиньтесь. Я вам прогу вместе с исходниками дам. Правда, выход готовых аккаунтов небольшой - от 20 до 30 за сеанс(
                                                        Ответить
                                                      • Ты дебил чтоли? Чем плюсатор от минусатора отличается? Ну школота.
                                                        >Хотя я и сам не профи.
                                                        У меня уже есть готовый, мудило.
                                                        Ответить
                                                        • если честно, плюсатор мне больше нравится.
                                                          Ответить
                                                        • Ты определись уже.
                                                          Ответить
                                                          • Сообщение удалено.

                                                            Анонимный доброжелатель
                                                            Ответить
                                                            • Давай вместе по teamviewer у напишем? на Indy. А то столько троллили и флудили, а результат нашего пребывания здесь - 0? Так не годится.
                                                              Ответить
        • Говнокоды уходят раньше.
          Ответить
    • показать все, что скрытоХочу предупредить всех, просматривающих форум: НЕ регистрируйтесь с Вашей основной почты!!!!
      Ответить
    • показать все, что скрытоИнтригует.
      Ответить
    • Блядь, ну откуда набежало таких дебилов? Я не против веселья, но такая школота?
      Ответить
    • Ты мне ответь, будешь мне помогать или нет?
      Я сваливаю с темки.
      Ответить
    • Пошли нахуй, короче. Все сообщения удалили. Я тебе мейл давал - туда и пиши. а здесь нехуй слюной брызгать.
      Ответить
    • Ох, ничосе какой праздник незнания основ тут в комментах:) Я знал конечно что в наше время молодежь начинает знакомство с программированием с JavaScript, но вот чтоб до такой степени.

      1) Разумеется, NT поддерживает прерывания (как любая ОС для PC, потому что другого способа получить сообщение от железа нет). Только они тут не причем.
      2) софтварные прерывания (инструкция INT) поддерживаются для входа в защищенный режим старыми программами, но последние версии уже так не делают (ибо теперь нужна инструкция SYSENTER), но они тут не причем.
      3) То, куда ты залез, называется BIOS DATA AREA: http://stanislavs.org/helppc/bios_data_area.html. По адресу FC00 находится Bios Data Rom, из его "хвостика" ты и попытался считать версию.
      4) Для программ защищенного режима современные NT ничего такого уже не поддерживают, так как нужно это только для эмуляции DOSа, скорее всего твой шедевр не взлетит на NT, а только на 9x.
      Ответить
      • Ну давай поговорим об этом, а то после десятого коммента все ушли обсуждать стертора и минусы...

        > другого способа нет
        Есть - поллинг никто не отменял.

        > нужна инструкция sysenter
        Что-то мне намекает, что оба способа до сих пор должны работать. Можно проверить.

        > но они тут не причем
        А через что по-твоему сегфолт и пейджфолт обрабатываются?

        > 9х
        Я не уверен, там же уже была нормальная изоляция процессов (хотя в порты всё ещё давали срать, емнип). И вряд ли в первый мегабайт виртуальной памяти мапали первый мегабайт физической. Так что разве что на 3.1 или в эмуляторе доса взлетит.
        Ответить
        • Ладно, косячу с терминологией. Пейджфолт официально относится к exceptions а не к interrupts.
          Ответить
          • SemaReal
            Опять сам с собой пиздишь? Это диагноз, Илья.
            Ответить
        • >>Есть - поллинг никто не отменял.
          Хочешь систему, которая полингом опрашивает и USB хаб с HID (на котором кнопочку раз в год нажимают) и сетевую карту (где кадр нужно срочно забирать из буфера)?

          >>Что-то мне намекает, что оба способа до сих пор должны работать
          Скорее всего да, ибо обратная совместимость, а MS о ней очень печется (кто видал список программ в shims database в App Compat Toolkit тот в цирке не смеется)

          С другой стороны _хорошие_ программы напрямую сисколы не дергают: они юзают официальный API, а он под капотом поменялся в XP (кажется, тогда перешли на sysenter).

          >>А через что по-твоему сегфолт и пейджфолт обрабатываются?
          а где тут фолты?
          Кроме того давай таки разделять:

          Прерывания:
          Hardware Interrupt -- пришел через APIC от какой-то шины или родился внутри APIC (в таймере, например)
          Software Interrupt -- вызов инструкции int. Я сказал что прикладнику он нужен только для сисколов, но на самом деле есть еще божественный int 3 (aka 0xCC) -- софтварный брейкпоинт.

          Exceptions(исключения же) генерятся самим процессором в ответ на какие-то действия:
          Faults: могут быть исправлены, IP (емпним) возвращается на инструкцию, вызывавщую fault, то-есть обработчик может исправить (подругрузить страницу в память, например) и реланчнуть инструкцию
          Trap: вызывается ПОСЛЕ инструкции (IP показывает на след. инструкцию) и, в принципе, на него можно забить. Обычно используется для дебага (если идет обращение по адресу, записанному в регистр для DR* или вызывается int3)
          Abort: когда все оче плохо, например при обработке Fault произошел еще один Fault.

          Так что pagefault это exception типа fault а не interrupt, хотя адрес обработчика pagefault наверное лежит в _Interrupt_ Description Table чтобы смущать умы.

          to be cont
          Ответить
          • > сетевую карту
            > срочно забирать
            Дык у всех нормальных карт там давным-давно bus master. И буфер в твоей оперативке. Вроде даже драйверы 10gb/s карточек в линухе как раз на поллинге по таймеру делали, иначе даже с прерываниями по watermark'у систему штормило.
            Ответить
            • Ебать, ты лох. Лечись.
              Ответить
            • Я и говорил про буфер в оперативке, слава богу начиная с шины PCI карты могут уметь в BM, а в PCI Express так все практически умеют. Но и в оперативке-то буфер не безграничен.

              Я знал только что серьезные адаптеры позволяют выбирать через сколько кадров дергать прерывание чтобы не дергать на каждый, или же вообще управляют этим динамически: т.н. adaptive irq management, врубается через ethtool. Но вот сейчас вижу что то, о чем ты говоришь называется NAPI: https://en.wikipedia.org/wiki/New_API и похоже что является хорошим решением.

              Вообще прерывания от NIC известная боль у админов, некторые админы старались привязать все прерывания к отдельному ядру (irqbalance)
              Ответить
          • > Хочешь систему, которая полингом опрашивает и USB хаб с HID (на котором кнопочку раз в год нажимают)
            Я, конечно, не настоящий железячник, но разве «USB» так и не работает — постоянным опросом? Там жеж, ЕМНИП, в протоколе прерываний хоста не предусмотрено.
            Ответить
          • > Хочешь систему, которая полингом опрашивает

            Это смешно, конечно. Но такая "ось" сейчас в каждом компе стоит и помогает настоящей операционке загрузиться.
            Ответить
        • (часть 2)
          >>Я не уверен, там же уже была нормальная изоляция процессов
          Ну как минимум там была виртуальная память:)
          >>(хотя в порты всё ещё давали срать, емнип).
          Думаю что не во все: давайте будем втроем одновременно писать в IO порт видеоадаптера, и что это будет?:) Вот для досовых программ там были vxd драйвера которые "эмулировали" IO.
          В TSS был IO Permission Map, и скорее всего там многое было запрещено.

          >>И вряд ли в первый мегабайт виртуальной памяти мапали первый мегабайт физической
          Ну где-то же он этот код откопал? Можно представить что этот код под паскаль под дос, но вряд-ли. Значит, он под винду, и у кого-то он работал. Вот на семерке у меня этот адрес даже не замаплен. Я и предположил что оно работало под 9x.

          >>Так что разве что на 3.1 или в эмуляторе доса взлетит.
          В DOSBox может полететь, но лучше читать тогда 0xfe061
          https://github.com/Henne/dosbox-svn/blob/master/src/ints/bios.cpp (1107)
          Ответить

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