Software Development Articles

Driver to hide files in Linux OS

In this article, I am going to describe the process of development of a driver module to hide files in Linux OS (you can read the article about Hide Driver for Windows OS here). Besides, I will touch upon such questions:

  • Virtual File System (VFS)
  • The work with inode and dentry structures

The article concerns the Linux kernel version 2.6.32 because other kernel versions can have the modified API, different from the one used in examples or in the build system. Article is meant for people that already have some experience Linux driver development. Creation of a simple Linux driver was described here.

Read more...

Injection into a Process Using KnownDlls

In his article, we will consider an interesting, universal and rarely used method of code injection into a Windows process using KnownDlls sections. To demonstrate the method work we will develop a sample project to inject into all running processes and intercept some calls from ws2_32.dll.

Injection into a process supposes injection of the custom code into the address space of some processes. In other words, we get access to the process code, its data, the code of the system DLLs, which are loaded to the process, etc.

Why to inject into a third-party process? There can be a lot of causes, both destructive – steal passwords, hack protected application – and peaceful ones: like antivirus analysis and protection, improvement and maintenance of an application, which source code you don’t have.

Read more...

Android Rooting for Programmers

You have an Android Device and you are familiar with Linux based operating systems. Maybe, you like SSH or telnet to communicate with the device; you want to setup your device as a router to connect home PC to the Internet. However, you will be surprised. Android has neither login screen nor possibility to gain privileged user access to the system to do these things. This is one of the Android security principles to isolate applications from the user, each other, and the system.

In this article, I will describe you how to gain root access on an Android device in spite of security. I will delve deeply into one of the Android rooting principles - the adb exhaustion attack, which is simpler to understand than a previous udev exploit. It is suitable for all Android-powered devices with the version 2.2 and lower.

Read more...

Monitoring and Managing Windows Processes

This article describes a simple solution that will help you to clear out the principles of how Windows system starts processes and show how you can set some filters for process start, including allowing and forbidding them.

Read more...

Objective-C from the Scratch

Anyone who wants to develop programs for the products of Apple Company meets such a moment in his life when he needs to learn new programming language - Objective-C. I met such moment once too. I decided to take notes of my thoughts when understanding the documentation to remember the main specifics of this language.

Read more...