Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Eternal Idol

#42
No sin hacer lo mismo (o algo muy semejante) que hacen esas funciones, leer el archivo, procesarlo, mappearlo en memoria como ejecutable por un lado y procesar el PE para encontrar las funciones por el otro. Si mañana creo una DLL y la copio en system32 no se va a cargar en todos los procesos innecesariamente, solo se cargara en los que la referencien de alguna manera.
#43
Esta todo en el PE, el nombre de las DLLs y funciones importadas.
#44
Cita de: marax en 15 Noviembre 2021, 17:31 PM
Se que .idata mantiene una tabla de las direcciones a las funciones de las importaciones... Mi pregunta es... ¿Todas las importaciones?

Hice un programa "Hello world" para analizar esta tabla y veo un millon de direcciones, cuando mi programa usa pocas funciones (en relacion).

Entonces, ¿Se carga todo?

Esto es trabajo del dynamic linker por lo que me imagino que no tiene idea de que funciones son las que va a utilizar el programa, por lo que las carga todas, ¿No?

¿Que es todas? Todas las que tu programa enlaza estaticamente si, todas las que existen no. Y ojo que no las referencies directamente en tu codigo no significa que la RTL no lo haga.
#45
Tenes que depurarlo linea por linea, yo lo hice y el problema estaba aca:
Código (c++) [Seleccionar]
cout<<parent[i]<<" - "<<i<<" \t"<<graph[i][parent[i]]<<" \n";

i es 4 y parent no esta inicializado y a su elemento 4 no se le asigna ninguna valor posteriormente:
Código (c++) [Seleccionar]
int parent[V];
#47
No se hacen tareas.
#48
C++ es mas viejo y sigue siendo excelente, el punto era que si bien CHS se volvio obsoleto NTFS fue diseñado en una epoca en donde CHS todavia no lo era.  ::)
#49
[youtube=640,360]https://www.youtube.com/watch?v=77ehLGcQRn8[/youtube]
#50
Programación C/C++ / Re: C++
8 Noviembre 2021, 14:27 PM
Supongo que el programa que llama a system no esta en el mismo directorio que "programa" ...