Navigation bar
  Home Print document Start Previous page
 41 of 49 
Next page End 36 37 38 39 40 41 42 43 44 45 46  

40
2.13 The NeuroWorm. Using Artificial Intelligence in
computer malware. 
During the past recent years, the field of artificial intelligence (AI) attracted many
researchers, scientists and commercial software vendors. Today, there are
several interesting open source and commercial programs available for the
public. The subject of AI is a very exciting, but very complex and long to describe
it here, in the small section of this book. Instead, as I did in previous sections, I
will give the short explanations and concentrate on the main subject of this book
– the idea and possible implementation by malware writer through misuse of
existing software. If you interested to get more information in this field, I
encourage you to read books and visit web sites that specialize on this subject.
For demonstration purposes, I choose the "NeuroSolutions" software from
NeuroDimension, Inc [29].
Here is the definition of the Neural Network according to the vendor:
"A neural network is an adaptable system that can learn relationships through
repeated presentation of data and is capable of generalizing to new, previously
unseen data. Some networks are supervised, in that a human determines what
the network should learn from the data. In this case, you give the network a set of
inputs and corresponding desired outputs, and the network tries to learn the
input-output relationship by adapting its free parameters. Other networks are
unsupervised, in that the way they organize information is hard-coded into their
architecture."
Among many interesting features of this program, the one particular capability
inspired my imagination – the ability to generate ANSI C++ code of neural
network that can be integrated in a custom application.
Here is the short description of this feature by the vendor:
“The Code Generation facility of NeuroSolutions produces ANSI-compatible C++
source code for any breadboard, including learning. There are two main uses for
this feature.
You may find that the processing power of your PC is too limited to train your
network in a reasonable amount of time. By generating the code for your
network, you can compile this code on a high-end workstation and train the
network there. The resulting weights can then be saved to a file and imported
back into your breadboard within NeuroSolutions.
Secondly, you may have a network that is trained to a point that it is of practical
use. You may then want to use the code generation feature to produce a "black
box" that can easily be integrated into a C++ application. This application would
use function calls to feed data into the network and extract the resulting output.” 
Previous page Top Next page