Título: ¿Como hacer que los registros DS y ES apunten al Segmento de Codigo (CS)??? Publicado por: harry_the_blogger en 22 Agosto 2014, 16:40 pm Hola, estoy desarrollando un malware en ensamblador. Ya ha fallado varias veces cuando intento hacer una operacion que usa los registros ESI y EDI. Lo he analizado y he descubierto que los registros DS y ES no apuntan a los datos embebidos dentro del mismo segmento de codigo.
Por eso necesito que me ayuden un poco explicandome como hacer que los registros DS (Data Segment) y ES apunten hacia CS (Code Segment). Será que pueden darme un breve ejemplo en codigo de como hacerlo?? Gracias de antemano por sus respuestas. Título: Re: ¿Como hacer que los registros DS y ES apunten al Segmento de Codigo (CS)??? Publicado por: Eternal Idol en 22 Agosto 2014, 17:05 pm Código
Siempre es mejor exponer el problema que uno tiene en detalle (S.O., extracto de codigo, etc.) y no la solucion que cree debe darle. Título: Re: ¿Como hacer que los registros DS y ES apunten al Segmento de Codigo (CS)??? Publicado por: harry_the_blogger en 22 Agosto 2014, 18:35 pm Gracias Eternal Idol, sé que debí ser un poco más especifico y comentar más acerca de mi problema, pero no sé si al explicar un poco más mi problema, la gente no responda y no quiero que piensen que soy vago o que no estoy trabajando por una solucion.
Ah, la solucion que me brindaste ya la había probado antes, y aún así mi programa falló. Ahora pienso que debe haber otra cosa que está mal en mi codigo. Por ahora no preguntaré más, para no saturar el foro de preguntas mías. Gracias por tu respuesta. Título: Re: ¿Como hacer que los registros DS y ES apunten al Segmento de Codigo (CS)??? Publicado por: xv0 en 22 Agosto 2014, 19:29 pm Corrijanme si me equivoco, pero para modificar los registros de los segmentos necesitas tener privilegios en CPL. En que modo estas?
A porcierto estas en x86 o en x64? Recuerdo a ver leido de que en x64, se puede modificar los valores de fs y gs con una instruccion sin tener ningun tipo de privilejio, pero tienes que tenerla activada en el registro de control cr4. Un saludo. Título: Re: ¿Como hacer que los registros DS y ES apunten al Segmento de Codigo (CS)??? Publicado por: harry_the_blogger en 22 Agosto 2014, 19:41 pm cpuz , estoy trabajando en x86. Usé el codigo que me dio Eternal Idol, pero mi programa falla de nuevo. No sé si necesito permisos para cambiar los registros de segmento. Bueno, si tu dices que necesito permisos, será reescribir el codigo de nuevo y evitar usar esos registros.
Código
A mí no me funciono. Estoy compilando con FASM, y compila bien. Pero en tiempo de ejecucion falla. Aqui dejo el codigo completo: Código
Título: Re: ¿Como hacer que los registros DS y ES apunten al Segmento de Codigo (CS)??? Publicado por: Eternal Idol en 22 Agosto 2014, 20:46 pm cpuz , estoy trabajando en x86. Usé el codigo que me dio Eternal Idol, pero mi programa falla de nuevo. No sé si necesito permisos para cambiar los registros de segmento. Bueno, si tu dices que necesito permisos, será reescribir el codigo de nuevo y evitar usar esos registros. Deberias decirnos exactamente donde falla. ¿Lo depuraste? ¿CreateFile retorna algo diferente a -1 (0xFFFFFFFF) pese a que intentes abrir el archivo en modo exclusivo? Sinceramente no se donde donde esta la relacion con los segmentos todavia ... Título: Re: ¿Como hacer que los registros DS y ES apunten al Segmento de Codigo (CS)??? Publicado por: xv0 en 22 Agosto 2014, 20:53 pm Deberias decirnos exactamente donde falla. ¿Lo depuraste? ¿CreateFile retorna algo diferente a -1 (0xFFFFFFFF) pese a que intentes abrir el archivo en modo exclusivo? Sinceramente no se donde donde esta la relacion con los segmentos todavia ... Exacto, no se que pintan los segmentos hay, pero una cosa @EI es correcto que los segmentos solo se pueden modificar con privilegios en CPL, en ring3 nada, no? O eso entendi en los manuales. @harry_the_blogger Podrias utilizar push para guardar los retornos de las funciones, mejor que moverlos a .data. Un saludo. Título: Re: ¿Como hacer que los registros DS y ES apunten al Segmento de Codigo (CS)??? Publicado por: Eternal Idol en 22 Agosto 2014, 21:06 pm Exacto, no se que pintan los segmentos hay, pero una cosa @EI es correcto que los segmentos solo se pueden modificar con privilegios en CPL, en ring3 nada, no? Claro, esto genera una excepcion, por eso le dije al principio que deberia intentar explicar su PROBLEMA y no la supuesta SOLUCION. Si hubiera estado en modo real el codigo le hubiera servido pero en este caso es seguro que el PROBLEMA es otro y obviamente otra sera la SOLUCION. |