Articles of assembleur

Un moyen facile de convertir le code c en assemblage x86?

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, […]

Comment charger des symboles définis par la bibliothèque à un emplacement spécifié?

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 […]

Logique mathématique d’assemblage de MSNA

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.”, […]

Déplacement de stack et réservation de la moitié de l’espace adressable sous Linux

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 […]

activer / désactiver le cache sur la machine Intel 64 bits: le bit CD est-il toujours activé?

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, […]

exécuter le code machine binary à partir de C

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 […]

Shellcode: effectuer 2 appels execve ()

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 […]

Le compilateur mettrait-il la table de saut à la fin de la fonction?

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 […]

Chargement de elf-i386 à partir de mon chargeur de démarrage

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 […]

MASM: Accès à la variable C globale à partir de l’assembly

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 […]