И это пишет человек, который чуть ранее писал "А это точно соответствует тематике Хабра? Мы тут это… собрались железки и код обсуждать, а не годовасиков с туго-простите-сериками."
В начале статьи было упоминание про кейс, когда админ может просто скопировать файлы БД. Как в таком случае защищает IV от анализа изменений страниц, ведь он доступен злоумышленнику.
А Вы себя считаете Российским программистом? Что в Вас так сказать нашего? Инструменты, языки, железо, все с чем вы работаете иностранного производства. Может быть пальцы, которые по клавиатуре стучат (аналог отвёртки)? Больше похожи на тайвано-индусского программиста. Вы конечно возразите, а как же мозг? Вот у ребят из этой конторы тоже есть мозги, раз они умеют собирать такие вещи. Купите на алике рассыпуху и попробуйте собрать....
Писал с телефона, уж извиняйте. Максимум что здесь выдаст компилятор это предупреждение, но никак не ошибку. А предупреждения можно и случайно отключить...
А как должен выглядеть идиоматичный для данного примера?
Проблема в том что до сих пор C++ это по большому счету сахар над C, как здесь, отдельно std::string и std::string_view написаны на языковых конструкциях C++, но связываются они по сути через C модель работы с памятью.
Не все драйвера видеокарт одинаково полезны :-)
Есть более курьезные случаи… У одного товарища установка мощной видео карты на сервере значительно ускоряло работу сервера 1С: Предприятия. Правда потом выяснилось, что он поймал трояна, который считал биткоины (конечно же на CPU, при отсутствии видео карты), но осадочек остался… :-)
Я утверждаю, что СтрЗаменить транслируется в отдельный ОП-код на основании того, что писал в свое время декомпилятор 1С. Вот несколько ОП-кодов, включая №100:
Отдельный оп-код означает, что это встроенная функция языка, т.е. ее реализация находится в самой машинке языка. Но реализована она, как и остальные функции на обычном с++, по сути как любая библиотечная функция. Полный список встроеных функций языка Вы можете увидеть в справке.
А код в секции //DoSomething может влиять? Я уже больше 10 лет не брал в руки шашки Delphi, нужно по хорошему в дизассемблере смотреть что там происходит. Возможно оптимизации влияют на поведение.
По первой задаче, все может развалится если в параметр AExtraData засунуть ссылку на элемент из массива при условии что на него больше никто не ссылается. Например вызов AddDataToAll(DataArr[0]) уничтожит объект в DataArr[0] на первой итерации, а на второй мы можем развалиться (use after free).
Даже если внутри Remove не обращаются к состоянию Obj, а используют только указатель в качестве ключа, то в многопоточном приложении это может привести к проблемам. После вызова Obj.Free в коллекцию из другого потока могут успеть положить новый объект по этому же адресу.
Бизнес-приложения, созданные с помощью технологий «1C: Предприятия» — это системы с открытым прикладным исходным кодом, написанным на проприетарном языке...
А open-source он разный бывает (из-за ньюансов в лицензиях)
В России две беды, некачественное прототипирование корпусов и дураки это комментирующие
И это пишет человек, который чуть ранее писал "А это точно соответствует тематике Хабра? Мы тут это… собрались железки и код обсуждать, а не годовасиков с туго-простите-сериками."
Все, сдулся? А как дышал, как дышал... ))
Т.е. ключевое здесь, что IV ключ хранится в зашифрованном виде, так?
В начале статьи было упоминание про кейс, когда админ может просто скопировать файлы БД. Как в таком случае защищает IV от анализа изменений страниц, ведь он доступен злоумышленнику.
У вас в свидетельстве о рождении написано что вы именно программист?)) Тело да, произведено в России (СССР), а вот мозги уже непонятно чем наполненны)
А Вы себя считаете Российским программистом? Что в Вас так сказать нашего? Инструменты, языки, железо, все с чем вы работаете иностранного производства. Может быть пальцы, которые по клавиатуре стучат (аналог отвёртки)? Больше похожи на тайвано-индусского программиста. Вы конечно возразите, а как же мозг? Вот у ребят из этой конторы тоже есть мозги, раз они умеют собирать такие вещи. Купите на алике рассыпуху и попробуйте собрать....
Я и хотел спросить- в Вашей реализации обрабатываются все возможные ошибки в utf-8 или не все?
Ключевая идея заключается в том, что практически все ошибки UTF-8 можно детектировать, анализируя только первые два байта каждой последовательности.
Что значит практически все? Нельзя быть немножко беременной, особенно в механизме валидации данных.
Дайте мне, пожалуйста, вон ту красную плюшевую жопу.
Мужчина, это не жопа, а сердце!
Знаете, я 20 лет кардиохирургом работаю. Дайте мне вон ту красную плюшевую жопу.
А если бы акциями Nvidia то уже бы 2-е штуки лежало))
Писал с телефона, уж извиняйте. Максимум что здесь выдаст компилятор это предупреждение, но никак не ошибку. А предупреждения можно и случайно отключить...
А как должен выглядеть идиоматичный для данного примера?
Проблема в том что до сих пор C++ это по большому счету сахар над C, как здесь, отдельно std::string и std::string_view написаны на языковых конструкциях C++, но связываются они по сути через C модель работы с памятью.
std::string_view<char> foo(std::string str) { return str; }
Вот идиоматичный C++11 код, который приводит к use after free.
Есть более курьезные случаи… У одного товарища установка мощной видео карты на сервере значительно ускоряло работу сервера 1С: Предприятия. Правда потом выяснилось, что он поймал трояна, который считал биткоины (конечно же на CPU, при отсутствии видео карты), но осадочек остался… :-)
Отдельный оп-код означает, что это встроенная функция языка, т.е. ее реализация находится в самой машинке языка. Но реализована она, как и остальные функции на обычном с++, по сути как любая библиотечная функция. Полный список встроеных функций языка Вы можете увидеть в справке.
шашкиDelphi, нужно по хорошему в дизассемблере смотреть что там происходит. Возможно оптимизации влияют на поведение.По первой задаче, все может развалится если в параметр AExtraData засунуть ссылку на элемент из массива при условии что на него больше никто не ссылается. Например вызов AddDataToAll(DataArr[0]) уничтожит объект в DataArr[0] на первой итерации, а на второй мы можем развалиться (use after free).
habrahabr.ru/post/269359/#comment_8624505
А open-source он разный бывает (из-за ньюансов в лицензиях)