滴水逆向_学习笔记

滴水逆向第三期学习笔记


第七节 1、JCC

<h3>记住知识点:</h3> <h4>1、可以改变EIP的指令:JMP、CALL、RET、JCC的所有指令</h4> <h4>2、JCC指令的跳只与标志寄存器有关</h4> <hr /> <hr /> <h3>A(above):高于  B(below):低于    E(equal):等于  N(not):不  G(greater):最大的  L(less):更少的</h3> <h3>标志位的简写:</h3> <h3>C:CF标志位  Z:OF标志位  S:SF位(符号位)  P:PF标志位  O:OF标志位</h3> <h3>Jump If Parity Even:按偶校验转移</h3> <table> <thead> <tr> <th style="text-align: left;">JCC指令</th> <th style="text-align: left;">中文含义</th> <th style="text-align: left;">英文原意</th> <th style="text-align: left;">检查符号位</th> <th style="text-align: left;">典型C应用</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">JZ/JE</td> <td style="text-align: left;">若为0则跳转;若相等则跳转</td> <td style="text-align: left;">jump if zero;jump if equal</td> <td style="text-align: left;">ZF=1</td> <td style="text-align: left;">if (i == j);if (i == 0);</td> </tr> <tr> <td style="text-align: left;">JNZ/JNE</td> <td style="text-align: left;">若不为0则跳转;若不相等则跳转</td> <td style="text-align: left;">jump if not zero;jump if not equal</td> <td style="text-align: left;">ZF=0</td> <td style="text-align: left;">if (i != j);if (i != 0);</td> </tr> <tr> <td style="text-align: left;">JS</td> <td style="text-align: left;">若为负则跳转</td> <td style="text-align: left;">jump if sign</td> <td style="text-align: left;">SF=1</td> <td style="text-align: left;">if (i &lt; 0);</td> </tr> <tr> <td style="text-align: left;">JNS</td> <td style="text-align: left;">若为正则跳转</td> <td style="text-align: left;">jump if not sign</td> <td style="text-align: left;">SF=0</td> <td style="text-align: left;">if (i &gt; 0);</td> </tr> <tr> <td style="text-align: left;">JP/JPE</td> <td style="text-align: left;">若1出现次数为偶数则跳转</td> <td style="text-align: left;">jump if Parity (Even)</td> <td style="text-align: left;">PF=1</td> <td style="text-align: left;">(null)</td> </tr> <tr> <td style="text-align: left;">JNP/JPO</td> <td style="text-align: left;">若1出现次数为奇数则跳转</td> <td style="text-align: left;">jump if not parity (odd)</td> <td style="text-align: left;">PF=0</td> <td style="text-align: left;">(null)</td> </tr> <tr> <td style="text-align: left;">JO</td> <td style="text-align: left;">若溢出则跳转</td> <td style="text-align: left;">jump if overflow</td> <td style="text-align: left;">OF=1</td> <td style="text-align: left;">(null)</td> </tr> <tr> <td style="text-align: left;">JNO</td> <td style="text-align: left;">若无溢出则跳转</td> <td style="text-align: left;">jump if not overflow</td> <td style="text-align: left;">OF=0</td> <td style="text-align: left;">(null)</td> </tr> <tr> <td style="text-align: left;">JC/JB/JNAE</td> <td style="text-align: left;">若进位则跳转;若低于则跳转;若不高于等于则跳转</td> <td style="text-align: left;">jump if carry;jump if below;jump if not above equal</td> <td style="text-align: left;">CF=1</td> <td style="text-align: left;">if (i &lt; j);</td> </tr> <tr> <td style="text-align: left;">JNC/JNB/JAE</td> <td style="text-align: left;">若无进位则跳转;若不低于则跳转;若高于等于则跳转;</td> <td style="text-align: left;">jump if not carry;jump if not below;jump if above equal</td> <td style="text-align: left;">CF=0</td> <td style="text-align: left;">if (i &gt;= j);</td> </tr> <tr> <td style="text-align: left;">JBE/JNA</td> <td style="text-align: left;">若低于等于则跳转;若不高于则跳转</td> <td style="text-align: left;">jump if below equal;jump if not above</td> <td style="text-align: left;">ZF=1或CF=1</td> <td style="text-align: left;">if (i &lt;= j);</td> </tr> <tr> <td style="text-align: left;">JNBE/JA</td> <td style="text-align: left;">若不低于等于则跳转;若高于则跳转</td> <td style="text-align: left;">jump if not below equal;jump if above</td> <td style="text-align: left;">ZF=0或CF=0</td> <td style="text-align: left;">if (i &gt; j);</td> </tr> <tr> <td style="text-align: left;">JL/JNGE</td> <td style="text-align: left;">若小于则跳转;若不大于等于则跳转</td> <td style="text-align: left;">jump if less;jump if not greater equal</td> <td style="text-align: left;">SF != OF</td> <td style="text-align: left;">if (si &lt; sj);</td> </tr> <tr> <td style="text-align: left;">JNL/JGE</td> <td style="text-align: left;">若不小于则跳转;若大于等于则跳转;</td> <td style="text-align: left;">jump if not less;jump if greater equal</td> <td style="text-align: left;">SF = OF</td> <td style="text-align: left;">if (si &gt;= sj);</td> </tr> <tr> <td style="text-align: left;">JLE/JNG</td> <td style="text-align: left;">若小于等于则跳转;若不大于则跳转</td> <td style="text-align: left;">jump if less equal;jump if not greater</td> <td style="text-align: left;">ZF != OF 或 ZF=1</td> <td style="text-align: left;">if (si &lt;= sj);</td> </tr> <tr> <td style="text-align: left;">JNLE/JG</td> <td style="text-align: left;">若不小于等于则跳转;若大于则跳转</td> <td style="text-align: left;">jump if not less equal;jump if greater</td> <td style="text-align: left;">SF=0F 且 ZF=0</td> <td style="text-align: left;">if(si&gt;sj)</td> </tr> </tbody> </table>

页面列表

ITEM_HTML