Existe-t-il un moyen simple (comme un programme libre) de convertir du code c / c ++ en assembleur x86? Je sais que n’importe quel compilateur c fait quelque chose de très similaire et que je peux simplement comstackr le code c puis désassembler l’exécutable conforme, mais c’est un peu excessif, tout ce que je veux, […]
Le test est sur Ubuntu 12.04, 32 bits, avec gcc 4.6.3. En gros, je fais quelques manipulations binarys sur les binarys ELF et je dois maintenant assembler un programme d’assemblage et garantir que les symboles libc sont chargés sur une adresse prédéfinie. Laissez-moi élaborer dans un exemple simple. Supposons que, dans le code d’origine, les […]
J’ai un programme en assembleur pour le terminal Linux qui est censé fonctionner à travers une série de manipulations mathématiques, comparer la valeur finale à 20, puis utiliser if logic, signaler ou = relation. Le code est: segment .data out_less db “Z is less than 20.”, 10, 0 out_greater db “Z is greater than 20.”, […]
Pour l’implémentation d’une bibliothèque de surveillance de la mémoire, j’aimerais déplacer la stack du programme surveillé et réserver la moitié supérieure de la mémoire virtuelle pour utilisation dans la bibliothèque de surveillance, conformément au modèle “half’n’half” décrit. par des outils tels que TaintTrace , LIFT et Hobbes . Cependant, il ne me semble pas clair […]
J’essaie de désactiver tous les niveaux de cache pour mon ordinateur. Processeur E5-1650 v2 @ 3.50GHz Intel Xeon J’ai écrit un outil pour appeler le code d’assemblage suivant pour désactiver / activer le cache et afficher la valeur du registre CR0. case XENMEM_disable_cache: __asm__ __volatile__( “pushq %%rax\n\t” “movq %%cr0,%%rax\n\t” “orq $0x40000000,%%rax\n\t” “movq %%rax,%%cr0\n\t” “movq %%cr0, […]
En suivant ces instructions, j’ai réussi à ne produire que 528 octets de taille a.out (lorsque gcc main.c m’a initialement fourni un fichier de 8539 octets). main.c était: int main(int argc, char** argv) { return 42; } mais j’ai construit a.out à partir de ce fichier d’assemblage à la place: main.s: ; tiny.asm BITS 64 […]
J’essaie d’écrire un shellcode en assembleur. Je dois exécuter une commande /usr/bin/killall ET une commande /usr/bin/wget . Les deux commandes fonctionnent parfaitement dans le shellcode avec l’ execve() . Mais maintenant, je veux combiner ces 2, mais ce n’est pas possible car le programme se execve() lorsque le premier appel execve() est exécuté. (des pages […]
Par exemple, il s’agit d’un assemblage avec table de saut movl $5, -4(%ebp) cmpl $10, -4(%ebp) ja L13 movl -4(%ebp), %eax sall $2, %eax movl L14(%eax), %eax jmp *%eax .section .rdata,”dr” .align 4 L14: .long L13 .long L3 .long L4 .long L5 .long L6 .long L7 .long L8 .long L9 .long L10 .long L11 .long […]
Je suis en train de faire un projet de système d’exploitation, jusqu’à présent j’ai mon chargeur de démarrage en cours d’exécution. Je peux charger un fichier binary en utilisant bios interuppt, mais je ne parviens pas à charger et à appeler la fonction C à partir du format de fichier ELF: Voici mon programme C […]
J’écris un programme pour convertir une image et comparer la vitesse de traitement des données en C et en assemblage. J’ai 3 projets: projet principal en C DLL en C pour convertir l’image DLL en ASM pour convertir l’image Dans l’en-tête de la DLL C, j’ai simplement écrit: #ifdef PROJEKTC_EXPORTS #define PROJEKTC_API __declspec(dllexport) #else #define […]