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 - cpu2

#151
Y en el apartado security, viste si hay alguna regla del ferial que este bloqueando X cosa, o alguna opción que tenga el modem?

Que seria raro. Solamente tienes que tocar el forwarding, el NAT.

Un saludo.
#152
Dijiste que intestaste establecer reglas, para el cortafuegos de Windows? Si es asi mira en el modem, pero como normal general ese tipo de Nat deja paso, al menos en los modem de los ISP.

Un saludo.
#153
Entraste en el modem para abrirlos directamente desde hay?, no tiene mucho sentido desactivar el cortafuegos de windows o establecer una regla, si no hiciste nada en el modem.

Un saludo.
#154
ASM / Re: PSRLW en MMX
22 Junio 2015, 20:06 PM
Pues corres un bit a la derecha de los word 32:00, 3e5fc000 lo dejarias en 0x00000331f2f6000.

Un saludo.
#155
Deberias de reformular la pregunta, no se entiende nada.

Tienes un firewall con la direccion publica, con iptables? El de un router/modem aparte?

Dices que tienes el servicio en la red (LAN no?), no necesitaras un NAT?

Citarquiero desde una pc en la lan poner la ippublica:puerto y accederlo

Si es interno, pues usa la direccion LAN, porque deberias usar la WAN?

Un saludo.

#156
ASM / Re: Duda con la pila (stack)
29 Mayo 2015, 15:15 PM
Esto seria lo normal:

Código (asm) [Seleccionar]
push ebp               ;salvo el valor actual de ebp
mov ebp, esp           ; copio el la direccion en la que esta apuntando esp a ebp
sub esp, 16          ;bien ahora reservo 16 bytes en la pila


Cuando reservas los 16 bytes es como si estubieras haciendo los 4 push de tu code. Pero sin copiar los valores.

Bien ebp se quedara apuntando al final de la pila por asi decirlo, y esp al principio, abiendo entre la base ebp y el principio esp un espacio de 16 bytes.

Vale porque se usa ahora el -, bien porque ebp esta al principio como dije, y esp se a ido sustrayendo.

Código (asm) [Seleccionar]
push ebp             
mov ebp, esp           
sub esp, 16

mov [ebp-4], var1        ;
mov [ebp-8], var2        ; Pasamos las variables
mov [ebp-12], var3      ;
mov [ebp-16], var4      ;

mov esp, ebp     ; dejamos esp apuntando donde estaba antes, al principio
pop ebp             ; con ebp igual lo dejamos con su valor anterior
ret                  ; volveriamos al offset despues del call que llamo a esta funcion.


Bien este es el esquema normal, pero si te fijas, en tu code antes de llamar a la funcion pusiste los parametros antes, eso significa que no usaste ebp si no esp.

Vuelvo a repetir, que despues de hacer el call, dejaste unos 20 bytes sustraidos sumando los 4 parametros y el offset para ret.

Bien despues de hacer la llamada salvas de nuevo ebp, y copias el offset actual de esp a este. Y luego reservas X bytes para variables o lo que sea, si quieres tomar los valores de los push tienes que hacerlo con el sumar logico.

Código (asm) [Seleccionar]
mov eax, [ebp+20]                       ;1 valor
mov ebx, [ebp+16]                     ; 2 valor
mov ecx, [ebp+12]                      ; 3 valor
mov edx, [ebp+8]                       ; 4 valor


En el +4 estaria el offset de ret, y sin nada pues el valor de ebp. Y ahora podrias seguir el mismo metodo de arriba para variables o lo que sea.

No se si esto responde tu pregunta.

Un saludo.
#157
ASM / Re: Duda con la pila (stack)
28 Mayo 2015, 23:46 PM
Cita de: exploiterstack en 28 Mayo 2015, 14:26 PM

  • Cuando se utiliza el - es para acceder a las variables locales.
  • Cuando se utiliza el + es para acceder a los parámetros de la función.

Y que pasa con las globales? Haz un dissasembler de un simple programa en C, y te ayudara, y veras que lo que haces en el code no tiene sentido, igualmente no entiendo como un programador en ASM siga el mismo esquema que en C para administrar la pila.

CitarOtra pregunta sobre lo del offset te refieres al return address? que le sumaria otros 4 bytes haciendo un total de 20? pero de todos modos al no ser variables locales no creo que esa linea tenga importancia.

