2011-12-14 4 views
0

Si j'ai l'adresse virtuelle de l'appel système, puis-je désassembler cet appel système? Je veux le faire sur le noyau en cours d'exécution pour trouver ce que toutes les adresses sont traitées par l'appel système particulier en cours d'exécution. J'utilise un noyau 32 bits 2.6.38 (x86).Comment faire pour désassembler un appel système

+0

Je l'ai lu plusieurs fois et Je n'arrive toujours pas à comprendre ce que tu veux dire. Quelle est "l'adresse" d'un appel système? –

+0

@DavidSchwartz Pour savoir si un rootkit a affecté le système en regardant les instructions désassemblées – user567879

+0

Quelle CPU? "32 bits" n'est pas assez d'informations –

Répondre

0

Je ne suis pas sûr que votre question soit très significative.

S'il vous plaît lire davantage system calls, kernels, operating systems, linux, et le linux kernel

Essentiellement, un appel système (du point de vue de l'application) une opération atomique mis en oeuvre par une instruction de machine (int 0x80, syscall, etc.) avec quelques instructions de tenue de livres avant (par exemple chargement des arguments d'appel système dans les registres) et après (par exemple, réglage errno). Quand cela arrive, le contrôle va dans le noyau, avec un (différent) espace d'adresse différent et un protection ring différent; voici le list of linux syscalls

Le code réel faisant l'appel système est à l'intérieur du noyau. Vous pouvez obtenir le code du noyau Linux sur kernel.org

Voir aussi la Linux Assembly Howto et asm.sourceforge.net

Pour comprendre ce système appels est en train de faire, utiliser une application ou processus strace

+0

Désolé de ne pas avoir clarifié la question. Je veux désassembler un appel système particulier pour le noyau en cours d'exécution afin que je puisse trouver si une attaque de rootkit s'est produite ou non. – user567879

+0

Comme je vous l'ai expliqué, cette question n'a aucun sens. Le code machine d'un appel système est essentiellement une instruction machine ('syscall') et vous ne pouvez pas le" désassembler ". S'il vous plaît prenez le temps de lire tous les liens que je vous ai donnés. –

+0

J'ai compris que GDB pouvait le faire par gdb /boot/vmlinux-2.4.*/proc/kcore. Mais dans mon Debian, je n'ai que vmlinuz pas vmlinux. Est-ce qu'il y a un autre moyen? Ce lien donne l'explication http://www.symantec.com/connect/articles/detecting-rootkits-and-kernel-level-compromises-linux – user567879

Questions connexes