Кресты / Говнокод #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 Petro-san, (Updated )

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

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

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

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

                            Если бы просто все, это было бы не так страшно... Но ты им ещё и должен останешься.
                            Ответить
                            • А что будет, если я чисто теоретически не отдам долг и буду прятаться от 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..
                    Ответить
          • Нужно писать 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-совместимого компьютера на K155ЛА3 держать в бумажном виде.
                      Ответить
                      • Ну хоть в прошлое за ним не придётся возвращаться...
                        Ответить
        • В динамически подгружаемую библиотеку. И в момент компиляции её компилятору не показывать, вдруг проанализирует.
          Ответить
          • и тут ее уже выпилит сам процессор:)
            Ответить
              • Ну так он в блокчейн нули отправит, а в памяти оставит старые данные. Тлен и безысходность.
                Ответить
                • Нужно заменить память на блокчейн. Только представь: все измененеия памяти автоматически всем видны. Можно откатиться на любое состояние (ну разумеется если состояние программы описывается только памятью, а не регистрами и тем, что в устройствах)
                  Ответить
                  • Не использовать регистры, обязательно дублировать всё в памяти. Возможность восстановления после критических ошибок того стоит. А как геймеры оценят постоянное автосохранение! Память стоит дешевле времени программиста.
                    Ответить
                      • > Да и диски больше не нужны.

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

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

                                  Т.е. мутабельно получается.
                                  Ответить
                              • Во время push (и pop) аппендишь в блокчейн запись в духе "на вершине стека лежит 42, следующая запись по оффсету 100500". Удалять и править ничего не надо.
                                Ответить
                                  • Ну а если просто про память, а не про блокчейн, то:
                                    // push
                                    top = new Node(value, top);
                                    
                                    // pop
                                    top = top->next;
                                    Зачем тебе всю структуру перехерачивать то при удалении элемента? Это же стек, из середины никто ничего не удаляет.
                                    Ответить
                                      • Я его восстановил. Теперь пусть остальные участники решают какая из мультивселенных им больше нравится.
                                        Ответить
  • Всё в порядке.

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

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

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

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

Где здесь C++, guest?!

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


    8