Si, lee el code que hiciste y veras que pasa.

CitarCuando dices "Se utiliza ebp por defecto ya que esa es su función" te refieres que ese es el papel de ebp o que es la función suya(es decir su contexto)?

Exacto, cada registro tiene su funcion, hay algunos que estan ligado con instrucciones y demas, los mas tipicos son de uso general, eax, ebx, ecx etc... puden tener la misma funcion que ebp, ojo sin meter por medio segmentos, pero no quiero liarte.

CitarPor que se suele decir que nunca hay que hacer uso de desplazamientos de esp por que es difícil asegurarnos que sean los datos correctos?

Si tu mismo estas administrando la pila manualmente y bien, no se porque tiene que ocurrir algun problema. Si quieres usar el estilo C al menos usa enter y para restaurar la pila leave.

CitarPor ultimo un contexto de una función es decir el stack frame de una función puede tener acceso al stack frame de otra función?

Si, porque no podria tenerlo.

Un saludo.
#158
ASM / Re: Duda con la pila (stack)
28 Mayo 2015, 13:37 PM
Hola

CitarPara referenciar las variables locales de una función por que se utilizar el registro EBP en vez de ESP?

Seguramente que vengas de algun lenguaje de alto nivel, en realidad no hace falta usar ebp para hacer referencia a variable locales etc... Podrias usar incluso eax.

Se utiliza ebp por defecto ya que esa es su funcion, para tener la base por asi decirlo una referencia, piensa que cada vez que vayas colocando valores en la pila esta se restara en 4 bytes en tu caso.


Sobre las tres preguntas de abajo, pues todo depende de como estes administrando la pila y demas. Sobre el code pues no lo veo la verdad.

Para empezar que valor tiene la X?

Cargas en la pila los parametros, substraes 16 bytes en la pila con los push, luego el call son otros 4 bytes ya que cargas el offset que viene despues del call, para continuar la ejecucion del code despues de la llamada, serian 20 bytes.

Si te fijas cuando carges los valores de ebp en los registros de uso general, no seran los parametros correctos. El code lo veo mal planteado.

Cuando estas en la funcion cargas de nuevo en valor de ebp, y copias el valor de esp actual a ebp, la X la dejo.

La pila estara con 24 bytes para abajo, en realidad en el primer mov a eax, estas copiando el ret offset.

Un saludo.

P.D: Desde mi punto de vista veo una tonteria, que un programador de ASM, tenga que hacer el tipico esquema de pila como si estuviera en C, no quiero ofender a nadie pero lo veo de esa forma.

Ni que estuvieramos en C.
#159
ASM / Re: Problemas al instalar masm32
26 Mayo 2015, 21:10 PM
Creo que este tema se esta desviando y hay un malentendido.

Si las instrucciones trabajan con 16 bits, si las son, pero en realidad no son las originales de un 80x86, como dije anteriormente. Eso es lo que intento decir @EI y se malinterpreto, por eso le pregute para que pudiera aclarar el tema.

El prefijo 66h esta reservado, simplemente para que se sepa de que se esta trabajando con 16 bits, y el prefijo 48h para 64 bits pero no dejan de ser iguales todas simplemente que con prefijos:

Código (asm) [Seleccionar]
mov rbx, rax      48 89 c3
mov ebx, eax      -- 89 c3
mov bx, ax        66 89 c3

test rbx, rax     48 85 d8
test ebx, eax     -- 85 d8
test bx, ax       66 85 d8


Supongo que esto ayudara, los opcodes no coinciden con los originales de un 80x86 puro, modo real.

CitarPD. Estrictamente hablando las instrucciones de 16 bits son las que constan de dos bytes.

Hay excepciones como por ejemplo xchg, tambien serian dos bytes en 64 bits pero con el prefijo indicado, con 16 igual con su prefijo, y por ultimo el 32 bits pues con el byte solo.

Fue un malentendido no se ofusquen de esa manera xD.

Un saludo.
#160
ASM / Re: Problemas al instalar masm32
25 Mayo 2015, 15:17 PM
Si claro, me explique mal, yo te entendi de que no se podia poner instrucciones en 16 bits, se utiliza el prefijo 66 con los 16 bits, no son los opcodes originales de 80x86, es como un x86 pero con el prefijo, pense de que Windows x64 no toleraba ese tipo de cosas, me extrañaba por eso pregunte.

Un saludo.