Maxim Menshikov

Static analysis researcher and software engineer

Projects - Linux

    Visao Static analysis

    • Rust

    The static analysis orchestration server

    MediaTek platform bringup Commercial EXTERNAL

    • C, C++

    Bringup of a MediaTek SoC to a software project along with the kernel, uBoot, target setup.

    fmtparser Static analysis Open-source

    • C

    printf/scanf format parser

    Cast Uncategorized projects Open-source

    • Python

    Convert compile_commands.json to Atmel Studio projects

    Equid IDE integration Commercial EXTERNAL

    • Java

    Eclipse IDE integration for the Equid static analyzer.

    Build trace Static analysis EXTERNAL

    • C, C++

    A project that is tracing the build on Linux, Windows and Mac and prepares configuration for the static analysis.

    WiFi Mesh investigation Commercial EXTERNAL

    • C, C++

    Find and fix numerous issues in a commercial WiFi Mesh implementation.

    Minimal Message Broker Commercial EXTERNAL

    • C, C++, Python

    Message broker that can be installed to embedded software and used from Python test suite.

    Wristband Test Suite Commercial EXTERNAL

    • C, C++, Python

    A complete test suite for wristband software based on Robot Framework

    Bluetooth emulator Commercial EXTERNAL

    • C, C++, Python

    Emulator of Bluetooth activity for a consumer electronics device

    Parslr Static analysis Open-source

    • Python

    Test ANTLR grammars and prepare JUnit result XML from results. Useful in CI.

    Static analysis testing ensemble Static analysis Active

    • Bash, Python

    Testing static analysis projects is hard. This project aims to serve as a bridge between Continuous Integration (CI) and Verification Example Framework (VEF).

    Builtinizer Static analysis Open-source

    • C++

    Recreate signatures of Clang's builtin functions.

    Verification Example Framework Static analysis Active Open-source

    • C, C++, RuC, Python

    The growing list of examples for C/C++/RuC analysis & verification. To be open sourced.

    Analysis Server Protocol Static analysis Active Highlights Open-source

    • C, C++

    The protocol that it is used to unite static analyzers and IDEs, not only for IDE tasks. Inspired by language server protocol

    Wireguard CLI Uncategorized projects Open-source

    • Python

    A simple console interface for adding peers to Wireguard configuration files.

    Malware detection Commercial EXTERNAL

    • C, C++, Assembler

    Detected, reverse-engineered and eliminated malware in a big project.

    Improvements in RuC language Uncategorized Open-source

    • C

    RuC is a research language created to resolve issues in C languages. My role in it is in consulting of project members and occasional fixes.

    Equid - a static analysis framework Static analysis Active Highlights Open-source

    • C, C++, Python, Bash

    A sophisticated tool for finding bugs and proving their absence in C/C++ code, this project aims at making analysis easy and worth to apply.

    SLABInject Uncategorized projects Open-source

    • C

    Inject pages to SLAB caches in Linux. That may help improve performance and stability in memory-critical drivers in constrained environments.

    SECCOMP for legacy kernel Commercial EXTERNAL

    • C, C++

    SECCOMP mechanism has been ported to older Linux to facilitate LXC integration.

    Package Manager for router software Commercial EXTERNAL

    • C, C++

    A custom package manager has been coded for a commercial router software. It was based on opkg, but supported many additional features.

    OpenVPN solution for router software Commercial EXTERNAL

    • C, C++

    A custom OpenVPN solution for Linux-based router software was architected, developed and made available publicly. Partially supports cryptography offloading and packet traffic acceleration.

    Containerization support for router software Commercial EXTERNAL

    • C, C++

    A complete solution based on LXC has been written for commercial router. It was created with resource constraints in mind, so it actually could provide working containerization on a disk drive smaller than 30MB.

    OverlayFS support for router software Commercial EXTERNAL

    • C, C++, Bash

    OverlayFS support has been implemented in Linux-based router software package. While the OverlayFS itself is a kernel's feature, a lot of efforts were put into making it supported on a complete solution level, with booting process altered, security, secure erase and other levels sorted out.

    Docker MIPS feasibility research Commercial EXTERNAL

    • C, C++, Go

    The Docker didn't have MIPS support back at that time, but the customer wanted to see it running. I investigated whether it is possible to port Docker (yes, it was), however, we stumbled upon Docker's design implications that prevented us from finishing the project.

    WiFi driver fixes Commercial EXTERNAL

    • C, C++

    Fixed multiple issues in Atheros and Intel (Metalink) WiFi drivers.

    Race Researcher Static analysis

    • C#

    A graphical interface to Race static analyzer, allowing to quickly spot locking failures.

    Codename Race Static analysis Highlights

    • C#

    A static analyzer aimed at finding race conditions in the Linux code. It uses Lockset algorithm with sophisticated selection of executed function pairs, and it has proven to be quite useful in production. The C parsing has been implemented through Roslyn patches.

    DWC2 USB driver port Commercial EXTERNAL

    • C, C++

    Ported DWC2 driver to a new platform, significantly improving stability and performance.

    Custom static analyzer for router software Commercial EXTERNAL

    • C#

    Since we had a host controller driver which was fatally flawed regarding locking, I've made a custom static analyzer to deal with locking problems. It was based on Roslyn patched to support C.

    Refactoring of USB Host Controller Driver Commercial EXTERNAL

    • Assembler, C, C++

    Host Controller Driver used in one of commercial SoCs has been fatally flawed. Fixing it was a major challenge, which required creation of a custom static analyzer.

    IPSec solution for router software Commercial EXTERNAL

    • C, C++

    An L2TP/L2TP+IPSec solution for Linux-based router software was architected, developed and made available publicly. It also works with partial cryptography and packet traffic acceleration.

    Certificate Store for router software Commercial EXTERNAL

    • C, C++

    I've architected and implemented a complete certificate store module for commercial router, which supported certificate/private key generation, import/export, verification against a private key. Still used without major edits (as of 2022).

    Custom DynDNS client Commercial EXTERNAL

    • C, C++

    I've created a custom DynDNS client that is deployed to thousands of devices worldwide.

    ffu-extract Windows Phone 8

    • C++

    A tool to extract Windows Phone 8 FFU images.