-
April 18th, 2005, 12:45 AM
#1
Member
question about virus's in general
considering for a fact that virus's (at least most of the truly devestating ones) use assembly, I was just wondering how they can still spread? I mean since assembly is based on the commands used for the specific processor of a computer, how can a virus written in assembly spread to so many different computers? I mean do they include "if" instructions in order to deal with every single type of processor? Thanks.
-
April 18th, 2005, 01:17 AM
#2
they spread becasue they arent built in assembly. they are built in many languages. and many are made to exploit a program vulnerablitity to they communicate with that program or the service that program uses rather than the processor it self. so then the program talks tot the processor.
-
April 18th, 2005, 06:01 AM
#3
Virus's were written in assembly for several reasons, mainly being speed, and size. Assembly allows for direct communication with the hardware so you can optimize the code that way. Whereas a compiler will not produce code that is as small or fast.
As far as spreading across multiple architectures it really doesnt matter since a virus is mainly written for a specific os and not a specific cpu. So knowing that a OS typically goes with only one type of cpu, then you dont have to worry about cross platform stuff.
<chsh> I've read more interesting technical discussion on the wall of a public bathroom than I have at AO at times
-
April 18th, 2005, 07:04 AM
#4
As suggested, assembly is neat and fast...........but your box is actually running binary/machine code.
Like assembly is a first generation high level language?.......remember...it still needs a compiler?
-
April 18th, 2005, 08:17 AM
#5
Member
remember...it still needs a compiler?
- Agreeing further. Most of the viruses are either executable or attached to executables, in a way it cannot be just a source code, as far as I can elaborate, like any other program, a virus has to be a compiled version of the source or it relies to a program (i.e. an executable, dll, registry) to work or spread.
I mean since assembly is based on the commands used for the specific processor of a computer
- You are missing the link here, what you mean here is the raw material of the product, the product itself (VIRUS) had been the fact that it was assembled, tested, and deployed should be the final product in which what nihil had pointed out to be 'COMPILED'.
* Ow, someone will throw a bomb on me about 'SCRIPTS' which are actually source code based, keep in mind that malicious scripts, macros, although act as viruses still rely on programs like browsers and spreadsheet progs to spread
A nice read about viruses and hows - From Wikipedia - http://en.wikipedia.org/wiki/Computer_virus
-GONE
an\"to*nym (noun) [Greek: a word used in substitution for another]
A word of opposite meaning ; a counter-term ; used as a correlative of synonym
- Dr. Gung-ho
-
April 18th, 2005, 10:56 AM
#6
Re: question about virus's in general
Originally posted here by stickmansquark
I mean since assembly is based on the commands used for the specific processor of a computer, how can a virus written in assembly spread to so many different computers?
Because they're all written for and running on (unpatched) windows machines with Intel (or compatible) hardware.
Oliver's Law:
Experience is something you don't get until just after you need it.
-
April 18th, 2005, 02:02 PM
#7
Because they're all written for and running on (unpatched) windows machines with Intel (or compatible) hardware.
...hmmmmm this is true in some cases.. but how do you patch stupidity..
..hmm the anti virus is telling me it is out of date.. I'll fix it next week
..hmm the computer is telling me that Nortuns isnt working.. yes it is... it is there in the program list!
..hmmm what is this special program that this person I dont know from adam, has sent especially to me?
.. do I list the human exploites..
and BTW.. as for assembler code.. what the hell does the cpu use anyway? bloody french fries..
the assembler code will use the basic i386 codes.. you sure as hell dont need to use the multimedia extensions in the P4 to wipe some dumbass's HDD, or run a keylogger..
now the people on the motorola chipset machines have different code.. so a i386 coded prog wont work directly there.. that is one reason why a Win virus wont cause damage to a Mac..
"Consumer technology now exceeds the average persons ability to comprehend how to use it..give up hope of them being able to understand how it works." - Me http://www.cybercrypt.co.nr
-
April 18th, 2005, 02:18 PM
#8
Hey there,
It is notoriously known that coding with Assmbly is very, very hard ... you would need to write hundreds of lines to perform a little comand or functions... then it would be really a hard job.. and only the very meticulous programers would be a ble to do that ... so why bothering doing that ... we have OOP today ... and as you mentioned Assembly is machine dependent ...
Assembly is being used to improve the performance of the viruses... like gaining direct memory access and control ... so I still believe the assembly is being used to enhance the performance not to CREATE viruses ...
Just my $ 0.02
\"The only truly secure system is one that is powered off, cast in a block of concrete and sealed in a lead-lined room with armed guards - and even then I have my doubts\".....Spaf
Everytime I learn a new thing, I discover how ignorant I am.- ... Black Cluster
-
April 18th, 2005, 03:12 PM
#9
Ever tried to write a BO in something else besides assembly?
Oliver's Law:
Experience is something you don't get until just after you need it.
-
April 19th, 2005, 05:14 AM
#10
As Black Cluster was saying, assembly is not gonna be the first choice of languages to write code in. What tends to happen is that the code is compiled then dis-assembled so that it can be tweaked for performance in asm. Not as hard but still hard and a pain. As far as writing tons of assembly, yes that is very accurate. A simple for loop, just the looping mechanism may take upwards of 10 lines of code just to implement in assembly whereas in java it takes 2.
For example:
JAVA
int i = 2;
ASSEMBLY
i rmb 1
ldaa #2
staa i
this assembly code is for the motorola 6811 series microcontrollers if anyone is curious. That is just to give you an idea of how much more is involved in coding assembly as opposed to a high level language.
Also to note my previous post was not exactly clear but i hope it got the point across, if wanted i will clarify it and repost it.
<chsh> I've read more interesting technical discussion on the wall of a public bathroom than I have at AO at times
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
|