psoul l'excellent post de réponses à votre question, donc je ne vais pas reproduire son bon travail, mais j'ai l'impression qu'il faudrait aider à expliquer pourquoi c'est à la fois parfaitement valide, mais aussi terriblement stupide question. Après tout, ce est un endroit pour apprendre, non?
Des programmes informatiques sont produits par une série de conversions, en commençant par l'entrée de l'lisible par l'homme, corps de texte des instructions (appelé "code source") et se terminant avec un ordinateur lisible par l'ensemble des instructions (appelé alternativement "binaire" ou "code machine").
La manière qu'un ordinateur exécute un ensemble de code machine des instructions est finalement très simple. Chaque action d'un processeur peut prendre (p. ex., lire à partir de la mémoire, de l'ajout de deux valeurs) est représenté par un code numérique. Si je vous dit que le numéro 1 destiné à hurler et le chiffre 2 signifie pouffer de rire, et a ensuite tenu jusqu'cartes avec 1 ou 2, sur eux vous attend à crier ou rire en conséquence, je serais à l'aide de ce qui est essentiellement le même système d'un ordinateur pour fonctionner.
Un fichier binaire est juste un de ces codes (l'habitude de les appeler "op codes") et l'information (les"arguments") que l'op codes de loi.
Maintenant, le langage assembleur est un langage informatique où chaque mot de commande dans la langue représente exactement une op-code sur le processeur. Il existe un rapport direct 1:1 de traduction entre un langage d'assemblage de commande et d'un processeur op-code. C'est pourquoi le codage de l'assemblée pour un x386 processeur est différent de celui de codage de l'assemblée d'un processeur ARM.
Le démontage est simple: un programme lit dans le binaire (code machine), en remplacement de l'op-codes avec leur équivalent en langage d'assemblage des commandes, et renvoie le résultat dans un fichier texte. Il est important de comprendre cela, si votre ordinateur peut lire le binaire, vous pouvez lire le binaire, soit manuellement avec une op-table de code dans votre main (ick) ou par le biais d'un désassembleur.
Désassembleurs avoir quelques nouvelles astuces et de tous, mais il est important de comprendre qu'un désassembleur est, finalement, une recherche et remplacer le mécanisme. C'est pourquoi toute CLUF qui l'interdit est en fin de compte à de l'air chaud. Vous ne pouvez pas à la fois permettre à l'ordinateur de lire les données du programme et aussi d'interdire à l'ordinateur de lire les données du programme.
(Ne vous méprenez pas, il y a eu des tentatives pour le faire. Ils travaillent ainsi que les DRM sur les fichiers de musique.)
Cependant, il y a des bémols pour le démontage de l'approche. Les noms de variables sont inexistants; une telle chose n'existe pas de votre CPU. La bibliothèque des appels sont source de confusion comme l'enfer et nécessitent souvent de démonter plus binaires. Et l'assemblage est dur comme l'enfer à lire dans les meilleures conditions.
La plupart des programmeurs professionnels ne peuvent pas s'asseoir et lire de l'assemblée de la langue sans avoir des maux de tête. Pour un amateur, c'est juste ne va pas arriver.
De toute façon, c'est un peu passée sous silence-plus d'explication, mais j'espère que cela aide. Tout le monde peut se sentir libre de corriger toute inexactitude de ma part; il a été un moment. ;)