Par exemple, la fonction Kernen system_call
décompilerait à:Comment décompiler une fonction spécifique du noyau?
push %eax
...
call * 0xc03094c0(,%eax,,4)
Comment est ce fait dans linux?
Par exemple, la fonction Kernen system_call
décompilerait à:Comment décompiler une fonction spécifique du noyau?
push %eax
...
call * 0xc03094c0(,%eax,,4)
Comment est ce fait dans linux?
je pense que ce pourrait être aussi simple que cela:
recompiler le noyau avec des symboles de débogage, ou si vous utilisez la version de votre distro, prenez le package de débogage. Ensuite, exécutez gdb vmlinux
et tapez disas <function name>
si vous voulez regarder une fonction C. Sauf que system_call
n'est pas une fonction C, donc GDB ne le recherchera pas de la même manière. Mais vous pouvez toujours démonter:
(gdb) info addr system_call
Symbol "system_call" is at 0xc0403964 in a file compiled without debugging.
(gdb) x/4i 0xc0403964
0xc0403964: push %eax
0xc0403965: cld
0xc0403966: push %fs
0xc0403968: push %es
Vous n'auriez pas vraiment besoin de décompiler quelque chose depuis son linux. Vous pouvez juste regarder la source. Un bon navigateur de source est LXR. Rejoignez la liste de diffusion du noyau si vous avez besoin d'aide, ce sont des gens très sympathiques.
Je veux l'obtenir par decompiler, pas à partir de la liste de diffusion ... – assem
décompiler, ou de désassembler? – Karmastan