bueno, pues ya voy entendiendo mas, por lo menos el ejemplo del taller lo logre hacer bien, pero sigo teniendo problemas con el block
a ver, primero sigo los pasos de la primer parte
en el caso de mi sistema es
Citar
Name: .EHN -> Valor a plasmar: 2E 45 48 4E 00 00 00 00
VirtualSize: 0x17 -> Valor a plasmar: 17 00 00 00
VirtualAddress: 0x3000 -> Valor a plasmar: 00 30 00 00
SizeOfRawData: 0x200 -> Valor a plasmar: 00 02 00 00
VirtualSize: 0x17 -> Valor a plasmar: 17 00 00 00
VirtualAddress: 0x3000 -> Valor a plasmar: 00 30 00 00
SizeOfRawData: 0x200 -> Valor a plasmar: 00 02 00 00
me imagino que si son 0x200, porque reloc es
00100000 + los 17, quedaria alineado con FileAlignment (11C)
FileAlignment lo encuentro asi 00020000
Aqui tengo una duda, como mencionas una de las 2 formas de encontrar esto es colocando la
cantidad exacta de la aplicaion
Citar
Corresponderá a la ubicación o posición en el archivo físicamente de los datos de nuestra nueva sección. Tenemos 2 formas de conseguir dicho valor, una es con el tamaño exácto del archivo y ya
en mi caso es "0002BE00", hacer esto y dejarlo asi esta bien? o se tiene que alinear?
lo menciono porque tambien mencionaste
Citar
De ambas formas llegamos a que es: 0x600, si se dan cuenta es múltiplo del FileAlignment por lo cúal constatamos que la sección anterior a nosotros está alineada.
PointerToRawData: 0002BE00 esto es la cantidad exacta del archivo -> entonces quedaria 0x00BE0200
porque la sección .reloc de PointerToRawData y SizeOfRawData seria
00100000 --> PoniterToRawData
00AE0200 --> SizeOfRawData
Citar
PointerToRelocations: 00 00 00 00
PointerToLineNumbers: 00 00 00 00
NumberOfRelocations: 00 00
NumberOfLineNumbers: 00 00
Characteristics: C0 00 00 00 -> Valor a plasmar: 00 00 00 C0
PointerToLineNumbers: 00 00 00 00
NumberOfRelocations: 00 00
NumberOfLineNumbers: 00 00
Characteristics: C0 00 00 00 -> Valor a plasmar: 00 00 00 C0
de la ultima sección que es .reloc recorro 0x20h o 40 bytes, alli escribo mi sección
despues busco la sección BOUND_IMPORT_TABLE
Citar
Ya les había mencionado que el directorio correspondiente al BOUND_IMPORT_TABLE es el número 12, si aplicamos un poco de matemáticas y nos paramos justo al inicio de IMAGE_SECTION_HEADER y restamos (5*8) estaremos justo en la declaración del directorio. 0x1B0 - 0x28 = 0x188 -> BOUND_IMPORT_DIRECTORY
bueno, en mi caso IMAGE_SECTION_HEADER se encuentra en
1D8 - 0x28 = 1B0
otra forma de llegar es con PE + 0xD0
0xE0 + 0xD0 = 0x1B0
bueno la cuestion es... que me encuentro con BOUND_IMPORT_TABLE
000001A9 6D 00 00 40 00 00 00 78 02 00 00 28 01 00 00 00 10 m..@...x...(.....
me imagino que quedaria asi si borro RVA y Size
000001A9 6D 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 10 m..@.............
despues al final, agrego los 200 bytes para escribir la frase
y lo guardo
pero cuando lo ejecuto me menciona que no es una aplicacion win32
dejo el notepad con toda la modificacion que hice
http://www.mediafire.com/?1azivv26r9a9jce
bueno, ya descansare porque creo ya me bloque y cosas que ya hice se me estan dificultando de nuevo, mejor continuare despues, gracias por la ayuda de hoy
salu2