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...
In terms of software, reverse engineering is the process of researching a program to obtain closed information about how it works and what algorithms it uses. While software reversing can be used for legal purposes, it's generally considered to be used...
In this article, I will tell about the main tools that a modern software reverser uses in his work. This article is for readers, who are familiar with the Assembler language, network interaction principles, and have experience of programming for...
This article considers common reverse engineering tasks, the main tools for reverse engineering, and basic principles of how to reverse engineer a piece of software, specifically Windows software. We also offer a small step-by-step example of reverse...
The aim of this article is to describe reverse engineering for OS X software and iOS apps in general terms. My goal was to provide a wide coverage of Objective-C and Swift code reversing, without going too much into details, in order to describe how to...
This article is intended to be a kind of tutorial for reversers, as its author is one of our software reverse engineers. It describes how to restore classes using software reverse engineering. In our development blog, you can learn more about Windows...
In this article, I will tell you how to write an anti-debug plugin for OllyDbg v. 2.01. The task is to prevent the application being debugged from detecting the debugger.
In this white paper, we will examine one of the modern antidebugging methods that is based on software nanomites technology. It’s also an effecient method of the process antidumping. This approach was first introduced in the Armadillo protector for...
There are situations when you really need to know how an application works, how it implements such and such functionality. For example, you want to integrate your software with some popular system; learn how existent solutions of your problem work;...
This article describes the protocol of data exchange that is the modification of the well-known OBEX protocol used in the GSM Samsung phones from the SHP family. The described modification of this protocol lets you write data to the phone and also get...
This presentation is made by one of our leading Research Specialists and devoted to the Reverse Engineering tip. It shows how to recognize C++ FOR operator in Assembler code.  
Once long time ago I was curious how to get a descriptor of the module mapped into memory (.exe or .dll), if its name and other attributes needed for using special API functions are unknown. If in the case of GetModuleHandle with zero parameter value...
Long time ago we started publishing here the articles written by developers and reversers from our team. Here is the new one - our reverser gives some advices on reversing for Symbian. Any comments are appreciated.  
Once we faced the need to investigate how Samsung cellular phones work; we required some information from them, which is not documented (and will never be, for sure). So this article is about interesting points our reverser had met while working with...
RISC processors are used in many small devices such as PDA, mobile phones, clever coffee-machines etc. There is a big variety of assemblers for RISC processors, but the most frequent one now is ARM. I am going to talk about ARM 7 since I had dealt with...
Subscribe to updates