Reversing Malware - Learn how to do it
Reverse
engineering at the present days is a vital skill that not only
programmers but also businessmen and ordinary computer users
should have. You may ask how reverse engineering refers to you.
Well, let me show. Nowadays the number of hackers is growing
from day to day and unlike previous years their programs are
aimed at causing harm. They penetrate your computer or network
and cause any errors or read your passwords and personal data.
It is not pleasant, is it? That is malicious software reverse
engineering is applied for. Several years ago the only kind of
malware was computer viruses but today malware has been
considerably improved. Hackers do not waste time and create new,
sophisticated malicious software types such as worms,
Trojans, spyware, adware, bots and so on and so forth.
So every
computer user may come up with a worm or a virus surfing the
Internet. I do not even talk about companies the network of
which is constantly attacked by malicious software. Sure, the
part of malicious stream is stopped by anti-virus programs or
such tools as spyware removal. But it is worth admitting that
there are cases when these so called friendly programs are not
able to protect your machine. So what should we do in this case?
From the very
beginning, it is essential to detect whether a penetrated binary
is malicious or not. But while an ordinary computer user may do
only with this step, a representative of a company need this
binary to be reverse engineered. That is called malware reverse
engineering for business purposes. It is necessary to mention as
well that a small number of malware reverse engineering tools
are available for
public access.
The work of
specialized tools can be divided into code analyzing and
behavior analyzing. Let’s consider the first one now. Thanks to
this technique we can examine malicious software by means of
understanding the way it operates. If a program is written in
binary codes debuggers and
disassemblers can be used for that as well. However, how
complicated a code is, it can be completely reverse engineered
thanks to code analyzing.
The second
technique is called behavior analyzing as I have already
mentioned above. Thanks to this you can examine how a binary
“behaves” in your computer: how it communicates with other
programs and devices. Then the collected information is
analyzed, which makes it possible to reconstruct the whole image
from these pieces of information. But keep it in mind that this
category does not mean
malicious software engineering but only analyzing. So before
you start think it over what goals do you have.
Well, if you
are ready to start, I propose you the structure of your works
that can be divided into six steps. The first step is called a
controlled environment. Analyzing malicious software it is
essential to set up a controlled environment. There may be
created even a so called test lab. But there are some conditions
to be followed. First of all, you should create a network using
two computers. One of them is a victim computer and the other is
a sniffer one. The thing is they should work so that to sniffer
each other’s network traffic. But remember keep them apart from
the main network. The relevant computer should have binary and
necessary tools and the attacked one should not contain any
applications but those needed for analyzing.
The second
and the most vital stage in malware reverse engineering is the
environment baselining, which is taking a snapshot of
current environment. Why is it so vital? The reason is if
this stage in not carried out well, it will affect seriously the
next stages. Each snapshot is supposed to imprint a current
state of environment before any change is made, after which one
more snapshot should be taken.
Going on to
another stage, it is worth mentioning that the previous ones are
only preparations and now, in the third stage, we set to
information collection. This stage has two steps to be made
among which there are static and dynamic analyses. Thanks to
them we can understand the nature of malicious software. Static
analyzing means information collection without executing a
program. In the result we get its scripts, passwords, commands
and so on and so forth. Meanwhile
dynamic analyzing means executing a program for binary
examining.
And the last
but not the least, having all the information collected, now we
can reverse engineer the binary. Remember that sometimes some of
the stages above should be carried out several times. And that
is all. I hope that this review will help you to cope with
malicious software.