x86 Disassembly/Linux

From Wikibooks, open books for an open world
Jump to: navigation, search

The Linux page of the X86 Disassembly Wikibook is a stub. You can help by expanding this section.


The GNU/Linux operating system is open source, but at the same time there is so much that constitutes "GNU/Linux" that it can be difficult to stay on top of all aspects of the system. Here we will attempt to boil down some of the most important concepts of the GNU/Linux Operating System, especially from a reverser's standpoint

System Architecture[edit]

The concept of "GNU/Linux" is mostly a collection of a large number of software components that are based off the GNU tools and the Linux kernel. GNU/Linux is itself broken into a number of variants called "distros" which share some similarities, but may also have distinct peculiarities. In a general sense, all GNU/Linux distros are based on a variant of the Linux kernel. However, since each user may edit and recompile their own kernel at will, and since some distros may make certain edits to their kernels, it is hard to proclaim any one version of any one kernel as "the standard". Linux kernels are generally based off the philosophy that system configuration details should be stored in aptly-named, human-readable (and therefore human-editable) configuration files.





Configuration Files[edit]


Here are some popular shells:

An acronym for "Bourne Again SHell."
A precursor to Bash.
C Shell
Korn Shell
A Terminal oriented Csh.
Z Shell


Some of the more-popular GUIs:

K Desktop Environment
GNU Network Object Modeling Environment



File Analyzers[edit]

Disassembles object files, executables and libraries. Can list internal file structure and disassemble specific sections. Supports both Intel and AT&T syntax
Lists symbols from executable files. Doesn't work on stripped binaries. Used mostly on debugging version of executables.