JA | Jump if above |
JAE | Jump if above or equal |
JB | Jump if below |
JBE | Jump is below or equal |
JNA | Jump if not above (same as JBE) |
JNAE | Jump if not above or equal (same as JB) |
JNB | Jump if not below (Same as JBE) |
JNBE | Jump if not below or equal (same as JA) |
JG | Jump if greater |
JGE | Jump if greater of equal |
JL | Jump if less |
JLE | Jump if less or equal |
JNG | Jump if not greater (same as JLE) |
JNGE | Jump if not greater or equal (same as JGE) |
JNL | Jump if not lower (same as JGE) |
JNLE | Jump if not lower or equal (same as JG) |
JZ | Jump if zero |
JE | Jump if equal (same as JZ) |
JNZ | Jump if not zero |
JNE | Jump is equal (same as JNZ) |
The ones you'll be mostly interseted in are JZ, JNZ, JA and JB.
Depending on the previous instruction (CMP in our case) the zero flag is set. So what JE (or JZ) really does is that they checks the zero flag. If it is set (zeroflag=1) then it jumps, otherwise it dont. This is pretty important for us crackers, because we can modify the zeroflag so it suits our needs.
Copyright © MiB 1998. All rights reversed.