ABSOLUTE BEGINNERS
"computer knowledge for girls"

by Gogogirl
courtesy of fravia's pages of reverse engineering
(published at fravia's in September 1999)

Well... it is not really an essay about reversing, at least not this part of it, but it is however an attempt to interest people in computer knowledge, i know from my own experience that there are lots of people who are pretty bright and excellent problem solvers who have ignored or just chickened out when it comes to learning about computers, just because of the constant bombardment by commercial ads and the very male approach when it comes to trying to sell computers, i think that reversing is an art very suited for girls yet i have seen evidence of very few female reversers, and i know of very few girls who have ever bothered to learn about computers, so i decided to write some sort of clarification or reference text for people who know absolutely nothing about computers in an attempt to catch some of their interest and maybe turn them onto the path of assembly language and reversing, anyway, im not sure that this one is for you, but i really enjoy your page and you seem dedicated so i thought iīd send it to you anyway, it didnīt look too good in your muster so i send it as raw text, hope you wonīt get upset about it, best regards, GogoGirl



Computer knowledge (for girls)

So you want to learn what this tin-can next to the
keyboard is but you 
havenīt found any real info, well there are (to my
knowledge anyway) very 
few essays anywhere that deal with the fundamentals of
computers 
operating-systems and all that other stuff that just
goes in one ear and out 
the other, well here ios an attempt by little olī me
(GogoGirl)
You are sitting in front of a computer right? and you
are currently reding 
something on the screen, how the hell did it get
there.
A computer isnīt really that hard to understand if you
just get some basic 
info, like for instance;
1.what is a computer?
2.what is a computer program?
3.what is an operating system?

The first one is probably the hardest one, what a
computer is... itīs pretty 
much a complex calculator that runs really fast but we
will have to leave 
that for now since going there too soon would be too
boring for you (youīre 
a girl and you want to have
fun right?)

2.The second one is simpler. a computer program is an
algorithm, a sequence 
if you will, that consists of a list of events that
may or may not take 
place if certain conditions are met, for instance, you
have a program like 
notepad.exe, it consists of a window in which you
write stuff, if you have 
written something in notepad.exe and open the menu at
the top of the window, 
you then choose "save as" and type in the name
"mytext" and press the button 
"save" it will save the text you have just written in
a textfile called 
mytext.txt, we all (even total computer illitaretes
like the ones that this 
essay is written for) know this but what we are after
is why this happens, 
well the reason is that you by choosing "save as" and
typing in a name for 
the file you met the one of the conditions for this
programs, the conditons 
that makes this program save a file, but once again
what is a computer 
program, well i already told you that it is an
algorithm, a list of events 
or even better instructions, theese instructions has
to be loaded into to 
the computers RAM memory for interpretation so that
the computer can 
understand them, then you may say: -but its already in
the memory, i have 
tons of gigglybytes of ram on my c: hard-drive and
lots of other stuff 
too.....
No there is a difference in memory and hard disk
space, on the unit c: which 
is your hard-drive there is a static type of storage
memory, this is not 
computer memory, only a way of storing information
staitcally, you can copy 
a file onto the hard-disk but you have to load it into
a RAM memory to ba 
able to use it, the RAM memory is a bank which can
hold information 
dynamically, in the RAM  memory the information
(sequence of instructions) 
of the computer program is stored temporarily and as
long as the program is 
runnign you can use it, by this i mean that the
program will respond to any 
conditons that you meet, for instance if you enter the
save menu, and so on,
a computer program is also called a file, but there
are a lot of different 
types of files but in the end they are all programs or
parts of computer 
programs, that goes even for the file "mytext.txt"
that we produced earlier, 
on its own it canīt do much but when read in notepad
it can provide you with 
useful information that you may have written in it,
for instance a shopping 
list or an adress for somone or whatever,
So now we have established that all files are programs
and all programs are 
just some kind of code that the computer understands
and monitors and when 
you do something in relation to the program, it
responds and does this or 
that, well that wasnīt too hard,

3.What is an Operating System?
I said in the last lines of the last segment that a
program is interpreted 
by the computer, but that is really just half the
truth, you see on your 
computer there are several programs running at once,
the biggest and most 
corrupted and anoying is known as Windows, if itīs 95
or 98 doesnīt matter 
itīs still just a crappy program, but we all have to
use it so letīs make 
the best of it,
Ok lets get going here, we can nag when we get old and
ugly,
There is as i said several programs running on your
computer at any given 
time,
if you want a brief overview of whatīs happening press
CTRL*ALT*DEL and 
windows will display a listof current events in the
RAM memory of the 
computer,
there will be a few incomprehendable names of stuff
you never really heard 
anything about, so lets forget about them for a while,
 As i said earlier 
Win95/98 is also just a computer program and its
constantly running (as long 
as you have your computer turned on) and monitors what
you do and what the 
programs you load into memory can or can not do, one
of the things that 
windows monitors is how you move your mouse-pointer
for instance, have you 
noticed that the mouse-pointer doesnīt show up on your
screen until windows 
has finsihed loading, thatīs because without windows
it doesnīt exist (well 
it does but not in the sense of being available).
Windows is as i said a big 
program that works in the background and it provides
access to you computer 
and the functions that it has, for instance when you
click on a file (for 
instance "mytext.txt" and hpold the mouse-button down
you can drag the file 
across the screen and drop it wherever you want, and
if you drop it on a 
different hard-disk than the one that it is on it gets
copied onto that 
drive, now you probably know that just the mouse
itself could never figure 
out how to do that, and neither can your computer, but
windows can, because 
windows controls both the mouse pointer the mouse
buttons and the hard 
drive, and the filing system and blah blah blah,....
so windows is used to communicate with your hardware,
your hardware is the 
stuff that some guy has jammed into the magic tin-can
next to the keyboard, 
the hardware generally constists of the following, a
"motherboard" this 
board is a big plate which holds the processor,
graphics card, sound card 
and some connectors for mouse, keyboard and printer,
the processor is the 
one that all the boys wants to be as fast as possible,
its that pentium one 
two or three and the one that is bragged about in all
commercial 
advertisements, the processor has a clock-rate which
can be for instance 400 
Mhz, there are different types of processors but we
donīt care coz its 
running and thats enough for now, the graphics card is
the one that paints 
the screen, it translates raw data into something that
can be portraied on 
the screen, and the soundcard plays sounds in more or
less the same way.
All this is your hardware and windows is in control of
it, it tells the 
hardware what to do and it does this by using the
processor, the processor 
is basically a railway central station, windows sends
data to it and the 
processor passes it along, for instance to the
graphics card,
All this means that you cant just run a program on a
computer you have to 
have an Operating system to enterpret the program and
to communicate with 
the hardware functions in your computer, in fact
without an operating system 
the computer is dead,
There are other operating systems and they vary a lot
in size, performance, 
stability and functionality, for instance DOS, DOS is
much much smaller than 
win95/98 and it uses a different way to access the
hardware, and a different 
interface (the inteface is what the sceen looks like
when you are running 
the OS) in dos you donīt have all the fancy grafix and
you donīt have a 
mouse (well you can have if you have dos-drivers for
your mouse) basically 
you just type your commands in it, the example for
today being a file copy, 
in windows you just put the mouse pointer on top of
the file icon and click 
the right mouse button, then you select copy from the
menu, move the mouse 
to the directory into which you want to copy the file
and click the right 
mouse button select paste from the menu and its all
done,
In dos you would have to write all of that by hand and
it would look 
something like this:

Copy c:\mytext.txt d:\catalouge\textfiles
  |   |      |      |     |          |              
  |   Hdd    |     Hdd    |          |   
  |       Filename       Directory   |
The command    Subdirectory-and the place where te file will be copied to

The command is copy (as it is a copy we want to make)
Hdd is an abbreviation 
of hard drive the file name is the the file we want to
copy, d:\ is a second 
hdd and catalogue is a directory on drive d:\ and
textfiles is a 
subdirectory in the catalogue directory, this means
that its a directory 
inside the directory,
Anyway there it is, dos commands, they arenīt very
hard but may be useful 
once in a while, there are a few of them so if you
search on the web you can 
find a reference guide for them, but thats another
story, do it when you 
feel like it, we donīt want to get too bored right?

Ok back to windows, so how does windows work then?
well, first off, how does 
it access the hardware (the cards and stuff) well it
uses something called 
hard-ware-drivers, or just drivers, theese are small
programs that are 
desigend by  the manufacturer of the hardware to suit
the needs of windows 
95/98 (or whatever OS you may be using) theese drivers
are not programs tat 
you can run yourself, they are constantly run along
with windows and they 
have to be otherwise your machine wouldnīt work, the
drvers explain to 
windows how to acces the cards or mouse functions and
lets the hardware 
communicate with the programs that you run,

The Files
There are many different types of files in your
computer and they work in 
different ways, but first there is a modification you
must make in your 
windows, open my computer by leftclicking on it, then
select from the 
display menu, choose preferences and select show all
files and also select 
show complete filenames, this will give you more
information on the stuff 
crammed into your computer, and it will also give you
access to files you 
didnīt know existed, there are several types of files
and here are some 
breif descriptions of a few of them, all of the
filenames will by myfile 
followed by an extension but i think youīll get it, ok
here we go_:

myfile.exe  this is a program, you can run this type
of file either by 
itself or along with some other file, some dos-files
called anyname.exe 
produce an ms-dos window on you screen theese files
can either be run in dos 
or winows, sme of them wonīt run unless you attach a
file to them, for 
instance drag another file and drop it on top of the
file.exe, if you try to 
run just the file.exe you get some kind of message
about parameters and 
stuff, that is the information that tells you how to
use the program and so 
on, but if you want to learn more about ms-dos i
suggest you download some 
sort of reference manual, in windows files however
they usually start of a 
program or a window with different kinds of functions,
the.exe file can also 
summon functions from other files of other kinds, for
instance .dll files or 
stuff like that, but the main point abourt the .exe
file is that its a 
program and can be run.
the .exe stands for executable

myfile.com  this is a smaller and less complex version
of the .exe it can 
also be run but usually it requires some other file to
be either in the same 
directory or that you write some file name or
parameters (parameter are 
numbers or letters which the .com program understand)
to make it run, the 
.com stands for command, one good example is the
format.com which is a 
program that erases your harddrive, it has to be used
with a parameter, and 
the parameter in this case is c:\ or d:\ or whatever
harddrive you want to 
format, (donīt run it unless you are sure of what you
are doing ok?

myfile.txt  This is a textfile, it contains little
more than the text you 
put into it, it is generated by notepad and is mainly
just a container for 
text.

myfile.bat   this is a batchfile, it contains a
sequence which is executed 
when you run the batchfile, the easiest way to
describe it is probably to 
say that it is a very long command line in ms-dos, it
can be used to 
automate processes, like for instance the file copy
that we wrote in ms-dos 
earlier, so if you want to copy a file a thousand
times to the same location 
without typing the commands you can create a batchfile
for it, (there are of 
course much more useful things you can do with this
type of file but if you 
really are that interested you can search on that
topic on your own, there 
is plenty of info)

myfile.log   This is a log file, it is generted by
some kind of program, 
there are many different programs that generate theese
kinds of files, 
usually its a way to store error messages when
something goes wrong in your 
computer, then you can open the .log file in notepad
and read what actually 
went wrong, pretty handy sometimes, basically it just
keeps record of events 
that has taken place in the machine

myfile.dat    this is a database or file that contains
infrmation on how 
something should work or look, there is a file called
system.dat on your 
harddrive, that is actually your registry, the
registry is a very large 
database which conatin all the settings of you
computer, what kind of 
hardware you have and software of course, it is
generated continously by 
windows, it has a lot of information about you and
what you have been up to, 
there are many text-files on the registry that you can
read and ii think you 
should since there is a lot to learn there

myfile.ini    this is an Initialization files, it is
written to set 
parameters in a program, like for instance in the
"win.ini"  which is the 
file that set up certain parameters in windows when
you start it up, in the 
win.ini (you can open it by typing win.ini in the run
dialog box on the 
start menu) you can find for instance details on how
your desktop looks, if 
you have set a wallpaper (backgorund picture) and
where it is located on 
your hdd, (windows needs to know where the wallpaper
is so that it can load 
it into memory, the RAM memory we talked about
earlier, then it can display 
it on your monitor) there are also another use for
.ini files, like for 
insatnce when you install a program, there is very
often a .ini file in the 
setup directory (the place where the installation
files are kept., and this 
.ini files tells the installation process where the
files should be placed 
on the harddrive, the installation tells windows where
to put the files and 
then windows remembers it, and the way windows
remembers is by writing down 
the locations of the files in the system.dat or what
we know as the 
registry, but we will talk more about that later.

myfile.dll     Dynamic Link Library, oh man, this
sounds really hard, what 
the hell is a link library and all that, well its not
so hard as it sounds, 
and it will seem evenm easier after the next chapter,
i promise, well the 
dll file or dynamic link library is a file that
contains information that 
can be used by other programs (the .exe files for
instance :-}  ) these .dll 
files are commonly found in the c:\windows\system
directory, but can also 
appear on other places, itīs usually niot a good idea
to move theese files 
since they are often installed in a place where thay
have to be, otherwise 
the .exe file wonīt know where to find them,   they
often contain 
information that a program needs to function, and
unlike the .ini or .txt or 
log files they are a intricate part of the program
(the .exe file) and are 
useless without it, and so is often the .exe file in
fact,

myfile.zip  this is what we call an arcive, or a
packed file, what it 
basically is is a way to store files that you arenīt
using, you canīt run 
the files stored in an arcive, you first have to
unpack them, you can unpack 
a zip-file by using winzip(from windows) and
pkunzip(from dos) pkunzip is 
used as a command ie you type a command line in dos
like you did when you 
copied the file in ms-dos, the command line for
pkunzip could look something 
like this:

Pkunzip.exe myfile.zip
    |          |
Command     parameter

the command is the name of the program you want to
use, in this case 
pkunzip, and the parameter is the name of the arcive,
there are other 
parameters that can be used by pkunzip but lets not
trouble ourselves with 
that, you can find info on that on the web too,
In windows on the other hand we use winzip (or
winzip.exe since it is an 
executable program). If you donīt have winzip
installed on your computer, 
please get it since you may need it from time to time,
but i bet you already 
have it, anyway we use winzip in the casual manner of
clicking on the file 
myfile.zip and then a box opens, in this box we can
see what files are 
contained within the arcive, we can then choose to
extract the files and 
designate a place where they should be put, the
process is more or less 
automated so there shouldnīt be much trouble,
The zip-file is probably the most common way of
storing files that arenīt 
being used at the moment, it is also an excellent
container for storing 
multiple files to be sent over the internet, you can
store basically as many 
files as you like inside a zipfile and it even
compresses the data so that 
the zip-file is smaller thatn the combined size of all
the files of the 
arcive, pretty neat huh,
The are other ways of arciving files, the most popular
are .rar and .ace 
produced by Winrar and Winace, or dos version Rar and
Ace which are more or 
less the same as the zip, they work the same way, end
of story for now, and 
as always more details are available at your
fingetips, just search on the 
web

More general stuff
Ok there are a few more things that need to be said
about theese filetypes, 
first off, theese are not all the file-types available
to you and windows, 
there are plenty of others but frankly to list more
would not only be 
unnecessary, it would also be very tedious, anyway
there are generally in 
the files i have mentioned more or less two distinctly
different types of 
files (apart from the zip-file which is the exception,
it doesnīt have 
anything to do with the other two kinds)
The first kind is the text-files, the ".txt" and the
".ini" the ".dat" and 
the ".bat" files are really just text files that are
treated in different 
ways by windows because of the different file
extensions, windows users 
(hence also windows) need to have different extension
on the files because 
it would be a bit too confusing to have all files
labeled .txt, it would be 
hard to know which was which and so... but in the end,
they are just 
textfiles with different file extension, they programs
in the sence of being 
files and that they contain information, but they are
not programs that can 
be run like for instance notepad,
The other filetype is a bit more interesting (well
thats more of a taste 
issue but right now i feel that they are) the files
with the extensions 
".exe" and ".com" and ".dll"
are all a form of executables, unlike the textbased
filetypes they cannot be 
read in notepad, they are in fact programs that
perform an action of some 
sort, and to be able to do that they have to contain
machine code, th 
machine code is a computer program or an algorithm
that has been translated 
into a binary sequence, and by that i mean it consits
of a long row of 1īs 
and 0īs theese would impossible to understand for any
human but perfectly 
understandable for any computer (as long as the
Operating system supports 
the file that is) when you turn a computer program
into binary code it 
becomes an .exe file, it becomes a runable program
that can be loaded into 
the RAM memory where it is executed and wait for its
conditions to be met, 
as we spoke of in the beginning, the .com file is a
smaller and less 
complicate version of the .exe and a .dll is a kind of
extension of the .exe 
file, if you brake it down to really simple terms we
could say that the .exe 
file is a house (your home) the .com is your trailor
and the .dll is your 
toolshed, the .com is a selfsupporting unit in many
ways like your house but 
smaller and less complicate, the house is also
selfsupported but sometimes 
it may need items from the toolshed, for instance a
wrench to fix the 
plumbing in the bathroom,
All theese filetypes have one thing in common, they
are binaryīs and are 
programs, they contain computer code and they canīt
really be understood by 
leafing through them, or can they
hmmmmm.................

well yes in fact there is some ways of understanding,
the first thing you 
need to do is to find a way get to read them, you cant
do it in notepad, it 
just wonīt let you open them, and you canīt do it in
word-pad coz youre just 
not allowed, how then, well we need some tools,  we
need a disassembler,,,,  
STOP HOLD IT RIGHT THERE!! whats that i donīt knwo
what youre talking ībout  
???????????
Well ok weīll slow down again, To produce a computer
program you need to 
write it, and since i earlier said that you canīt
understand binary code, 
there must be another way around it right, yep there
is, you write the 
program in a text editor (notepad? yes indeed) you
write it in a compilable 
computer language, A compilable computer language is a
languge that consists 
of a set of instructions, basically there can be
instructions that tells the 
compouter to type something on the screen or to paint
something on the 
screen or play a sound or something like that, theese
instructions look 
different in the different computer languages that
exist, they vary in 
length and complexity and understandability, there are
several different 
languages as i said, here are a few of them:

C or C++  a commonly used and pretty wel respected
language that are used by 
many programmers that write applications or games for
windows, not too hard 
to learn and pretty fast and functional,

Visual Basic   Just a joke this is not a language yet
somehow it is getting 
more and more popular, it produces unworking huge
applications that crash 
almost every time, not hard to learn but even easier
to ignore.

Assembly   Yep this is the one, its what we want to
learn its the key to 
they real inside of the box, its lightning fast and it
is the basis of all 
programming, harder but not impossible and of course
the one true love of 
any computer entusiast, the main reason for this is
that you can (almost 
always) get an ssembly version of a file that has been
compiled and 
therefore gain access to the code (that is if you
understand assembly 
languge)

Theese three languages are just the most common ones
but there are others, 
pascal java and others, but you can as usual track
down your own info about 
thoose on the web.

Ok back to the issue, how can we read and understand
the binary files, the 
programs, hmm, well since they are what we call
compiled (to compile is to 
take the text information that is written in notepad
or any other text 
editor and translate it into binary code, it works
like this, if you for 
instance write a computer program in the language C++,
you write it as text 
commands in notepad, after you have written the
program you run it through 
what we call a compiler, in this case a C++ compiler,
any other wouldnīt 
work you see, this compiler (which in itself is a
computer program) will now 
translate the text (the written C++ commands) into
binary and executable 
code, this generates the .exe file which can be run on
your computer,
The compilation will render the program unreadable for
humans but 
understandable for the computer.
But there is a way to decompile the file, or at least
disassemble it, and 
they way we do this is by using a disassembler, the
disassembler takes the 
binary code of the executable file and translates it
back to assembly 
language, this makes it at least partly understandable
for somone who knows 
assembly language, and if you learn to read assembly
language you will 
eventually be able to crack or modify programs so that
you can use them as 
it suits you, sounds exciting? yes indeed.
In the disassembled code we can find information about
the program and how 
it works, and we are again able to read the algorithm
of the program.


red

 


red

redhomepage red links red anonymity red+ORC redstudents' essays redacademy database redbots wars
redantismut redtools redcocktails redjavascript wars redsearch_forms redmail_fravia
redIs reverse engineering illegal?