Here we publish research articles written by the developers and reverse engineers of ApriorIT. We share our experience and look forward to your comments or questions regarding the texts.
Today our QA Specialist in drivers reveals the secrets of testing this type of software. Practices for testing different types of Windows drivers are presented in the article below.
Windows drivers are traditionally written in C language (not C++) and Microsoft Corp. officially supports this variant only (see the " C++ for Kernel Mode Drivers: Pros and Cons" document of WINHEC 2004 Version at www.microsoft.com/whdc/driver/kernel/KMcode.mspx).
The advantages of C++ over C are widely known:
object-oriented programming style which makes the development of large projects easier
support of exceptions which simplifies the code of handling errors and makes the code more readable
support of templates (STL/ standard library)
great number of other improvements which makes the language more flexible and simplifies the development process.
Naturally, it would be great to use these advantages in driver development.
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 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 the process or .exe descriptor is being returned, how to deal
with .dll then? I didn't find a solution at that time, though now it seems a
really simple task.
While working on some project our developer encountered the mistakes and concealments in documentation on MS Exchange theme. The developer conducted his own research to solve the problems he had come across and the results are given in this article. Hope, you will find this paper helpful. We also would be grateful for your feedbacks on
.
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 what
this article is about are the interesting points our reverser had
met while working with Samsung cellular phones firmware.
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 a deal with them.
Here is the first article on our site. It's written by our reverse engineer and, in fact, is a kind of a lesson for reversers.
This piece of our company experience may be useful for you, that is why this text is placed here. If you would like to use our services in reverse engineering area, please write
to discuss your task.
There are some misperceptions regarding reverse engineering (its legacy, ethic and so on) and you can clear all for yourself here and much more - here