Maxim Menshikov

Static analysis researcher and software engineer

Projects

    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


    Personal blog Uncategorized projects Open-source

    • Ruby

    Personal website in Jekyll with tons of Ruby magic


    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 software Commercial EXTERNAL

    • C, C++

    Wristband software was ported to new hardware and gradually improved.


    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.


    GostCode Uncategorized projects Open-source

    • C#

    Inject full source code listing to russian GOST documentation in Microsoft Office format, even if it is huge.



    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.


    type-grammar Static analysis Active Open-source

    • ANTLR

    An attempt to make a unified ANTLR grammar for C/C++ types


    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.



    Personal CV Uncategorized projects

    • TeX

    Personal CV in TeX


    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.


    Codename Race Cloud Static analysis

    • C#

    Managed API for cloud usage of "Codename Race" static analyzer


    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.


    OSBuilder8 Windows Phone 8 Highlights

    • C#, C++


    OemMarket Windows Phone 7 Open-source

    • C#, C++

    An application to swap OEM stores on Windows Phone 7 without reboot.


    PolicyVisualizer Windows Phone 8

    • C#

    A tool for Windows Phone 8 images which tries to find certain properties (say, bugs) within policies.


    ncsdusb Windows Phone 8

    • C++, C#

    The project which was a playground for Nokia Lumia (WP8) jailbreaks. Unfinished.


    ffu-extract Windows Phone 8

    • C++

    A tool to extract Windows Phone 8 FFU images.


    HqTokens Windows Phone 7 Open-source

    • C, C++

    Reverse-engineered Windows Phone 7 tile management used for improving image quality.


    XAPDeployer Windows Phone 7 Highlights

    • C, C++, C#


    ClockHub Windows Phone 7 Open-source

    • C, C++, C#

    Well-known project adding HTC-like Clock to Windows Phone 7 home screen. First featured in Dynamics (WP7).


    WPBackup Windows Phone 7 Highlights Open-source

    • C#, C++

    Back up all important data from fully unlocked Windows Phone 7 devices.


    HTC D000FF support Windows Phone 7

    • VB.NET, C#, C++

    A part of OSBuilder for Windows Phone 7, a complete D000FF support was implemented to facilitate building of software images for HTC devices.


    Windows Mobile Device Center launcher for Windows Phone 7 Windows Phone 7 Open-source

    • C, C++, C#, Assembler

    Do you miss fast & stable Windows Phone 7 File Managers and Registry Editors for PC? If you do, that's is a new approach for you. Launch ported Windows Mobile Device Center binaries.


    uSMSProviders Windows Phone 7 Open-source

    • C, C++

    Nokia Data Sense support for Windows Phone 7.


    Dynamics (WP7) Windows Phone 7 Highlights

    • C#, C++

    Dynamics ROM is one of the most functional custom ROMs for Windows Phone 7. It is based on the latest OS version (7.10.8862 to be specific) and contains all existing language packs.


    uPlatformInterop Windows Phone 7 Open-source

    • C, C++

    Make Nokia Lumia applications compatible with other devices.


    Accelerometer Toggle Windows Phone 7 Open-source

    • C++, C#

    An application to disable or enable accelerometer using internal Windows Phone 7 APIs.


    WLANFix for HTC WP7 devices Windows Phone 7 Open-source

    • C, C++

    In some cases WiFi gets broken on HTC Windows Phone 7 devices because the driver is in inappropriate state. This tool fixes that when applied on system boot.


    RingtoneMaker Windows Phone 7

    • C#, C++

    Make ringtones for the Windows Phone 7 without any limitations.



    Opera Mobile 10 for Windows Phone 7 port Windows Phone 7 Highlights Open-source

    • Assembler, C, C++

    Opera Mobile 10 wasn't released for Windows Phone 7, but it was implemented through API emulation layer.


    Opera Mini for Windows Phone 7 port Windows Phone 7 Highlights

    • Assembler, C, C++

    Unlock the ability to run the native Opera Mini on Windows Phone 7, which usually can't run unsigned native applications. That is implemented through API emulation layer.


    Relocation of Z-modules Windows Phone 7 Highlights

    • VB.NET, C#

    Windows Phone 7 XIP (kernel) modules have modules marked with Z flag. They require a special relocation handling. The procedure for this has been reverse-engineered, coded and incorporated to OSBuilder for Windows Phone 7.


    InitFlashFilesFix Windows Mobile

    • C, C++

    A tool for OSBuilder-based kitchens that fixes InitFlashFiles issues


    Ultra3D for HTC HD2 Windows Mobile

    • C, Assembler

    The HTC HD2 driver which improves framerate in OpenGLES applications.


    Sliding Sound service Windows Mobile

    • C++

    Hardware keyboard slide in/slide out sounds on SE XPERIA X1



    StartMenuLayout Windows Mobile

    • C#

    Choose between "hexagonal" layout and "grid" Start Menu layout on Windows Mobile.


    Squared Grid Start Menu Windows Mobile

    • Assembler

    A modification to Windows Mobile start menu that it makes it squared instead of hexagonal.


    Quick Launch Windows Phone 7 Open-source

    • C#, C++

    Mini application aimed to be called on Search button call in Windows Phone 7, providing a set of quick settings.


    LoaderVerifier (uLV) Windows Phone 7

    • C, C++

    The part of WP7 Full Unlock which disables executable file verification. Integrates with Account Manager to create seamless experience for the user.


    Account Manager Windows Phone 7

    • C, C++

    The part of WP7 Full Unlock, this tool manages accounts on low level.


    uPolicyEngine (uPL) Windows Phone 7

    • C, C++

    This part of WP7 full unlock manages atomic policy requests from the kernel. It disables checks for apps which are permitted to run without restrictions and integrates with Account Manager for the best user experience.


    Cloaking Filter (FsPerf) Windows Phone 7

    • C, C++

    A part of WP7 Full Unlock which hides modified files from the kernel, allowing for Windows Update. Also, it improves performance via file system caching.


    Full Unlock Windows Phone 7 Highlights

    • C

    Windows Phone 7 doesn't have an ability to run unsigned and/or native applications. That's the way to unlock these capabilities.


    Cache Instantiator Windows Phone 7 Open-source

    • C, C++

    A simple tool warming up the file system cache of Cloaking Filter (FsPerf)


    Device Selector Windows Mobile

    • C#

    The tool for OSBuilder-based WM6 kitchens that allows changing the active device.


    ScrollingMod Windows Mobile

    • C, C++

    Customizable Physics Engine for Windows Mobile 6.5. It allows changing various constants used when calculating scrolling in Start Menu and some other menus.


    Night Mode Windows Mobile

    • C++

    Decrease backlight beyond limits on SE XPERIA X1 to facilitate reading at night.


    XPERIA X1 display driver tearing fix Windows Mobile

    • Assembler

    The XPERIA X1 display driver had critical bugs which introduced stutter/tearing. This fix removes the stutter and makes the work much more comfortable.



    Overclock Manager Windows Mobile

    • C++

    A graphical interface for SE XPERIA X1 overclocking.


    leddev Windows Mobile

    • C++

    Advanced LED patterns on SE XPERIA X1


    Lock service Windows Mobile

    • C++

    Automatic locking of SE XPERIA X1 device so that it doesn't hang.


    cpudev (XPERIA X1 overclocking) Windows Mobile

    • C++, Assembler

    A run-once tool for SE XPERIA X1 overclocking. It was integrated to Dynamics ROM and was running automatically.


    ImgfsFromDump for OSBuilder Windows Mobile Highlights

    • C++

    A very fast multi-threaded ImgfsFromDump for Windows Mobile used in OSBuilder.


    HTCVolumeControlProxy Windows Mobile Open-source

    • C, C++

    Fix HTCVolumeControl in Windows Mobile 6.5.x on older HTC devices


    Native Windows Phone 7 API Windows Phone 7 Highlights Open-source

    • C, C++

    Native Windows Phone 7 API which can be used to start executables, change themes, use PageManager, manage tiles and a a lot more.


    Remove Rich Signature Windows Phone 7

    • C#

    The tool to remove rich signatures from executable files and/or all executable files in .xap. This tool was heavily used in Dynamics ROMs.


    AndroidLauncher Windows Mobile

    • C, C++

    A minor tool from Dynamics ROM which auto starts Android by pressing the link in the start menu.


    uTask Windows Mobile Highlights

    • C, C++, C#

    A sophisticated softkey reassignment tool for Windows Mobile 6.5.x. Also, fix position of old application windows completely automatically.



    xwinkey Windows Mobile

    • C++

    Configurable X button with LED effects on SE XPERIA X1


    Snooze Service Windows Mobile

    • C++

    Better alarm handling on Windows Mobile. Try avoiding common failures observed on SE XPERIA X1.


    Camera Launcher Windows Mobile

    • C, C++

    A minor tool in Dynamics ROM that replaces Sony Ericsson camera and allows changing default camera application.


    VibrationSrv Windows Mobile

    • C

    The service in Dynamics ROM replaces not so useful silent mode with vibration mode.



    Music identification client Windows Mobile

    • C#

    The application for Windows Mobile that used external servers to identify the information about played music, such as title, artist, album, genre, etc.


    HTCSensorSDK for Sony Ericsson XPERIA X2 Windows Mobile Open-source

    • C

    HTCSensorSDK is widely used across different Windows Mobile applications and games. It allows using accelerometer data. This is the port of HTC's library to Sony Ericsson XPERIA X2 (non-HTC platform).


    Bluetooth Switch Windows Mobile

    • C, C++

    A minor tool from Dynamics ROM which changes the state of Bluetooth.


    WiFi Switch Windows Mobile

    • C, C++

    Minor tool from Dynamics ROM which changes the state of WiFi.


    ShutdownMenu Windows Mobile

    • C, C++

    Shutdown menu override. Enable flashlight, bluetooth, wifi, open camera/email/phone/etc by long press of Power Off button.


    ManilaSDK Windows Mobile

    • C#

    A small implementation of HTC Sense-style controls for Windows Mobile, used in projects across Dynamics ROMs


    TaskbarService Windows Mobile

    • C++

    The tool which colorizes taskbar during calls and other events.


    AlphaUC Windows Mobile

    • C#

    First-boot customization tool for Windows Mobile 6.x.


    SIPHook Windows Mobile Open-source

    • C, C++

    Show all keyboards in SIP menu when using HTC EzInput.


    ET9filter Windows Mobile Open-source

    • C, C++

    Input Method Editor (IME) that fixes Sony Ericsson XPERIA X1 keyboard incompatibility with IMEEngine.


    Stopwatch Windows Mobile

    • C, C++

    A stopwatch for Dynamics ROM.


    TweakTool Windows Mobile

    • C#, VB.NET

    A tool to configure Dynamics ROMs.


    ResourcePacker Windows Mobile Open-source

    • VB.NET

    The tool can be used to pack resource-only files to a heavily reduced Portable Executable. That results in significant savings and may improve robustness on Windows Mobile 6.x devices by less exploitation of shared memory slots.



    DevHealthAnalyzer Windows Mobile Open-source

    • VB.NET

    The tool to analyze virtual memory on Windows Mobile 6.x. Moreover, it gives understanding what to and how to improve in order to get better software robustness. It can be used to determine the most memory-hungry libraries. Then you can reversmod them (reversmodded libraries reserve less ram than recmodded ones) or make r/w sections shared to improve situation.




    Package Size Analyzer Windows Mobile Open-source

    • VB.NET

    A tool to get the complete size of OSBuilder packages.


    Dynamics ROM Windows Mobile Highlights

    • C, C++, C#, VB.NET

    A well-known ROM series for HTC HD2 and Sony Ericsson XPERIA X1 which changes how devices work and feel.


    WalkmanDisplay ELFPack projects Highlights Open-source

    • C

    Modify builtin player appearance.


    SoftEdit ELFPack projects Open-source

    • C

    An ELF used to edit AdvancedSoftkeys configuration


    AdvancedSoftkeys ELFPack projects Open-source

    • C

    Change 2-button softkey layout to 3-button (like in newer Sony Ericsson A2 phones like K850, W995)


    StatusClock ELFPack projects Open-source

    • C

    Simple status bar clock indicator.


    ThemeUnpacker ELFPack projects Open-source

    • C

    This ELF allows unpacking themes. Additionally, it cooperates with AdvancedSoftkeys and allows changing softkey themes.


    GPRSSessionInfo ELFPack projects Open-source

    • C

    Simple tool for displaying GPRS session information when the session ends.


    MapNavigator ELFPack projects

    • C

    A simple mini-GPS based map.


    CoverArt in Standby ELFPack projects Highlights Open-source

    • C

    Add customizable current track information to Standby view.


    EvtDesk ELFPack projects Open-source

    • C

    Graphical desktop for EventControl.


    EvtEdit ELFPack projects Open-source

    • C

    The event editor which comes with EventControl.


    EventControl ELFPack projects Open-source

    • C

    Native ELF for Sony Ericsson devices which could be used to execute scenarios by date & time, GPS location and more.


    FlashLight ELFPack projects

    • C, C++

    Configurable flashlight app for Sony Ericsson


    Pattern Search Windows

    • C#

    High-performance binary pattern search utility