As SaaS solutions become more popular, companies need to pay more attention to data protection. Important corporate data stored in the cloud should be protected as reliably as data stored on-site. This article will be useful for developers who are...
Almost every company needs a solution for protecting its sensitive data and detecting suspicious activity in real time. Besides, when an incident occurs, companies want to be able to provide digital evidence in the courtroom. A security solution that...
This article describes our enhancements to the Microsoft Remote Desktop Protocol (RDP) for Windows, iOS, Android, macOS X, and Linux remote desktop clients. We provide new approaches for improving the user experience in remote sessions.   Written...
How we have increased mhook’s performance, enhanced its capabilities and eliminated certain bugs. Contents: Are there any other Similar Libraries? Problems with the Mhook Library Increasing Performance: Case #1 Increasing Performance: Case...
This article is aimed at helping you test drivers for Windows. Since there are many different types of drivers, we cover the specifics of each type and explain how the Windows device driver testing process differs. We also cover supplementary tools and...
  In this article we’ll look at how to intercept HTTP traffic in order to inject custom code into Windows HTML markup. In order to do this, we’ll look at two completely different approaches: one with Kernel mode, the other with User mode. For...
Enterprise resource planning (ERP) and customer relation management (CRM) systems are very helpful in organizing, streamlining, and structuring business processes across the company. They allow companies to automate certain management and business tasks...
With the advent of AI, machine learning, and automation, computer vision becomes all the more relevant. At Apriorit, we build an expertise of working with computer vision as a part of working on a new set of projects involving AI and machine...
CUDA is a parallel computing platform developed by Nvidia for its graphics processing units. By using CUDA API, developers can retool GPUs to perform general purpose calculations. GPUs excel in algorithms that require processing large amount of data in...
  At Apriorit, kernel and driver development is one of our key competences. We extensively use technologies operating at the kernel level in various security, virtualization, system control, and monitoring solutions that we develop for our...
At Apriorit, we developed several custom Windows and Linux virtual file system implementations, and so we decided to share our knowledge on the topic in this series of articles. This article will be useful for any developers who wish to create Windows...
Software is never made perfect and developers can never account for everything. There will always be errors and misses, some of them more prominent than others. Malicious perpetrators often exploit such vulnerabilities to get control over the software...
There are two types of Outlook plugins: COM and JavaScript. In this article, we will try to compare them by looking at both pros and cons of each of them. We will also provide you with a practical example of the client-side Outlook plugin, written with...
One of the key features of the QT framework is providing communication between objects via signals and slots. For QT developers, this is a very convenient and organic way to do things, but the nature of the feature does not allow to communicate between...
This guide will cover certain ways to detect restart or shutdown of the PC, as well as other similar events, such as log off or sleep. We will be handling the OS shutdown event using WinAPI for different types of applications - console, GUI...
In this article you will find a short overview of I/O completion ports (IOCP), as well as a simple C++ implementation of copying folder with files by using I/O requests. We hope that this guide will prove useful for anyone with basic C++ and Windows API...
This tutorial provides you with easy to understand steps for a simple file system filter driver development. The demo driver that we show you how to create prints names of open files to debug output. This article is written for engineers with basic...
This article includes description of simple unhooker that restores original System Service Table hooked by unknown rootkits, which hide some services and processes. Contents: 1. Rootkit detection algorithm 2. Memory-mapped files in kernel mode 3....
This article is written for everyone interested in design of different things, particularly, developers working with high-level languages (Java, C, C++, etc.), who sometimes need to do low-level programming in Windows. Our example of low-level...
Program optimization, and in particular code and algorithm optimization, are very important tasks for different kinds of systems: extended client-server applications, heavy-data processors, network monitoring tools, etc. This article is a short...
Subscribe to updates