Hola a todos.
Estoy aprendiendo sobre el formato PE y estoy comprendiendo su estructura ayudandome de Ollydbg, pero me surgieron una dudas.
1. Cuando creo un archivo asm y lo ensamblo con fasm y lo abro con Ollydbg me muestra el siguiente la siguiente advertencia:
Module 'asm001' has entry point outside the code ( as specified in the PE header). Maybe this file is self-extracting or self-modifying. Please keep it in mind when settings breakpoints
Pero si abro ese mismo codigo ensamblado con masm32, no me muestra esa advertencia, aun que busque y lei que no es algo por lo que me tenga que preocuopar pero quisiera ver si se puede quitar la advertencia con codigo ensamblado en fasm
2. ¿las direcciones de memoria pueden cambiar?
Esto lo pregunto porque ayer esta tenia un valor de ImageBase=6F800000 y en la sección .data el valor de VirtualAdres=800000 y la suma de esto deberia ser la direccion real de la sección .data en Memory map en la columna de Address el valor era 6FC00000 lo cual si era correcta pero al abrir el Dump de la sección .data me debio de haber mostrado los valores de los dos strings que declare en el codigo de fasm, pero no fue asi y me moestraba caractere raros y no estaban los estrings declarados, o acaso no es asi?
Tambien si queria ver el Entry point sumando el ImageBase y el AddressOfEntryPoint no me daba la direccion real del Entry point, de este caso si no recuerdo los valores del AddressOfEntryPoint pero si recuerdo que no me daba.
Pero lo mas curioso es que el programa si se ejecutaba bien y pasaba lo mismo con el codigo ensamblado con masm32.
O ¿hay algunos factores que provoquen estos errores?
Hoy si ya obtengo todas las direccion correctamente y todo coincide hasta lo que he leido.
3. ¿Las direccion del ImageBase siempre sera la misma?
Esto lo pregunto porque cuando abro el programa ensamblado en fasm o en masm32.
El sistema donde estoy usando Ollydbg es windows 10 x64.
Espero haberme expresado correctamente y que se entendian bien mis dudas .
Saludo,
Drewermerc.