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 - Belial & Grimoire

#231
hola

ya vi mis errores, me sobraban 40 bytes, quitandoselos se volvio a colocar el icono

el segundo error que note es que no coloque bien los hexa

asi lo pusiste tu

00000300

asi lo puse yo

00030000

la siguente sección hice lo mismo

00020000
00000200

solo que note que en SizeOfImage tu pusiste

Citar00100300

y no recordaba que era la suma de SizeofImage y SizeOfRawData

00030000
00001000
00031000

00100300


y yo lo deje como

00000400

y olvide que NO son 200 decimales, son 200 en hexa y no aumente la cantidad exacta

continuare con la ultima sección a ver que tal

gracias por la ayuda
#232
hola

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

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

CitarCorresponderá 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

CitarDe 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


CitarPointerToRelocations: 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

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

CitarYa 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
#233
hola

ya hice la primera parte igual en windows 7 y funciono perfecto

ahora quise hacer el intento con notepad en windows 7, pero me encontre con un problema

notepad, tiene 4 secciones, el ultimo es .reloc, al intentar calcular VirtualAddress, me aparece de esta forma

00000242 00 00 00 00 00 00 00 00 00 00 40 00 00 40 2E 72 65 ..........@..@.re
00000253 6C 6F 63 00 00 34 0E 00 00 00 F0 02 00 00 10 00 00 loc..4...........
00000264 00 AE 02 00 00 00 00 00 00 00 00 00 00 00 00 00 40 ................@
00000275 00 00 42                                           ..B             


por lo visto aqui esta

----> 00 F0 02 00 || 00 10 00 00 loc..4...........

de que manera se obtendria aqui VirtualAddress?

CitarVirtualSize: 00 00 00 17 y VirtualAddress: 00 00 20 00, procedemos a sumarlos: 0x2017 y alineamos, recuerden el múltiplo mayor inmediato es 0x3000 y listo, tenemos nuestro VirtualAddress.

seria 00 f0 02 17?, y cual seria el resultado?

por cierto, usare la misma cantidad de 0x17 para no revolver tanto y seguir el ejemplo del taller

y otra cosa, esto hice para obtener la direccion donde se encontrara mi sección pero no encontre espacios vacios

28 * 4= A0 + 1D8 = 278

habra algun problema si le agrego 28 bytes para agregar mi sección?

salu2
#234
bueno, entonces lo de 0x17... es la frase y tambien virtualsize

ya entendi mas sobre los multiplos que me tenia confundido

pero a ver, para obtener VirtualAddress, como mencionas en el taller, hay que regresar una sección y tomar el virtualaddress + SizeOfRawData que seria algo asi

0x28 - 0x1C8 = 0x1A0


000001a0  2e 69 64 61 74 61 00 00  98 00 00 00 00 20 00 00  |.idata....... ..|


2e 69 64 61 74 61 <--- esto debe ser .idata
00 00 <--- esto debe ser virtualsize
98 00 00 00 <---- esto es VitualAddress
00 20 00 00 <---- esto es SizeOfRawData

bueno, esto esta en little endian, lo que seria

00 00 00 98
00 02 00 00


si sumo esos 2, seria 00 02 00 98, equivalente a 2098, si lo redondeo seria 3000

y finalmente quedaria asi, cierto?

00 00 00 98
00 02 00 00
/////////////
00 03 00 00


para encontrar SizeOfRawData entonces seria lo que sigue de VirtualAddress

000001a0  2e 69 64 61 74 61 00 00  98 00 00 00 || 00 20 00 00 <--- seria este

entonces si busco FileAlignment + SizeOfRawData seria

CitarFileAlignment: -> Lo encontramos con 0x98 + 0x24 = 0xBC y tiene un valor 00 02 00 00 (real: 00 00 02 00).

00 20 00 00
00 02 00 00


seria 0x220, su multiplo seria 400

aqui una duda, porque 400?, y porque no 300?

y para encontrar PointerToRawData, seria el siguiente de SizeOfRawData

000001b0  00 02 00 00 <---- aqui se encuentra 00 04 00 00  00 00 00 00 00 00 00 00  |................|

si se lo sumo al resultado de FileAlignment + SizeOfRawData + PointerToRawData... seria

0x400 + 200 = 0x600 <--- 00 06 00 00


espero haber entendido, si tengo algun error, espero puedan coregirme

bueno, al rato intentare hacerlo en windows, salu2
#235
hola

tengo ganas de empezar a entender mejor sobre seguridad web, casi todo el tiempo me e dedicado a aplicaciones y redes, asi que tambien, yo creo que es hora de aprender cosas nuevas (aunque siempre hay algo nuevo para la CPU XD) y en ellas esta la web, que casi nunca le puse atencion

bueno, quisiera empezar por lo basico, a leer  ;D

segun WHK esto es tanto necesario como opcional

CitarHTML (Obligatorio)
PHP
ASP
SQL general (Obligatorio)
MySQL
MSSQL (Opcional)
javascript (Obligatorio)
HTTP (Opcional)

ahorita descargue la biblia de mysql y he intento buscar algun libro sobre SQL en general

me podrian recomendar pdf's y si se puede de libros para leerlos

ahorita busco de HTML, PHP, javascript, que son creo lo mas importantes

ya tengo conocimiento basico de PHP, Python y Perl, pero creo me interesa saber bien sobre PHP

que libros me recomiendan?, y que tanto me recomiendan sobre HTTP y ASP?

espero puedan ayudar a un newbie... jeje, se siente raro regresar a novato jaja  :P

salu2
#236
hola

espero me puedas explicar algunas cosas que no entendi, todavia no lo hago en windows, por ahorita solo revise las aplicaciones que pusiste con linux para poder seguir el taller

pero tengo algunas dudas

Citar1.- Pero que cerca estamos ahora deberemos generar los datos de nuestra sección, agregaremos una simple cadena "TALLER DE SECCIONES EHN" con un tamaño de 0x17

de donde sale ese tamaño 0x17?

tampoco entendi muy bien como encontrar VirtualAddress

Citar2.-VirtualAddress: Corresponderá a la dirección virtual relativa donde se cargará la sección. Como sabemos nuestra sección esta justo al final, si tomamos el Valor del VirtualSize y el VirtualAddress de la sección anterior a nosotros, los sumamos y lo alineamos al SectionAligment podremos calcular nuestro VirtualAddress. Entonces:
- Tendremos que ubicarnos en la sección anterior, recuerdan que estamos en el final? si restamox 0x28 a 0x1C8 estaremos parados justo en la sección anterior: 0x1A0. Ahora utilizando el mismo procedimiento obtendremos lo valores VirtualSize: 00 00 00 98 y VirtualAddress: 00 00 20 00, procedemos a sumarlos: 0x2098 y alineamos, recuerden el múltiplo mayor inmediato es 0x3000 y listo, tenemos nuestro VirtualAddress.

segun lo que entendi, es que para encontrar VirtualAddress... ¿hay que sumar 98, que seria el inicio de IMAGE_OPTIONAL_HEADER + FileAlignment 00 00 02 00?

lo que seria 2098 y como multiplo seria 3000

aqui vienen 2 preguntas... ¿siempre es asi para encontrar VirtualAddress? y ¿cuando se habla de multiplos se refieren a redondear?, por ejemplo

si fuera 2234, aun seria 3000?, y si fuera 3005, entonces seria 4000?

Citar3.-SizeOfRawData: Corresponderá al tamaño de los datos de la sección en disco, piensan que 0x98? Bueno pues no!, En disco al igual que en memoria todo debe ser alineado, y como en disco no hay nadie que nos alineé los datos deberemos hacerlo. ¿Como? Igual que como hacíamos antes solo que ahora alineamos al múltiplo mayor inmediato del FileAlignment. Ya lo habíamos conseguido entonces sería 0x98 y su múltiplo mayor inmediato es 0x200. Esos será el total de datos que deberemos agregar en disco al final del archivo, correspondientes a los datos de nuestra nueva sección.

SizeofRawData es lo mismo que FileAlignment?, y por ejemplo si fuera asi?

FileAlignment 00 00 02 05, entonces SizeofRawData seria 0x205, y entonces lo tendria que pasar al multiplo mayor?, para que quede 0x300?

Citar4.-PointerToRawData: 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, y la otra es sumando los valores PointerToRawData + SizeOfRawData de la sección anterior. 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.

Este la verdad no entendi como encontrar, solo se que SizeofRawData equivale a 0x200, pero como llegaste a 0x600?

y la ultima que es una confusion seria

CitarName: .EHN -> Valor a plasmar: 2E 45 48 4E 00 00 00 00
    VirtualSize: 0x98 -> Valor a plasmar: 98 00 00 00
    VirtualAddress: 0x3000 -> Valor a plasmar: 00 30 00 00
    SizeOfRawData: 0x200 -> Valor a plasmar: 00 02 00 00
    PointerToRawData: 0x600 -> Valor a plasmar: 00 06 00 00
    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

en VirtualSize pusiste 0x98, lo que me imagino seria el inicio de IMAGE_OPTIONAL_HEADER, pero en el antiguo taller de Ferchu menciona

CitarName:   .Ferchu   (8 bytes)
VirtualSize:    0x00000050    (4 bytes)

Y finalmente agregamos nuestra frase "Hola yo soy la sección de prueba, y ocupo exactamente la cantidad de 0x50 bytes." al final del archivo, como los datos de la nueva sección.


aqui esto me confundio, cual es la diferencia entre los 0x50 de la frase y 0x98 que tu pusiste

bueno, por el momento seria todo, jeje creo tuve muchas dudas, pero me interesa el tema y espero no te moleste jeje XD

bueno salu2
#237

que bien, a ver si ahora puedo lograrlo en windows 7, bueno, pues ya ansioso de la continuacion del taller  ;-)

salu2 y suerte
#238
hola The Swash

muy bueno el taller espero pongas mas, tenia ganas de continuar con esto hace tiempo pero tuve un problema que espero me puedas decir que podria ser

hace tiempo intente modificar PE en windows XP y me funciono perfecto, pero quise hacer el intento en windows 7 y no logre expandir PE para agregar mi sección en notepad

y quisiera preguntarte... con cual windows te basaste para hacer este taller?, y haz logrado hacerlo en windows 7?

espero me puedas responder, y ojala continues agregando mas cosas a tu taller

salu2
#239
hola

que tan seguro es google chrome, bueno e escuchado que hablando sobre seguridad es uno de los mejores, pero hace unos años recuerdo que fue conciderado chrome como un navegador espia, ya que contenia spyware

y esa es mi duda, he escuchado que es muy bueno, pero aun sigue con spywares? o ya fueron retirados?
#240
mmm no me entere........ me hubiera gustado ir