elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
22 Mayo 2012, 22:13  


Tema destacado: [Overclocking] Récords de overclock del foro

+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Análisis y Diseño de Malware (Moderadores: Karcrack, [Zero])
| | |-+  Direccion sección
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Direccion sección  (Leído 2,683 veces)
soez

Desconectado Desconectado

Mensajes: 50



Ver Perfil
Direccion sección
« en: 8 Agosto 2010, 15:51 »

A ver si me das un empujoncito, en el codigo que direccion hay que poner la fisica y la virtual? y aparte la direccion de la sección seria PointerToRawData no? o VirtualAddress? en que se diferencian? Thanks
En línea

01001010 01100001 01110110 01101001 01100101 01110010
bizco


Desconectado Desconectado

Mensajes: 698


Ver Perfil
Re: Direccion sección
« Respuesta #1 en: 8 Agosto 2010, 16:00 »

soez lee un poco sobre el formato PE y esas dudas las tendras despejadas.
En línea
soez

Desconectado Desconectado

Mensajes: 50



Ver Perfil
Re: Direccion sección
« Respuesta #2 en: 8 Agosto 2010, 16:09 »

Quizas no lo haya aprendido lo que es debido, pero leer lo he leido y lo voy entendiendo. Voy a buscar mas manuales, thanks
En línea

01001010 01100001 01110110 01101001 01100101 01110010
[L]ord [R]NA


Desconectado Desconectado

Mensajes: 1.507


El Dictador y Verdugo de H-Sec


Ver Perfil WWW
Re: Direccion sección
« Respuesta #3 en: 8 Agosto 2010, 17:48 »

Soez debes de leer y si no entiendes volver a leer y luego volver nuevamente a leer hasta que te quede una duda en concreto que no puedas resolver... pero estas preguntando el paso 1, paso 2, paso 3, paso 4, paso n...  asi verdaderamente no aprenderas nada.
En línea

bizco


Desconectado Desconectado

Mensajes: 698


Ver Perfil
Re: Direccion sección
« Respuesta #4 en: 8 Agosto 2010, 19:50 »

aparte ayer pregunto como obtener el valor del offset 0x3C... no es por ofender pero en unas horas no vas a comprender el formato PE y si a esto le sumas que tienes que leer sobre punteros....
En línea
soez

Desconectado Desconectado

Mensajes: 50



Ver Perfil
Re: Direccion sección
« Respuesta #5 en: 9 Agosto 2010, 01:11 »

aparte ayer pregunto como obtener el valor del offset 0x3C... no es por ofender pero en unas horas no vas a comprender el formato PE y si a esto le sumas que tienes que leer sobre punteros....

Es delito preguntar? aparte no han sido solo unas horas, nadie nace sabiendo
En línea

01001010 01100001 01110110 01101001 01100101 01110010
bizco


Desconectado Desconectado

Mensajes: 698


Ver Perfil
Re: Direccion sección
« Respuesta #6 en: 9 Agosto 2010, 01:24 »

para nada es delito, es mas tonto el que se queda con la duda. pero tampoco es delito aconsejar. y viendo que continuas con tu educacion igual que en otras secciones y te tomas a mal los consejos, pues nada continua empezando por el techo que vas muy bien.

Citar
aparte no han sido solo unas horas

vale 2 dias, total lo mismo da. sin tener una base sobre lo otro, como si bufas al viento.
En línea
[Zero]
Moderador
***
Desconectado Desconectado

Mensajes: 1.057


CALL DWORD PTR DS:[0]


Ver Perfil WWW
Re: Direccion sección
« Respuesta #7 en: 9 Agosto 2010, 01:30 »

Es delito preguntar? aparte no han sido solo unas horas, nadie nace sabiendo

Lo que te dijo ctlon te lo dijo por tu bien (más fácil hubiera sido responderte), y yo respaldo su consejo, te lo digo por experiencia, tanto por "preguntón" como por "respondón". Si intentas afrontar los problemas por ti mismo y pensando "no lo dejaré hasta que lo comprenda" sí aprenderás realmente, en cambio la gente que al mínimo problema que encuentra pide ayuda realmente no está progresando, solventa el problema en ese momento pero no vive el proceso de aprendizaje necesario para llegar a esa solución.

Saludos  ;)
En línea


“El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche
soez

Desconectado Desconectado

Mensajes: 50



