Different articles not yet ranked among any section.
Improvements in Operating Systems security have created a race to "bare metal" between malware and protection software authors. Bare metal capabilities are defined as software or firmware applications that run outside the context of the OS and are therefore very powerful and difficult to detect. Hypervisors and SMM based rootkits are examples of bare metal capabilities. Because the digital battle ground is contracting, advantage goes to the one who can establish a presence there first.
In the beginning, there was BIOS (I assume reader knows what BIOS is). Back in those times, processors were running in 16-bit mode, and RAM was architecturally limited to 1 megabyte. As the evolution went forth, came 32-bit, and later 64-bit x86 CPUs, amount of RAM was increasing, and new ways of accessing it were being developed. But BIOS remained same. This situation was far from ideal, since BIOS code was very limited, and operating system loader had to load kernel just with using the most basic BIOS services, from 20 years ago. Creating new standard seemed impossible on such diverse market. But it was done anyway.
For many lowlevel programmers, object oriented programming (OOP) tends to be confusing and filled with abstractions. In this article I build up and explain some aspects of OOP from C or Assembly programmer's point of view.
As we all know, we shouldn't call BIOS from Windows drivers, and Windows officially doesn't support this. But recently, I was in situation where I had to do it, so I looked for some way how.
Many assembly programmers make linux applications using only syscalls, without glibc. Altough this way is usually considered bad practice, it is a fact.