Security Beyond Memory SafetyPerspective Security Beyond Memory Safety Using Modern C++ to Avoid Vulnerabilities by DesignMax Hoffmann Security Beyond Memory Safety CppCon 2024 2 Security Beyond Memory Safety Using Modern C++ to Security Beyond Memory Safety CppCon 2024 3 FIFTY SHADES OF SHOOTING YOURSELF IN THE FOOT WITH A RAILGUNMax Hoffmann Security Beyond Memory Safety CppCon 2024 4Max Hoffmann Security Beyond Memory Safety CppCon Security Beyond Memory Safety CppCon 2024 6Max Hoffmann Security Beyond Memory Safety CppCon 2024 7Max Hoffmann Security Beyond Memory Safety CppCon 2024 8Max Hoffmann Security Beyond Memory Safety CppCon0 码力 | 79 页 | 4.15 MB | 6 月前3
A Relaxed Guide to memory_order_relaxedA Relaxed Guide to memory_order_relaxed Hans Boehm Paul E. McKenney Google Facebook CPPCON 2020std::atomic/std::atomic_ref and memory_order_relaxed ● C++ atomic sacrificing the simple threads-as-interleaving semantics ● by passing memory_order enum values to explicit atomic operations. ● In particular, memory_order_relaxed allows arbitrary visibility reordering with respect About memory_order_relaxed? ● Just a load, just a store: Full control, excellent efficiency and scalability! ○ Assuming aligned machine-sized atomic objects, that is…What is Not to Like About memory_order_relaxed0 码力 | 32 页 | 278.53 KB | 6 月前3
Practical memory pool based allocators for Modern C++© 2019 Apex.AI, Inc. Safe and certified software for autonomous mobility TM Practical memory pool based allocators for Modern C++ by Misha Shalem misha.shalem@apex.ai © 2020 Apex.AI, Inc.● CppCon Andreas Pasternak ● Quote: “Memory pools and allocators are only one piece of the solution” Today we going to talk about this one piece in (more) depth © 2020 Apex.AI, Inc.Memory allocations in real-time practically for C++ memory allocations? We asked an independent 3rd party safety assessor and the answer was “It should comply to Autosar C++ 14 Coding Guidelines regarding memory allocations” © 20200 码力 | 49 页 | 986.95 KB | 6 月前3
Object Introspection: A Revolutionary Memory Profiler for C++ ObjectsBar std::string Bar std::string Bar std::stringObject Introspection (OI) Goals • Byte level memory footprint analysis for objects • Complete object type hierarchies • Dynamic allocations and containers hierarchy from a given root type • Understand the layout in memory of the entire hierarchy • Understand how to interpret data at memory offsets • Understand containers • Compiler generated debug Object Introspection Measurement Code Code GenerationApplied Example 1 • Unused container memory: Unused Sz = (C.capacity() - C.size()) * sizeof(element) Name TypeName Number ElemStatSz Length0 码力 | 62 页 | 2.24 MB | 6 月前3
C++ Memory Model: from C++11 to C++23Memory Model C++11 – C++23About Me: alex.dathskovsky@speedata.io www.linkedin.com/in/alexdathskovsky https://www.cppnext.comAlex Dathskovsky | alex.dathskovsky@speedata.io | www.linkedin.com/in/a hazards • an instruction can be executed when its operands have been calculated or loaded from memory • an instruction stalls if operands are not availableAlex Dathskovsky | alex.dathskovsky@speedata com/in/alexdathskovsky Reordering Types • Data dependencies must be honored • C++ compiler may reorder any memory access under the as-if rule • Different processors have different reordering guarantiesAlex0 码力 | 112 页 | 5.17 MB | 6 月前3
Compile-Time Compression and Resource Generation with C++20from code at compile-time Be used to construct: Lookup Tables Con�guration Fuses Compressed Strings USB Descriptors 2 . 1/ Along the way Introduce some libraries I created for this code Discuss some 1; // ERROR } 5/ Building Resources Lookup Tables Con�guration Fuses Compressed String Tables USB Descriptor Code samples available on GitHub https://github.com/AshleyRoll/cppcon21 6 . 1/ Why Initialise hardware before the processor starts Fixed locations in Flash memory, �lled with bit- mapped magic values Sets up clocks, memory segments, watchdog timer JTAG debug, code security, and much more0 码力 | 59 页 | 1.86 MB | 6 月前3
Sender Patterns to Wrangle Concurrency in Embedded Devicesallocator we don't have an rtos 3STM32L432KC 26 GPIO 14 communication interfaces (USB, SAI, I2C, CAN, …) Quad SPI memory interface 11 Timers 3 cap-sense channels 1 ADC 2 DAC 4Interruptstime EXTI2 5Interrupts0 码力 | 106 页 | 26.36 MB | 6 月前3
ConcurrencyOlsen - Back to Basics: Concurrency DATA RACES Data race: 1. Two or more threads access the same memory 2. At least one access is a write 3. The threads do not synchronize with each other A data race racesCppCon 2023 56 David Olsen - Back to Basics: Concurrency DATA RACES It’s all about visibility of memory changes When threads synchronize, changes made by one thread are guaranteed to be visible in the SYNCHRONIZATION: THREAD CREATION Creating a thread synchronizes the parent and child threads All memory changes in parent thread before thread creation are visible in the child threadCppCon 2023 660 码力 | 160 页 | 2.91 MB | 6 月前3
So You Think You Can HashRecipe 🧾 Even a complicated class is ultimately made up of scalars, located in discontiguous memory. hash_append() appends each byte to the HashAlgorithm state by "recursing down" into the aggregated Recipe 🧾 Even a complicated class is ultimately made up of scalars, located in discontiguous memory. hash_append() appends each byte to the HashAlgorithm state by "recursing down" into the aggregated overload will either call hash_append() on its bases and members, or it will send bytes of its memory representation to the HashAlgorithm (scalars) No type is aware of the concrete HashAlgorithm implementation20240 码力 | 119 页 | 6.54 MB | 6 月前3
Newer Isn't Always BetterInvestigating the new patterns with the same scrutiny as the old • Tend to make our initial evaluation and stick with it • Is it a Fad or is it good? Initial Discoveryatomosspace.com | 6 Investigative Process0 码力 | 60 页 | 1.34 MB | 6 月前3
共 241 条
- 1
- 2
- 3
- 4
- 5
- 6
- 25