Ver Perfil
Re: Direccion sección
« Respuesta #8 en: 9 Agosto 2010, 01:33 »

Valla animos que das majete, debes de creerte el unico capacitado. Y no son ofensas por consejos, si me ofendo es con razon, no me veras enfadarme por alguien que pregunta si no todo lo contrario. Nos tomamos aqui las cosas demasiado en serio, cuando esto es un simple foro, donde la gente se comunica. No debamos confundir con la gente que quiere las cosas hechas con la gente que pone interes. Ale ya puedes contestar


Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.


EDITO: lo de [zero] es una respuesta, no ha menospreciado en ningun momento (por cierto alguien a quien admiro). [zero] entiendo lo que dices, pero no por que me digan algo voy a pasar y no voy a querer entender lo que hace, solo me ayuda entre tantas cosas que aprender.
« Última modificación: 9 Agosto 2010, 01:37 por soez » En línea

01001010 01100001 01110110 01101001 01100101 01110010
bizco


Desconectado Desconectado

Mensajes: 698


Ver Perfil
Re: Direccion sección
« Respuesta #9 en: 9 Agosto 2010, 01:53 »

soez en ningun momento te menosprecio, y no soy el unico capacitado.

Citar
Nos tomamos aqui las cosas demasiado en serio, cuando esto es un simple foro, donde la gente se comunica.

enserio son, logicamente. se comunica , aprende una de otra y en ocasiones nos reimos un  rato.

Citar
No debamos confundir con la gente que quiere las cosas hechas con la gente que pone interes

interes? el otro tema que creaste pide como obtener el valor en el offset 3C... solo es sumar base+offset, si no entiendes eso poco interes creo que has puesto hasta el momento, y menos ya hablemos de meterle mano al formato PE pq no vas a saber ni por donde empezar a la hora de hacer codigo que no depende de su ejecutable.

y ahora tu respuesta, en el propio formato como ya se te aconsejo lo explica:

Citar
Virtual Address. The virtual address the section is currently relocated to, relative to the Image Base. Each Section's virtual address space consumes a multiple of Section Align (power of 2 between 512 and 256M inclusive. Default is 64K), and immediately follows the previous Section in the virtual address space (the virtual address space for a image must be dense).

Citar
PHYSICAL OFFSET = DD Physical offset for section's first page. This offset is relative to beginning of the EXE file, and is aligned on a multiple of the File Align field in the PE Header. The offset is used as a seek value.

asi que hijo, te vuelvo a decir que estudies el formato, no que lo leas como una revista playboy.
En línea
soez

Desconectado Desconectado

Mensajes: 50



Ver Perfil
Re: Direccion sección
« Respuesta #10 en: 9 Agosto 2010, 01:59 »

Jeje para decir que no me ves capacitado si debes de creerlo, en unos dias te pongo un codigo, para que lo veas ;)

PD. Lo que si resulta facil es aconsejar en vez de decir, esto tienes que aprender, eso si que es poner interes, uff
« Última modificación: 9 Agosto 2010, 02:04 por soez » En línea

01001010 01100001 01110110 01101001 01100101 01110010
bizco


Desconectado Desconectado

Mensajes: 698


Ver Perfil
Re: Direccion sección
« Respuesta #11 en: 9 Agosto 2010, 02:06 »

Yo no he dicho que no te veo capacitado, te he dicho que tendrias que estudiar el formato de los ficheros con los que quieres trabajar. como ya te he demostrado en el estaban tus dudas aclaradas.

En línea
soez

Desconectado Desconectado

Mensajes: 50



Ver Perfil
Re: Direccion sección
« Respuesta #12 en: 9 Agosto 2010, 02:10 »

Yo no me referia a poco o mucho capacitado, si no el interes que pongo

Yo no he dicho que no te veo capacitado, te he dicho que tendrias que estudiar el formato de los ficheros con los que quieres trabajar. como ya te he demostrado en el estaban tus dudas aclaradas.

EDITO: Lo tenia hecho desde ayer, lo que pasa que no se por que no me funca, si pregunto es por algo, y aprendo mas programando que estudiandolo

