Je suis en train de lire le livre Hacking, the art of exploitation. Dans le livre il y a une section qui explique l'utilisation de .dtors
y .ctors
.
J'essaie de reproduire un des exercices du livre mais dans mon exécutable je n'ai pas ces sections. Au début, je pensais que le problème venait du fait que je compilais pour 64 bits, mais maintenant je compile pour 32 bits et je n'ai pas de sections. .dtors
y .ctors
n'apparaissent toujours pas dans le tableau des sections. Voici le code :
#include <stdio.h>
#include <stdlib.h>
static void
miConstructor(void) __attribute__ ((constructor));
static void
miDestructor(void) __attribute__ ((destructor));
int
main(void) {
printf("En main() \n");
return 0;
}
void
miConstructor(void) {
printf("En el constructor\n");
}
void
miDestructor(void) {
printf("En el destructor\n");
}
Je compile avec :
gcc -m32 -o a.out dtors_example.c
C'est la sortie de nm
:
080495f0 d _DYNAMIC
080496e4 d _GLOBAL_OFFSET_TABLE_
080484dc R _IO_stdin_used
w _ITM_deregisterTMCloneTable
w _ITM_registerTMCloneTable
w _Jv_RegisterClasses
080485d8 r __FRAME_END__
080495ec d __JCR_END__
080495ec d __JCR_LIST__
08049704 D __TMC_END__
08049704 A __bss_start
080496fc D __data_start
080483c0 t __do_global_dtors_aux
080495e4 t __do_global_dtors_aux_fini_array_entry
08049700 D __dso_handle
080495dc t __frame_dummy_init_array_entry
w __gmon_start__
080484ba T __i686.get_pc_thunk.bx
080495e4 t __init_array_end
080495dc t __init_array_start
08048450 T __libc_csu_fini
08048460 T __libc_csu_init
U __libc_start_main@@GLIBC_2.0
08049704 A _edata
08049708 A _end
080484c0 T _fini
080484d8 R _fp_hw
080482b8 T _init
08048320 T _start
08049704 b completed.5730
080496fc W data_start
08048350 t deregister_tm_clones
080483e0 t frame_dummy
0804840c T main
08048428 t miConstructor
0804843c t miDestructor
U puts@@GLIBC_2.0
08048380 t register_tm_clones
La sortie de objdump
ni le spectacle .dtors
ou .ctors
Peut-être que les sections __init_array_end
, __init_array_start
ou __do_global_dtors_aux
sont liés au comportement de .ctors
y .dtors
?