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.
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
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.
Citarlo 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.
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
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
gracais a los dos.