Welcome to our blog where we share some of our knowledge with the wider community.
Blog | November 5, 2020
FreeBSD Remote Process Plugin is now the default in LLDB
By Michał Górny, Kamil Rytarowski
Moritz Systems have been contracted by the FreeBSD Foundation to modernize the LLDB debugger’s support for FreeBSD. We are working on a new plugin utilizing the more modern client-server layout that is already used by Darwin, Linux, NetBSD and (unofficially) OpenBSD. The new plugin is going to gradually replace the legacy one.
The Project Schedule is divided into three milestones, each taking approximately one month:
M1 Introduce new FreeBSD Remote Process Plugin for x86_64 with basic support and upstream to LLVM.
read more
Blog | October 29, 2020
How Debuggers Work: Getting and Setting x86 Registers, Part 2: XSAVE
By Michał Górny
In the previous part of this article, I have described the basic methods of getting and setting the baseline registers of 32-bit and 64-bit x86 CPUs. I have covered General Purpose Registers, baseline Floating-Point Registers and Debug Registers along with their ptrace(2) interface.
In the second part, I would like to discuss the XSAVE family of instructions. I will describe the different variants of this instruction as well as explain the differences between them and their limitations.
read more
Blog | October 22, 2020
How Debuggers Work: Getting and Setting x86 Registers, Part 1
By Michał Górny
In this article, I would like to shortly describe the methods used to dump and restore the different kinds of registers on 32-bit and 64-bit x86 CPUs. The first part will focus on General Purpose Registers, Debug Registers and Floating-Point Registers up to the XMM registers provided by the SSE extension. I will explain how their values can be obtained via the
read more
ptrace(2)
interface.
Blog | October 8, 2020
Introduction of a new FreeBSD Remote Process Plugin in LLDB
By Michał Górny, Kamil Rytarowski
Moritz Systems have been contracted by the FreeBSD Foundation to modernize the LLDB debugger’s support for FreeBSD. We are writing a new plugin utilizing the more modern client-server layout that is already used by Darwin, Linux, NetBSD and (unofficially) OpenBSD. The new plugin is going to gradually replace the legacy one.
The LLVM project provides a modern, modular, permissively licensed compiler infrastructure. A toolchain including Clang compiler, LLD linker and LLDB debugger is being developed as a part of it.
read more
Blog | September 30, 2020
LLDB Debugger Improvements for FreeBSD
By Kamil Rytarowski
The Moritz Systems team has started a new contract on improving the LLDB support for FreeBSD. The LLDB project builds on libraries provided by LLVM and Clang to provide a great modern debugger. It uses the Clang ASTs and expression parser, LLVM JIT, LLVM disassembler, etc so that it provides an experience that “just works”. It is also blazing fast and more permissively licensed than GDB, the GNU Debugger.
read more
Blog | September 24, 2020
How to integrate a fuzzer with your project?
By Kamil Frankowicz
Generally, during fuzz testing (regardless of the tool used to perform it: American Fuzzy Lop, libFuzzer, or any other), we have to remember to keep the number of iterations per second high. This means that a good fuzzer is a fast fuzzer. This is mostly facilitated by minimizing the structures and operations needed to prepare the context. We do not reinitialize the mechanisms of the fuzzed library for every iteration.
read more