Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: Stakewinner00 en 23 Noviembre 2012, 17:42 pm



Título: [Duda] Diferencia entre JB y JS
Publicado por: Stakewinner00 en 23 Noviembre 2012, 17:42 pm
Estaba estudiando ingenieria inversa (hace poco que comenze) y me encontre con que segun mis apuntes:
EL JB se activa cuando el flag C es uno y por lo tanto si tuvieramos EAX=1 y ECX=2 el flag C saltaria y se activaria, luego en el caso del JS es lo mismo resta u valor al otro y en vez de activar el flag C se activa el S pero en realidad es exactamente lo mismo no?

Resumiendo, no se que diferéncias hay entre el JB/JNB y JS/JNS.


Gracias por su ayuda.


Título: Re: [Duda] Diferencia entre JB y JS
Publicado por: apuromafo CLS en 23 Noviembre 2012, 18:31 pm
te lo hare mas facil

cuando comparas 2 numeros hay 3 opciones

que sean iguales, que sean diferentes y que sean (mayor o menor)

pues eso hace, el tema es que la validacion lo hara por un flag o bandera
luego si dice

cmp eax,7  y eax es 7
je   lugar  (saltara porque es igual)
pero la bandera estara dada por 0 y 1.. si salta o no ira en eso..

pero el tema ahora es el tema del salto como tal si es JB versus JNB  (hay diferencia, pues uno saltara si son iguales y el otro si no son iguales)


lo importante es que a la fecha no he visto programas que jueguen con los flag , solo los packers

asi que suerte en todo lo que estas viendo... intenta seguir leyendo


Título: Re: [Duda] Diferencia entre JB y JS
Publicado por: Stakewinner00 en 23 Noviembre 2012, 18:35 pm
Si lo dle JE y todo eso ya lo sabia. Lo k no se es la díferencia entre JB y JS a parte de que usan flags distintos.

Citar
lo importante es que a la fecha no he visto programas que jueguen con los flag , solo los packers

Osea que no sirve de much no? XD bueno, estoy leyendo esto para tener unas baes sobre ensamblador para poder seguir aprendiendo cracking.


Título: Re: [Duda] Diferencia entre JB y JS
Publicado por: apuromafo CLS en 23 Noviembre 2012, 18:47 pm
pues pongamos ejemplos bonitos
http://faydoc.tripod.com/cpu/jbe.htm

en cuanto a otros

, digamos que upack o otros packers cuando terminan de desempacar ahora la variable no es cero por lo tanto salta

armadillo, asprotect, buscan dar excepciones y usan saltos para jugar con el tema de la iat

y asi suma y sigue, lo importante es reconocer que son saltos y que trabajan con condiciones, a modo que en vez de estar ensamblando todo el tiempo , puedes cambiar el flag y testear si resultara parchado

saludos Apuromafo

revisa tambien el comando



CPU Disasm
Address   Hex dump          Command                                  Comments
0081EDF5     \60            PUSHAD
0081EDF6      9C            PUSHFD


CPU Disasm
Address   Hex dump          Command                                  Comments
0081EE50      61            POPAD
0081EE51      9D            POPFD
0081EE52    ^ E9 5BB5CAFF   JMP 004CA3B2


Título: Re: [Duda] Diferencia entre JB y JS
Publicado por: karmany en 24 Noviembre 2012, 10:09 am
JB: salta si es menor

Por ejemplo:
mov al, 4
cmp al, 7
jb ⇒ salta

mov al, 4
cmp al, 4
jb ⇒ NO salta

mov al, 4
cmp al, 2
jb ⇒ NO salta



JS: Salta si tiene signo Bandera SF = 1

Por ejemplo:
mov al, 4
sub al, 5
js ⇒ salta

mov al, 4
sub al, 4
js ⇒ NO salta

mov al, 4
sub al, 2
js ⇒ NO salta

mov al,0FC
add al,2
js ⇒ salta ya que 0FC es -4: -4 +2 = -2

mov al, 0FC
add al, 4
js ⇒  NO salta


Título: Re: [Duda] Diferencia entre JB y JS
Publicado por: Stakewinner00 en 24 Noviembre 2012, 10:37 am
gracais a los dos.