1. C++ / Говнокод #27289

    0

    1. 1
    Как крестьяне говна поели

    This function is defined as the RtlSecureZeroMemory function (see WinBase.h). The implementation of RtlSecureZeroMemory is provided inline and can be used on any version of Windows (see WinNT.h.)

    Use this function instead of ZeroMemory when you want to ensure that your data will be overwritten promptly, as some C++ compilers can optimize a call to ZeroMemory by removing it entirely.

    Запостил: Petro-san, 10 Марта 2021

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

    • иншо кажется совсем ебанулся у себя в огородике

      Школоло (753) Школоло (194)
      Ответить
      • это очень важная функция. ты как бы говориш... Пароль тут - срочно смотри сюда :)
        Ответить
    • RtlRealZeroMemory
      Ответить
      • PHP32
        Ответить
      • RealBobbyTables
        Ответить
      • вопрос времени уже когда соме догадаются что этот вызов тоже можно выкинуть
        Ответить
        • От глобальной оптимизации даже в другой модуль её не спрячешь... Разве что на асме написать, чтобы конпелятор суть не понял.
          Ответить
          • просто нужно написать свой, правильный компилятор
            Ответить
            • > правильный компилятор

              Который понимает асм и умеет выбрасывать куски из него.
              Ответить
              • На нейросетях и глубоком обучении. И ещё с блокчейном.
                Ответить
                • serverless забыл.
                  Ответить
                  • Термин serverless, кстати, лучше бы подошел к p2p и mesh сетям, но хипстеры его почему-то применяют к облачной питушне. Наверное, не знают, что «облако» там не в буквальном смысле, а в переносном, и всё равно у них всё выполняется на серверах.
                    Ответить
                    • P2P и mesh скорее client-less, раз все друг друга обслуживают по кругу.
                      Ответить
                    • серверлесс это в том смсле, что тебе не нужно свой сервер (vps) иметь
                      Ответить
                      • Облако – это тот же VPS, но с возможностью быстрого масштабирования.
                        Ответить
                        • но только ты его не админишь, и вообще не знаешь чт там за ось
                          Ответить
                          • А ещё можно попасть на $$$ и потерять ВСЕ деньги.
                            Ответить
                            • > ВСЕ

                              Если бы просто все, это было бы не так страшно... Но ты им ещё и должен останешься.
                              Ответить
                              • Amazon Prime открывает категорию organ implants
                                Ответить
                              • А что будет, если я чисто теоретически не отдам долг и буду прятаться от Amazon & Co?
                                Ответить
                                • При регистрации в AWS ты им обязан все свои явки и пароли слить. В отличии от DO, кстати.
                                  Ответить
                                  • Помнится тут сёме не повезло, и ему что-то пришлось подтверждать даже на ДО.
                                    Ответить
                                    • Его, видимо, уже везде знают.
                                      Ответить
                                    • И когда он заходит в магазин, продавец запирает холодильник на ключ
                                      Ответить
                                  • Там только адрес, банковская карта и телефон заставляют напрячься, но:

                                    Адрес же не обязательно свой писать. Карту можно одолжить. Симку можно купить в переходе или найти на помойке.

                                    Затем можно пользоваться AWS, а если случится багор, то просто создать новый аккаунт.
                                    Ответить
                            • да, в AWS особенно

                              поставил галочку не думая, и каждый заход пользователя на сайт стал стоить тебе $ 199, например
                              Ответить
                          • Сфига ли я не знаю? Образ какой оси в конфу autoscaling группы засунул, такая и будет. Можешь даже админить это дело, если хочешь.
                            Ответить
                            • ты не путаешь serverless с обычныи autoscaling, котоые создают тебе ec2 машинки?

                              serverless это AWS lambda

                              https://aws.amazon.com/ru/lambda/

                              ты просто даешь им скрипт, и просишь его запускать по условию где-то
                              Ответить
                              • Где здесь serverless, booratihno?
                                Трейс-дамп треда:

                                > Облако – это тот же VPS
                                H: Subject="Облако"

                                > но только ты его не админишь
                                H: Subject="Облако"

                                > Образ какой оси в конфу autoscaling группы засунул, такая и будет.
                                H: Subject="Облако"
                                H1: админишь(EC2) -> админишь(Subject)
                                Ответить
                                • там еще такой шаг был:

                                  me: серверлесс это в том смсле, что тебе не нужно свой сервер (vps) иметь

                                  Отсюда я сделал вывод, что "облако" в данном скопе это алиас для серверлесса.

                                  Если же то не так, то прошу прощения.

                                  Обычные ec2 действительно создаются из нужного образа или вручную или как скейлинг группы
                                  Ответить
                                  • Я принял гипотезу, что лолечка говорил именно об облаке в целом, ибо для серверлесс гипотеза "облако — это как VPS" скорее неверна, а мы тут никогда не ошибаемся.
                                    Ответить
                    • > но хипстеры его почему-то применяют к облачной питушне

                      Ну не говорить же "я копирую файлы на shared hosting".
                      Ответить
                      • милениалы изобрели шаред хостинг
                        Ответить
                        • serverless это шаред хостинг

                          синглтон это глобальная переменная

                          умывальник это писсуар

                          окно это дверь
                          Ответить
                  • облачный компилятор на микросервисах, уважающий права меньшинств
                    Ответить
                  • >serverless

                    скомпилировал chromium - пришлось продавать квартиру чтобы оплатить счет aws
                    Ответить
                    • Решил попробовать новую хипстерскую штуку по наводке дево-пса с хабра

                      а

                      Считаеш, загружаеш

                      а

                      Приходит счёт

                      а

                      Продаёш сервера компании, чтобы достать деняк

                      а

                      Ммм... serverless..
                      Ответить
                  • > serverless

                    https://i.imgur.com/F0sI8Uv.jpg
                    Ответить
            • Нужно писать self-aware программы, которые детектят, что их скомпилировали с -O2 и совершают судоку.
              Ответить
              • Нужно формально доказать, что память затирается нулями. Тогда конпелятор никуда не денется.
                Ответить
                • А ты докажи что не затерлась!
                  Ответить
                  • > А ты докажи что не затерлась!

                    При этом не нарушая Стандарт и не наступая в UB, угу.
                    Ответить
                • Потом придётся доказать, что компайлер в функции-доказательстве ничего не выкинул, и так далее.
                  Ответить
                  • > и так далее

                    А корень доверия на крестах и его проверить нечем.
                    Ответить
                  • Кстати, вот большинство конпеляторов (или вообще все современные?) бутстрапятся из сишки. А первосишка, написанная на чём-то другом, всяко уже затерялась в веках, да и запустить её будет не на чем.

                    Если у меня есть только исходники конпеляторов но не осталось ни одного бинаря, это провал?
                    Ответить
                    • > Если у меня есть только исходники конпеляторов но не осталось ни одного бинаря, это провал?

                      СТРАУСТРУП нанял ФУНКЦИОНАЛЬЩИКА СО ШТАНГОЙ за 5 тысяч рублей. Так как компьютера у них не было, ФУНКЦИОНАЛЬЩИК вначале написал на бумажке компьютер в 1 строчку НА ХАСКЕЛЕ:

                      Computer = Computer

                      ФУНКЦИОНАЛЬЩИК сожрал бумажку и высрал работающий системный блок с ВОДЯНЫМ ОХЛАЖДЕНИЕМ и предустановленой WINDOWS 7. На компьютере уже был установлен АЛАН ВЭЙК и ХАСКЕЛЛ ПЛАТФОРМ. Корпус был красного цвета, с наклейкой ТУРБО на прозрачной боковой крышке. Затем ФУНКЦИОНАЛЬЩИК написал в 2 строчки старую версию G++:

                      <code>Compiler :: [C++SourceCode] -> [ExecutableFile]

                      Compiler source =(Link . Compile) source</code>
                      Ответить
                    • На асемблере под PDP-7?
                      Ответить
                      • Нужно ещё принципиальную схему PDP-7-совместимого компьютера на K155ЛА3 держать в бумажном виде.
                        Ответить
                        • Ну хоть в прошлое за ним не придётся возвращаться...
                          Ответить
          • В динамически подгружаемую библиотеку. И в момент компиляции её компилятору не показывать, вдруг проанализирует.
            Ответить
            • и тут ее уже выпилит сам процессор:)
              Ответить
            • В микросервис на другой машине.
              Ответить
              • в блокчейн

                оттуда не выпилить
                Ответить
                • Ну так он в блокчейн нули отправит, а в памяти оставит старые данные. Тлен и безысходность.
                  Ответить
                  • Нужно заменить память на блокчейн. Только представь: все измененеия памяти автоматически всем видны. Можно откатиться на любое состояние (ну разумеется если состояние программы описывается только памятью, а не регистрами и тем, что в устройствах)
                    Ответить
                    • Не использовать регистры, обязательно дублировать всё в памяти. Возможность восстановления после критических ошибок того стоит. А как геймеры оценят постоянное автосохранение! Память стоит дешевле времени программиста.
                      Ответить
                      • Да и диски больше не нужны.
                        Ответить
                        • > Да и диски больше не нужны.

                          Да и компьютеры больше не нужны. Как в "городе перестановок", только вместо пыли — блокчейн.
                          Ответить
                      • А есть же стековые машины типа JVM, там вообще регистров нету.

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

                                    Т.е. мутабельно получается.
                                    Ответить
                                • Во время push (и pop) аппендишь в блокчейн запись в духе "на вершине стека лежит 42, следующая запись по оффсету 100500". Удалять и править ничего не надо.
                                  Ответить
                                  • А, вы о блокчейне.

                                    Начало ветки не читал.
                                    Ответить
                                    • Ну а если просто про память, а не про блокчейн, то:
                                      // push
                                      top = new Node(value, top);
                                      
                                      // pop
                                      top = top->next;
                                      Зачем тебе всю структуру перехерачивать то при удалении элемента? Это же стек, из середины никто ничего не удаляет.
                                      Ответить
                                      • Не пиши в удалённый тред
                                        Ответить
                                        • Я его восстановил. Теперь пусть остальные участники решают какая из мультивселенных им больше нравится.
                                          Ответить
                                  • Ветка https://govnokod.ru/27289#comment614209 vanished.
                                    Ответить
                                    • Зачем ты её заванишил, я хранил там биткоины (((
                                      Ответить
                            • Создаёшь копию стека без последнего лемента.
                              Ответить
            • Доброй ночи, [email protected].
              Ответить
    • Всё в порядке.

      ZeroMemory обещает заполнить блок нолями ради удобства программиста, не более.
      А если ты поверх пишешь другие данные или теряешь доступ к этим, то компилятор имеет полное право его выкинуть.

      А SecureZeroMemory дает гарантию затирания данных.

      Другая семантика совершенно.
      Ответить

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