Código
//Variables cabecera
                   PIMAGE_DOS_HEADER PIDH;
                   PIMAGE_NT_HEADERS PINTH;
                   PIMAGE_SECTION_HEADER PISH;
                   LPSTR lpFileMaped;
                   //Direccion DOS
                   PIDH=(PIMAGE_DOS_HEADER)&lpFileMaped[0];
                   //Cogemos la direccion donde empieza el PE
                   PINTH=(PIMAGE_NT_HEADERS)&lpFileMaped[PIDH->e_lfanew];
                   //Manejador
                   HANDLE hFile;
                   //Escribimos variables
                   DWORD dwTamArchivo, dwNumeroBytesLeidos;
                   //Recorremos todas las secciones
                   //for(DWORD i=0; i<INTH->FileHeader.NumberOfSections; i++)
                   //{
                       //Cogemos la direccion de la sección
                       PISH=(PIMAGE_SECTION_HEADER)&lpFileMaped[PIDH->e_lfanew+sizeof(IMAGE_NT_HEADERS)+sizeof(IMAGE_SECTION_HEADER)*1];
                       //Abrimos el fichero
                       hFile = CreateFileA(szArchivo,GENERIC_READ+GENERIC_WRITE,0,0,OPEN_EXISTING,0,0);
                       //Obtenemos el tamaño del archivo y los pasa a bytes
                       dwTamArchivo = GetFileSize(hFile,0);
                       //Creamos un buffer que contendrá el contenido de la sección en bytes
                       LPSTR lpBuffer = (LPSTR)GlobalAlloc(GPTR, dwTamArchivo);
                       //Leemos la sección una vez pasado a bytes, metiendo el contenido en lpBuffer
                       ReadFile(hFile, lpBuffer, dwTamArchivo - (PISH->PointerToRawData + PISH->SizeOfRawData), &dwNumeroBytesLeidos,0);
                       //Nos colocamos en la sección
                       SetFilePointer(hFile, PISH->PointerToRawData, 0, 0);
                       //Ciframos o desciframos con XOR ^ 100
                       for(DWORD j=0; j<0PISH->SizeOfRawData; j++){
                       lpBuffer[j]^=250;}
                       //Nos colocamos en la sección
                       SetFilePointer(hFile, PISH->PointerToRawData, 0, 0);
                       //Sobreescribimos los nuevos carácteres
                       WriteFile(hFile, lpBuffer, dwTamArchivo - (PISH->PointerToRawData + PISH->SizeOfRawData), &dwNumeroBytesLeidos,0);
                   //}//for i
                   //ciframos
                   //Cerramos el fichero
                   CloseHandle(hFile);
 

Esto en la nueva sección estaria bien?


inicio = INTH.OptionalHeader.ImageBase + ISH.VirtualAddress;  
final = INTH.OptionalHeader.ImageBase + ISH.VirtualAddress + ISH.misc.VirtualSize;

y el nuevo entry point ?

INTH.OptionalHeader.AddressOfEntryPoint = INTH.OptionalHeader.ImageBase + ISH.VirtualAddress + INTH.OptionalHeader.sizeofimage

Contando con que la sección tenga caracteristicas de escritura
« Última modificación: 9 Agosto 2010, 05:08 por soez » En línea

01001010 01100001 01110110 01101001 01100101 01110010
[L]ord [R]NA


Desconectado Desconectado

Mensajes: 1.507


El Dictador y Verdugo de H-Sec


Ver Perfil WWW
Re: Direccion sección
« Respuesta #13 en: 9 Agosto 2010, 18:35 »

Valla animos que das majete, debes de creerte el unico capacitado.

Deberias de ponerte en mi posicion cuando no sabia ingles y queria aprender ASM, pregunte en un lugar y me dieron lo que tenia que leer, dije que no entendia y me dijeron que era un p*to que no daria para esto por preguntar tanto, que dejara de intentar programar y me fuera a jugar algun juego de esos que con un manual sale sencillo... Ctlon  y Zero no estan mostrando que esten capacitados o no, si estan ahi es porque deben de estarlo. hay un señor que dijo.

"Dale un Pez y comera por un Dia, enseñalo a pezcar  y comera toda la vida".
En línea

bizco


Desconectado Desconectado

Mensajes: 698


Ver Perfil
Re: Direccion sección
« Respuesta #14 en: 9 Agosto 2010, 19:59 »

lo primero que no me gusta es que ni verificas el resultado de las funciones y continuas llamando una tras otra sin control alguno, pon el codigo completo si tienes dudas y soluciona lo primero.
En línea
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines