Título: [?] Duda PE Crypter Publicado por: MeCraniDOS en 1 Julio 2014, 00:53 am Hello! ;D
Estoy intentando entender la estructura PE para poder entender como se hacen los crypters y esas cosas, y me he quedado estancado en una parte, llevo dos dias buscando para no preguntar porque quizás es algo obvio... :rolleyes: Si yo quiero añadir una sección a un ejecutable, tengo que incrementar el NumberOfSections y el SizeOfImage, y luego añadir los datos de la nueva sección, lo estaba programando y tengo de momento esto Código
Entonces lo que había pensado era hacer esto: Código
Los que sepan del tema ya sabrán donde estoy fallando, y yo me hago una ligera idea :huh: :huh: Según he estado leyendo, tiene que haber espacio para poder insertar la sección, cosa que no compruebo, pero donde está el contenido de cada sección? Justo despues de IMAGE_SECTION_HEADER? Lo que habia pensado era guardar el contenido que hay justo después de la última sección, insertar la mia, insertar el contenido que he guardado, y modificar de cada sección el PointerToRawData sumando el tamaño de la cabecera de la nueva sección, para apuntar de nuevo donde empieza la sección :rolleyes: Si no se hace así, a ver si alguien me puede dar una idea de como se hace.. Tengo los conceptos un poco liados :-\ Dos cositas mas :silbar: He estado leyendo el código de [Zero] de como añadir una sección.. http://foro.elhacker.net/analisis_y_diseno_de_malware/srcc_anadir_una_seccion-t261801.0.html (http://foro.elhacker.net/analisis_y_diseno_de_malware/srcc_anadir_una_seccion-t261801.0.html) Y veo que utiliza Citar PIMAGE_DOS_HEADER; PIMAGE_NT_HEADERS; PIMAGE_SECTION_HEADER; En vez de utilizar esto Citar IMAGE_DOS_HEADER; IMAGE_NT_HEADERS; IMAGE_SECTION_HEADER; Hay alguna diferencia? (Ventajas) PIMAGE_DOS_HEADER sería un puntero a IMAGE_DOS_HEADER? :huh: Y ya por último... :laugh: He visto en un crypter que he encontrado por internet esta rutina para descifrar una sección Código
Se supone que eso son instrucciones en ASM? :huh: :huh: Saludos Título: Re: [?] Duda PE Crypter Publicado por: daryo en 1 Julio 2014, 01:11 am no se mucho del formato pe , pero te recomiendo que no uses fopen sino la api de windows createfile y readfile y writefile googleando encontre esto http://www.rohitab.com/discuss/topic/33006-detailed-guide-to-pe-infection/
Citar Se supone que eso son instrucciones en ASM? es una shellcode http://es.wikipedia.org/wiki/Shellcode , Título: Re: [?] Duda PE Crypter Publicado por: x64core en 1 Julio 2014, 08:09 am Según he estado leyendo, tiene que haber espacio para poder insertar la sección, cosa que no compruebo, pero donde está el contenido de cada sección? Justo despues de IMAGE_SECTION_HEADER? Se puede añadir una sección sin problemas pero requiere más trabajo, se debe incrementar el tamaño de las cabeceras y realinear todas las seccionesy posiblemente actualizar RVAs a cualquier posible sección realineada esto es imposible si el ejecutable no tiene tabla de relocalización, bueno es 80% imposible todo depende del tipo de ejecutable. Lo que habia pensado era guardar el contenido que hay justo después de la última sección, insertar la mia, insertar el contenido que he guardado, y modificar de cada sección el PointerToRawData sumando el tamaño de la cabecera de la nueva sección, para apuntar de nuevo donde empieza la sección :rolleyes: Eso y muchas cosas más http://foro.elhacker.net/analisis_y_diseno_de_malware/taller_en_construccionsecciones_en_archivos_pe-t362515.0.html;msg1912797#msg1912797Si no se hace así, a ver si alguien me puede dar una idea de como se hace.. Tengo los conceptos un poco liados :-\[/size] Dos cositas mas :silbar: definiciones de tipo para punteros a las estructuras.He estado leyendo el código de [Zero] de como añadir una sección.. http://foro.elhacker.net/analisis_y_diseno_de_malware/srcc_anadir_una_seccion-t261801.0.html (http://foro.elhacker.net/analisis_y_diseno_de_malware/srcc_anadir_una_seccion-t261801.0.html) Y veo que utiliza En vez de utilizar esto Hay alguna diferencia? (Ventajas) Se supone que eso son instrucciones en ASM? :huh: :huh: Saludos Título: Re: [?] Duda PE Crypter Publicado por: MeCraniDOS en 1 Julio 2014, 11:10 am no se mucho del formato pe , pero te recomiendo que no uses fopen sino la api de windows createfile y readfile y writefile Y eso? :huh: Citar Se supone que eso son instrucciones en ASM? :huh: :huh: Saludos Sí Que bien, que yo sepa el ASM no es así (visualmente), pero ya me ha contestado daryo :) :) Cuando he dicho lo de la sección, era que mas o menos se lo que tengo que hacer, pero la lío tal y como lo hago, ya me habia leido el Taller en construcción que has pasado, y estaba intentando automatizar la Practica 1, agregar una sección, pero no se por donde seguir con el código porque siempre se rompe el ejecutable :huh: Título: Re: [?] Duda PE Crypter Publicado por: x64core en 1 Julio 2014, 13:07 pm Y eso? :huh: Sí Que bien, que yo sepa el ASM no es así (visualmente), pero ya me ha contestado daryo :) :) Cuando he dicho lo de la sección, era que mas o menos se lo que tengo que hacer, pero la lío tal y como lo hago, ya me habia leido el Taller en construcción que has pasado, y estaba intentando automatizar la Practica 1, agregar una sección, pero no se por donde seguir con el código porque siempre se rompe el ejecutable :huh: cabeceras del ejecutable y demás cosas. Título: Re: [?] Duda PE Crypter Publicado por: MeCraniDOS en 2 Julio 2014, 00:42 am Era eso a lo que me refería, gracias ;D
Otra pregunta, Karcrack me ha recomendado que monte el fichero en memoria y haga las modificaciones en memoria :silbar: He estado investigando sobre el tema, y me he hecho este mini código, pero no se si es del todo correcto... Código
Alguien me puede decir si es la manera correcta de cargar el ejecutable en memoria? (Mapear el archivo en memoria) O si hay alguna manera mas fácil.. ;D Buenas noches! :D Título: Re: [?] Duda PE Crypter Publicado por: x64core en 2 Julio 2014, 04:38 am Era eso a lo que me refería, gracias ;D ¿Porqué mapear el archivo? Suponiendo que se quiere agregar la sección al ejecutable y luego guardar la nueva imagen en disco Otra pregunta, Karcrack me ha recomendado que monte el fichero en memoria y haga las modificaciones en memoria :silbar: He estado investigando sobre el tema, y me he hecho este mini código, pero no se si es del todo correcto... Código
Alguien me puede decir si es la manera correcta de cargar el ejecutable en memoria? (Mapear el archivo en memoria) O si hay alguna manera mas fácil.. ;D Buenas noches! :D simplemente leer la imagen CreateFile+ReadFile Título: Re: [?] Duda PE Crypter Publicado por: MeCraniDOS en 2 Julio 2014, 14:54 pm ¿Porqué mapear el archivo? Suponiendo que se quiere agregar la sección al ejecutable y luego guardar la nueva imagen en disco simplemente leer la imagen CreateFile+ReadFile Es como he visto que lo hacen los que dominan mucho del tema :huh: http://foro.elhacker.net/analisis_y_diseno_de_malware/srcc_rebuildpe-t262602.0.html (http://foro.elhacker.net/analisis_y_diseno_de_malware/srcc_rebuildpe-t262602.0.html) http://foro.elhacker.net/analisis_y_diseno_de_malware/srcc_anadir_una_seccion-t261801.0.html (http://foro.elhacker.net/analisis_y_diseno_de_malware/srcc_anadir_una_seccion-t261801.0.html) http://foro.elhacker.net/analisis_y_diseno_de_malware/srcc_ampliar_seccion_ejecutable-t261800.0.html (http://foro.elhacker.net/analisis_y_diseno_de_malware/srcc_ampliar_seccion_ejecutable-t261800.0.html) En los códigos que hay ahí se trabaja desde memoria, y en funciones que he visto en otras webs, también trabajan mapeando el archivo y trabajando desde memoria :rolleyes: Título: Re: [?] Duda PE Crypter Publicado por: x64core en 3 Julio 2014, 09:34 am Es como he visto que lo hacen los que dominan mucho del tema :huh: Para mi el mapear el archivo es innecesario sino que alguien diga porque es necesario mapearlo.http://foro.elhacker.net/analisis_y_diseno_de_malware/srcc_rebuildpe-t262602.0.html (http://foro.elhacker.net/analisis_y_diseno_de_malware/srcc_rebuildpe-t262602.0.html) http://foro.elhacker.net/analisis_y_diseno_de_malware/srcc_anadir_una_seccion-t261801.0.html (http://foro.elhacker.net/analisis_y_diseno_de_malware/srcc_anadir_una_seccion-t261801.0.html) http://foro.elhacker.net/analisis_y_diseno_de_malware/srcc_ampliar_seccion_ejecutable-t261800.0.html (http://foro.elhacker.net/analisis_y_diseno_de_malware/srcc_ampliar_seccion_ejecutable-t261800.0.html) En los códigos que hay ahí se trabaja desde memoria, y en funciones que he visto en otras webs, también trabajan mapeando el archivo y trabajando desde memoria :rolleyes: Título: Re: [?] Duda PE Crypter Publicado por: Karcrack en 3 Julio 2014, 14:40 pm Para mi el mapear el archivo es innecesario sino que alguien diga porque es necesario mapearlo. No es necesario mapearlo. En mi opinión es más sencillo trabajar cuando te olvidas de buffers. No tienes que usar una cosa para leer y otra para escribir, sencillamente trabajas con punteros y luego lo reflejas en disco... |