Behind the hack,ever wonderd how?

If you ever wondered what is really going on behind the screen you are looking at and what makes that box with a fast chip in it do what it does, this article might give you a better understanding of it all.
Ever wished you could send an e-mail virus that hosed your inbox back to the one who made it after slightly changing the code to triple the damage? Well… maybe not, if you are like most users, learning the workings behind an application are far from reality. But knowing a bit more than an average user might give you an advantage in the future and hopefully you'll look at it from a better point of view and save yourself some trouble.

Input - Output
The only intelligence found in a machine is very much artificial. Computers work with user's input, and output information based on it. This simple form of function has its advantage and that is, it is never wrong. Applications are design to respond based on user options and can not act on their own. The most fundamental function of this in any programming language is called a condition. Everything happening inside of a computer is based on conditions and there are no logical solutions to any of them. It might seem obvious to many but some actually forget the fact that this wonder box we call a computer can not take actions on its own because the interface or AI makes it look like it can and does.
Today's applications are created using other applications called programming languages. Those programs are written and designed to be user friendly and utilize, in most cases, English words. However, the base of those programming languages is still the same and can be understood no matter which programming language the application was written in, with the only difference being the processor. Programming languages such as C, Visual Basic, Java, Python and many others are examples of the above mentioned applications. The mother of all and a fundamental machine language, which all of those convert to for the processor to understand is the assembly language. With its many forms and versions, it is the most difficult and most complicated form of computer programming, yet it is also the most powerful for those few that understand it.
Understanding
Understanding machine code is only a fraction of a learning process because of how much data the language is presented in. A few lines written in programming language such as Visual basic can compile to thousands of lines presented in pure assembly language. As applications size grows in today's software, the learning process never stops for an assembly language programmer.
This is why many programmers choose the much simpler, shorter and quicker form of programming and give away the benefits of pure machine code. However, don't be fooled by the words such as simpler, shorter and quicker. Assembly language is the simplest form of programming while also being the most efficient when trying to save space as well as being the fastest to execute or function if programmed properly.

Open source
Imagine a world where every application written for every computer also came with full source code for all programmers to study and improve on. The best assembly programmers live in that world today. Every program can be presented in pure assembly language and could be changed, improved and learned from if you have the knowledge. Actually understanding and commenting every line, depending on its size, could be beyond average person's intelligence. The skill requires not only the knowledge of every instruction and operational code but also brain power to manage many tasks at once while keeping clear logic of the entire project.

Help
As in anything, there are tricks which can help reduce the process of comprehending the structure of a program. Assembly language debuggers and processor simulators are the fundamental tools for doing so. They start a given application and load all external libraries and drivers (associated files) to a simulated buffer where the actual code can be stepped through line by line in hopes of understanding the functions. Another trick to reduce the needed tasks of understanding a program is the knowledge of which language was originally used in the first place. Many routines and functions compile the same and can be found in large chunks of raw data inside of a library or directly in the executable file. And of course, experience and collected data from previous projects can greatly improve the ability to get the project done faster.
But what about just changing one thing you don't like or need extra?

Digital heroes
In many cases the entire application does not need to be understood. A good processor simulator can execute and work any application in real time and halt the process when a function, which is desired for a change, is called. From that point learning the functions of only the branched conditions is needed to grasp its mechanism and further to make a logical decision on where to make the change. This is how many of the cracks and "keygen" programs, found all over the internet, are created to get around registration, installation or key protection in many of the commercial programs. Although illegal and punishable by law they are often made by highly skilled code engineers proficient in assembly language in the spirit of bringing the ridiculously over priced applications to those who can never afford to pay for them. They can also have a somewhat legal use when a company drops or can no longer support their product and the only way to get it functioning is to cheat. Also, for those who want to evaluate the full product under no restriction before deciding on a purchase, cheating can also be accepted however not encouraged by the creators of the goods.
Source

Yes ladies & Gentlemen Assembly Language is the answer to all your questions,it's the basis and one of Techs most respected languages,i am sure members and staff who understand it are proud of it,good job girls & guys :hap2:
 
Back
Top