1. Си / Говнокод #25423

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    #include <stdio.h>
    
    int main(void)
    {
        int a = a;
        printf("%d", a);
        return 0;
    }

    Убрал ворнинг. Проверь.

    https://tio.run/##[email protected]/185My85pzQlVcGmuCQlM18vw46LKzOvRCE3MTNPoyw/M0WTq5pLAQhAgokKtgqJ1mBuQRFQIE1DSTVFSUchURMiWJRaUlqUp2BgzVXL9f//[email protected]@64Yk5OQA

    Запостил: BEKTOPHblu_nETyX, 04 Марта 2019

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

    • Или это спецально так сделано?
      Ответить
    • int a;
      a ^= a;
      Ответить
      • Ты обнулил пельменную. Проверь. Можно было и просто int a = 0. А у меня в пельменной сидит неопределённость.
        Ответить
        • гцц специально 0 записывает, или это просто совпадение?
          Ответить
          • В твой или гуеста? Кмк совпадение. Попробуй свой с -O3
            Ответить
    • tcc не умеет в такие ворнинги. А шланг всё равно ругается.
      Ответить
    • Кстати, а в "C" возможно как-то кроссплатформенно работать со стеком возвратов? Пусь даже через какие-нибудь извращения?
      Ответить
      • У «gcc» есть интринсинки. Смотри ветку отсюда:
        http://govnokod.ru/24763#comment429753

        Я использовал __builtin_frame_address(0), чтобы подменить адрес разврата.
        Ответить
        • А пушать и попать можно?
          Ответить
          • показать все, что скрытоговнокод стал курятником?
            Ответить
            • https://cs7.pikabu.ru/post_img/2014/06/01/7/1401613468_1650463941.jpg

              А что изменилось?
              Ответить
          • Не знаю. Если только отведать икстрима с помощью return, вызова функции, alloca и т. п.

            Идея, как пушить и попать с помощью вызова: объявить функцию с соглашением вызова stdcall (ну чтобы вызывающий код не чистил стек, потому что cdecl всё очистит), но вызвать её не напрямую, а по указателю с каламбуром типов (a la reinterpret_cast).

            Если мы вызываем функцию без аргументов через указатель, кастующий её в функцию одного аргумента, то в стеке останется этот аргумент (push).

            Если мы вызываем функцию одного аргумента через указатель, кастующий её в функцию без аргументов, то она вытащит из стека этот аргумент (pop).
            Ответить
            • А потом придёт компилятор и всех разгонит за UB.
              Ответить
              • Всё так и произошло. Пока не получается реализовать свою задумку. Компилятор слишком хитрый.
                Ответить
            • Первые несколько параметров через регистры же передаются. Надо посмотреть, для скольки параметров будет уже пуш
              Ответить
              • Тут ещё проблема в том, что количество регистров от платформы зависит.

                На платформе x86 __cdecl и __stdcall вообще ничего не передают через регистры, __fastcall у MSVC передаёт два аргумента через регистры, у Борланда –— три аргумента, у Watcom обычно передавались четыре аргумента.

                На платформе x86-64 __fastcall в MSVC передаёт четыре аргумента через регистры, в gcc же через регистры передаётся шесть аргументов.

                На других процессорах опять же придётся смотреть.

                Но сложности не только в этом, а ещё в том, что компилятор ещё пытается по возможности что-то оптимизировать, предполагая, что программист хитрыми приёмами пользоваться не будет.
                Ответить
      • setjmp
        Ответить
    • Спектральный петух, дай мне сылы!
      Ответить
    • Я придумал идею как саммонить олдфагов.
      Регаем учетки на мыла:
      [email protected]
      [email protected]
      И им приходят письма, даже если они отключили уведомления :)
      Ответить
      • > [email protected]
        Не сработает, ЕМНИП, мылосру такого не поддерживает.
        Ответить
        • Поддерживает. Проверил 20 минут назад.
          Ответить
          • Да? Значит, не так давно добавили. Где-то с год или два назад заворачивали.
            Ответить
      • Полный список имейлов в студию!
        Ответить
        • Это я по памяти вспомнил. Где-то тут ещё мыло Ромки проскакивало.
          Ответить
        • Можно набрутфорсить.

          Вот список популярных на российских форумах доменов:
          1. mail.ru, inbox.ru, list.ru, bk.ru ← это независимые домены.
          2. yandex.ru, yandex.com, ya.ru, yandex.by, yandex.ua, yandex.kz, narod.ru ← это псевдонимы одного домена.
          3. gmail.com.
          4. hotmail.com, live.ru, outlook.com.
          5. yahoo.com.
          6. rambler.ru, ro.ru.
          7. i.ua, meta.ua, ukr.net, bigmir.net.
          8. tut.by.
          9. inbox.lv.

          Домены, принадлежавшие компании QIP, проверять нет смысла, потому что у них сейчас почта «переезжает».

          План такой:
          1. Кобенируешь юзернеймы и слова из какого-нибудь словаря с этими доменами.
          2. Считаешь md5 от каждого полученного возможного е-мейла. Получаешь радужную таблицу.
          3. Сравниваешь URL аватаров на «Говнокоде» с вычисленными значениями md5. Если есть совпадение, то с некоторой вероятностью соответствующий е-мейл используется этим юзером.
          Ответить
          • хорошо что у меня мыло на моем домене

            не оченьпонял про пункт 1: де взять словар?
            Ответить
            • Включить фантазию и самому придумать. Как думаешь, какие логины в почте могут быть у местных обитателей?
              Ответить
              • не знаю
                что-нибудь про аниме, педерастию, и еблю нарисованных пони?
                Ответить
                • Кстати, вот тут ещё возможен деанон некоторых обитателей:
                  https://twitter.com/search?f=tweets&q=%22govnokod.ru%22

                  И тут:
                  https://yandex.ru/blogs/search?text=%22govnokod.ru%22
                  Ответить
                  • вот vasily например
                    https://twitter.com/vvscode
                    Ответить
                    • А как думаешь, чувак с юзернеймом https://vk.com/ponyfuck27 может быть говнокодером?
                      Ответить
                      • Если у человека на аватаре или в нике есть слово "пони", значит он вчера ломал чужую прогу сидя в ollydbg, это же очевидно
                        Ответить
                  • https://twitter.com/anne_betrayer/status/942814639511031810
                    Ответить
                  • Эксперт по компьютерной безопасности Сёма
                    https://twitter.com/_alexbelous/status/951224295623200768
                    Ответить
          • Хорошая идея. Давай ты начнешь пейсать, и выкладывать на говнокод. А мы будем обсирать и накидывать идей.
            Ответить
            • Ещё идея. Парсить хабр и другие популярные ресурсы среди говнокодеров. Таких образом можно найти email "Lure of Chaos"-а.
              Ответить
            • Можно дудосить вышеперечисленные домены, тогда при отправке email при ответе на комментарий выведется ошибка с самим email :)
              Ответить
          • Но это только если есть аватар. У василия, емнип, его нету.
            Ответить
      • Уже представил себе.

        From: Говнокод.ру <[email protected]>
        To: striker_nemyx <[email protected]>
        Subject: Подтверждение регистрации на сайте Говнокод.ру

        Hello, striker_nemyx!

        На Ваш e-mail была запрошена регистрация на сайте Говнокод.ру!

        Для подтверждения своих намерений перейдите по этой ссылке:
        http://govnokod.ru/user/confirm?code=0badfacedeadbeefcafebabe

        Внимание! Ссылка будет доступна в течение 3-х суток. Если Вы не подтвердите регистрацию за это время, то пользователь будет удален и процесс регистрации придется начинать заново!

        С уважением, Ваш Говнокод.
        Ответить
        • Кто-то уже отправил? Как будем проверять, что сракер хотя бы прочтет письмо?
          Ответить
          • Я думаю, что если он получит письмо, в котором адресатом будет значиться wiistriker+nemyx, то мы это как-нибудь почувствуем на себе.
            Ответить
            • Проверим
              Ответить
              • Пожалуй, северному ветру пришло время дуть. Я напишу кляузу, с подробным описанием ваших экспериментов. Думаю, админ будет приятно удивлен, узнав, чем занимаются его подопечные.
                Ответить
      • Регнул.
        Ответить
        • Вряд ли они до сих пор юзают эти имэйлы. Но на всяий случай, проверь, вдрун кто-то из них потдвкрдил регисьрацию.
          Ответить
          • Сейчас сменить email или телефон - гарантированный гемор. Так что лучше не менять.
            Ответить

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