 2020: The Year of Sanitizers?d:\compiler-rt\lib\sanitizer_common\sanitizer_common_interceptors.inc:764 in __asan_wrap_memset Shadow bytes around the buggy address: 0x300abf30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x300abf70: 00 00 00 00 00 00 00 00 0x300abfd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Shadow byte legend (one shadow byte represents 8 application bytes): Addressable: 00 Partially addressable: bb ASan internal: fe Left alloca redzone: ca Right alloca redzone: cb Shadow gap: cc ==27748==ABORTING Clang/LLVM75 2020 Victor Ciura | @ciura_victor - 2020:0 码力 | 135 页 | 27.77 MB | 6 月前3 2020: The Year of Sanitizers?d:\compiler-rt\lib\sanitizer_common\sanitizer_common_interceptors.inc:764 in __asan_wrap_memset Shadow bytes around the buggy address: 0x300abf30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x300abf70: 00 00 00 00 00 00 00 00 0x300abfd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Shadow byte legend (one shadow byte represents 8 application bytes): Addressable: 00 Partially addressable: bb ASan internal: fe Left alloca redzone: ca Right alloca redzone: cb Shadow gap: cc ==27748==ABORTING Clang/LLVM75 2020 Victor Ciura | @ciura_victor - 2020:0 码力 | 135 页 | 27.77 MB | 6 月前3
 Embracing an Adversarial Mindset for Cpp SecurityBase Log Format (BLF) Format 0x0000 Control Block 0x0400 Control Block Shadow 0x0800 Base Block 0x8200 Base Block Shadow 0xFC00 Truncate Block 0xFE00 Truncate Block ShadowCVE-2023-28252 Exploitation Format 0x0000 Control Block 0x0400 Control Block Shadow 0x0800 Base Block 0x8200 Base Block Shadow 0xFC00 Truncate Block 0xFE00 Truncate Block Shadow Block Format 0x0000 CLFS_LOG_BLOCK_HEADE start Record[0] ... Record[n]CVE-2023-28252 Exploitation Modifications made to the Base Block and Base Shadow Block offset 0x858 to 0x369 offset 0x1dd0 to 0x15a0 offset 0x1dd4 to 0x1570 offset 0x1de0 to 0xC1FDF0080 码力 | 92 页 | 3.67 MB | 6 月前3 Embracing an Adversarial Mindset for Cpp SecurityBase Log Format (BLF) Format 0x0000 Control Block 0x0400 Control Block Shadow 0x0800 Base Block 0x8200 Base Block Shadow 0xFC00 Truncate Block 0xFE00 Truncate Block ShadowCVE-2023-28252 Exploitation Format 0x0000 Control Block 0x0400 Control Block Shadow 0x0800 Base Block 0x8200 Base Block Shadow 0xFC00 Truncate Block 0xFE00 Truncate Block Shadow Block Format 0x0000 CLFS_LOG_BLOCK_HEADE start Record[0] ... Record[n]CVE-2023-28252 Exploitation Modifications made to the Base Block and Base Shadow Block offset 0x858 to 0x369 offset 0x1dd0 to 0x15a0 offset 0x1dd4 to 0x1570 offset 0x1de0 to 0xC1FDF0080 码力 | 92 页 | 3.67 MB | 6 月前3
 ethercat stackcurrent_status_ = {}; uint8_t status_toggle_ = 0x01; uint16_t app_loop_count_ = 0; uint16_t app_loop_count_shadow_ = 0xdead; enum class bus_cycle_result : uint8_t { waiting, have_msg, invalid_cycle }; bus_cycle_result ecat_data::status_mode::can_error; } return as_status(toggle_status(status_mode), app_loop_count_shadow_, hw_status_word); } app ecat_data::status_out get_cyclic_status() { using ecat_data::as_status; ecat_data::status_mode::can_error; } return as_status(toggle_status(status_mode), app_loop_count_shadow_, hw_status_word); } app ecat_data::status_out get_cyclic_status() { using ecat_data::as_status;0 码力 | 65 页 | 2.54 MB | 6 月前3 ethercat stackcurrent_status_ = {}; uint8_t status_toggle_ = 0x01; uint16_t app_loop_count_ = 0; uint16_t app_loop_count_shadow_ = 0xdead; enum class bus_cycle_result : uint8_t { waiting, have_msg, invalid_cycle }; bus_cycle_result ecat_data::status_mode::can_error; } return as_status(toggle_status(status_mode), app_loop_count_shadow_, hw_status_word); } app ecat_data::status_out get_cyclic_status() { using ecat_data::as_status; ecat_data::status_mode::can_error; } return as_status(toggle_status(status_mode), app_loop_count_shadow_, hw_status_word); } app ecat_data::status_out get_cyclic_status() { using ecat_data::as_status;0 码力 | 65 页 | 2.54 MB | 6 月前3
 Just-in-Time Compilation - J F Bastien - CppCon 2020architectural state (registers and memory), or simulate details such as non-architectural state (shadow registers, etc), timing of instructions, caches, memory, etc. This is very slow to interpret. Embra Valgrind’s unique support for shadow values—a powerful but previously little-studied and difficult-to-implement dynamic binary analysis technique, which requires a tool to shadow every register and memory tools such as ATOM, and go extremely far in the analysis capabilities. In particular, Valgrind uses shadow values to track extra facts about registers and memory to unlock new superpowers. Folks are used0 码力 | 111 页 | 3.98 MB | 6 月前3 Just-in-Time Compilation - J F Bastien - CppCon 2020architectural state (registers and memory), or simulate details such as non-architectural state (shadow registers, etc), timing of instructions, caches, memory, etc. This is very slow to interpret. Embra Valgrind’s unique support for shadow values—a powerful but previously little-studied and difficult-to-implement dynamic binary analysis technique, which requires a tool to shadow every register and memory tools such as ATOM, and go extremely far in the analysis capabilities. In particular, Valgrind uses shadow values to track extra facts about registers and memory to unlock new superpowers. Folks are used0 码力 | 111 页 | 3.98 MB | 6 月前3
 Some Things C++ Does Rightstuck. So you gradually need a const version of everything that isn't const, and you end up with a shadow world. In C++ you get away with it, because as with anything in C++ it is purely optional whether stuck. So you gradually need a const version of everything that isn't const, and you end up with a shadow world. In C++ you get away with it, because as with anything in C++ it is purely optional whether So you gradually need a const version of everything that isn't const, and you end up with a shadow world. In C++ you get away with it, because as with anything in C++ it is purely optional whether0 码力 | 228 页 | 2.47 MB | 6 月前3 Some Things C++ Does Rightstuck. So you gradually need a const version of everything that isn't const, and you end up with a shadow world. In C++ you get away with it, because as with anything in C++ it is purely optional whether stuck. So you gradually need a const version of everything that isn't const, and you end up with a shadow world. In C++ you get away with it, because as with anything in C++ it is purely optional whether So you gradually need a const version of everything that isn't const, and you end up with a shadow world. In C++ you get away with it, because as with anything in C++ it is purely optional whether0 码力 | 228 页 | 2.47 MB | 6 月前3
 Code Analysis++when reached enum class Color { Red, Blue, Green, Yellow }; void do_shadow_color(int shadow) { Color cl1, cl2; if (shadow) cl1 = Color::Red, cl2 = Color::Blue; else cl10 码力 | 61 页 | 2.70 MB | 6 月前3 Code Analysis++when reached enum class Color { Red, Blue, Green, Yellow }; void do_shadow_color(int shadow) { Color cl1, cl2; if (shadow) cl1 = Color::Red, cl2 = Color::Blue; else cl10 码力 | 61 页 | 2.70 MB | 6 月前3
 Khronos APIs for Heterogeneous Compute and Safety: SYCL and SYCL SC47P2951 SHADOWING IS GOOD FOR SAFETY ▪ Remove names ▪ It would be beneficial if programmers could shadow a variable with void initialization instead of having to resort to a tag class ▪ Reinitialization variable that is being shadowed ▪ Same level shadowing ▪ It would be beneficial if programmers could shadow variables without having to involve a child scope ▪ Conditional casting ▪ All of the previous requests0 码力 | 82 页 | 3.35 MB | 6 月前3 Khronos APIs for Heterogeneous Compute and Safety: SYCL and SYCL SC47P2951 SHADOWING IS GOOD FOR SAFETY ▪ Remove names ▪ It would be beneficial if programmers could shadow a variable with void initialization instead of having to resort to a tag class ▪ Reinitialization variable that is being shadowed ▪ Same level shadowing ▪ It would be beneficial if programmers could shadow variables without having to involve a child scope ▪ Conditional casting ▪ All of the previous requests0 码力 | 82 页 | 3.35 MB | 6 月前3
 The Roles of Symmetry And Orthogonality In Designasymmetry: Overloads in the Derived will “shadow/hide” virtual in the Base (unless using Base::name) • API asymmetry: Overloads with the same name as overrides can “shadow/hide” the override signature •0 码力 | 151 页 | 3.20 MB | 6 月前3 The Roles of Symmetry And Orthogonality In Designasymmetry: Overloads in the Derived will “shadow/hide” virtual in the Base (unless using Base::name) • API asymmetry: Overloads with the same name as overrides can “shadow/hide” the override signature •0 码力 | 151 页 | 3.20 MB | 6 月前3
 Heterogeneous Modern C++ with SYCL 2020dA{ … }, dB{ … }, dO{ … }; try { sycl::queue gpuQueue{sycl::gpu_selector_v, async_handler{}}; sycl::buffer bufA{dA.data(), sycl::range{dA.size()}}; sycl::buffer bufB{dB.data(), sycl::range{dB sycl::range{dB.size()}}; sycl::buffer bufO{dO.data(), sycl::range{dO.size()}}; gpuQueue.submit([&](sycl::handler &cgh){ sycl::accessor inA(bufA, cgh, sycl::read_only); sycl::accessor dA{ … }, dB{ … }, dO{ … }; try { sycl::queue gpuQueue{sycl::gpu_selector_v, async_handler{}}; sycl::buffer bufA{dA.data(), sycl::range{dA.size()}}; sycl::buffer bufB{dB.data(), sycl::range{dB0 码力 | 114 页 | 7.94 MB | 6 月前3 Heterogeneous Modern C++ with SYCL 2020dA{ … }, dB{ … }, dO{ … }; try { sycl::queue gpuQueue{sycl::gpu_selector_v, async_handler{}}; sycl::buffer bufA{dA.data(), sycl::range{dA.size()}}; sycl::buffer bufB{dB.data(), sycl::range{dB sycl::range{dB.size()}}; sycl::buffer bufO{dO.data(), sycl::range{dO.size()}}; gpuQueue.submit([&](sycl::handler &cgh){ sycl::accessor inA(bufA, cgh, sycl::read_only); sycl::accessor dA{ … }, dB{ … }, dO{ … }; try { sycl::queue gpuQueue{sycl::gpu_selector_v, async_handler{}}; sycl::buffer bufA{dA.data(), sycl::range{dA.size()}}; sycl::buffer bufB{dB.data(), sycl::range{dB0 码力 | 114 页 | 7.94 MB | 6 月前3
 Retiring the Singleton Pattern#include Retiring the Singleton Pattern#include- Bloomberg 43 Comm Cache Db Initialization Dependencies int main(int argc, char* argv[]) { ... Comm::init(); Cache::init(); Db::init(); ... }int main(int argc, char* argv[]) . Comm::init(); // oops Cache::init(); Db::init(); ... } Bloomberg 44 Comm Cache Db Initialization Dependencies int main(int argc, char* argv[]) { ... Db::init(); // Correct Cache::init(); Comm::init(); class CacheWrapper { public: CacheWrapper(DataBaseWrapper& db):db_(db){...} virtual int save(const Request& req); private: DataBaseWrapper& db_; }; class CommWrapper { public: CommWrapper(CacheWrapper& 0 码力 | 70 页 | 1.59 MB | 6 月前3
共 104 条
- 1
- 2
- 3
- 4
- 5
- 6
- 11














