[逆向]汇编JCC指令举例
生活随笔
收集整理的這篇文章主要介紹了
[逆向]汇编JCC指令举例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一前言
今天文章的主要內容是逆向基礎匯編JCC指令舉例,JCC指令就是滿足條件跳轉指令,上一篇文章已經給大家介紹了基本用法,如有不明白的可以先看看我的上一篇文章,今天主要為大家舉例加強鞏固.
二JCC指令舉例
//-------jz-------等于0轉移
運行效果如圖所示,滿足jz 那么直接從斷點處跳到了lab處,代碼貼在了下面
_asm{mov al,0x3mov cl,0x3sub al,cljz labmov eax,ecxmov eax,ecx lab:mov eax,ecx }//-------jnz-------不等于0轉移
_asm{//-------jnz-------不等于0轉移mov eax,0x5add eax,0x2jnz labmov eax,ecxmov eax,ecx lab:mov eax,ecx}?//-------js-------為負轉移 sf=1
_asm{//-------js-------為負轉移 sf=1mov al,0x7fadd al,0x2js labmov eax,ecxmov eax,ecx lab:mov eax,ecx}//-------jns-------為正轉移 sf=0
_asm{//-------jns-------為正轉移 sf=0mov al,0x23add al,0x3jns labmov eax,ecxmov eax,ecx lab:mov eax,ecx}//-------jo-------溢出轉移 of=1
_asm{//-------jo-------溢出轉移 of=1mov ax,0x7fffadd ax,0x3jo labmov eax,ecxmov eax,ecx lab:mov eax,ecx}//-------jno-------不溢出轉移 of=0
_asm{//-------jno-------不溢出轉移 of=0mov ax,0xffffadd ax,0x4jno labmov eax,ecxmov eax,ecx lab:mov eax,ecx}//-------jp/jpe-------偶轉移 PF=1
_asm{//-------jp/jpe-------偶轉移 PF=1mov eax,0x4add eax,0x2jpe labmov eax,ecxmov eax,ecx lab:mov eax,ecx}//-------jnp/jpo-------奇轉移 PF=0
_asm{ //-------jnp/jpo-------奇轉移 PF=0mov al,0x4add al,0x3jpo labmov eax,ecxmov eax,ecx lab:mov eax,ecx}//-------jc-------進位標志被置轉移 CF=1
_asm{//-------jc-------進位標志被置轉移 CF=1mov al,0xffadd al,0x3jc labmov eax,ecxmov eax,ecx lab:mov eax,ecx}//-------jnc-------進位標志被清轉移 CF=0
_asm{//-------jnc-------進位標志被清轉移 CF=0mov al,0x5fsub al,0x2jnc labmov eax,ecxmov eax,ecx lab:mov eax,ecx}//-------JB/JNAE-------無符號小于轉移
_asm{//-------JB/JNAE-------無符號小于mov eax,0x8cmp eax,0x9jnae labmov eax,ecxmov eax,ecx lab:mov eax,ecx}//-------JNB/JAE-------無符號大于等于轉移
_asm{//-------JNB/JAE-------無符號大于等于mov eax,0x35mov ecx,0xfcmp eax,ecxjnb labmov eax,ecxmov eax,ecx lab:mov eax,ecx}//-------JBE/JNA-------無符號小于等于轉移
_asm{//-------JBE/JNA-------無符號小于等于mov al,0x4cmp al,0x9jbe labmov eax,ecxmov eax,ecx lab:mov eax,ecx}//-------JNBE/JA-------無符號大于轉移
_asm{//-------JNBE/JA-------無符號大于mov eax,0x45cmp eax,0x2jnbe labmov eax,ecxmov eax,ecx lab:mov eax,ecx}//-------JL/JNGE-------有符號小于轉移
_asm{//-------JL/JNGE-------有符號小于mov eax,0x80000000cmp eax,0x1jl labmov eax,ecxmov eax,ecx lab:mov eax,ecx}//-------JNL/JGE-------有符號大于等于轉移
_asm{//-------JNL/JGE-------有符號大于等于mov al,0xffmov cl,0xfdcmp al,cljnl labmov eax,ecxmov eax,ecx lab:mov eax,ecx}//-------JLE/LNG-------有符號小于等于?轉移
_asm{//-------JLE/LNG-------有符號小于等于mov ax,0x95mov cx,0xfecmp ax,cxjle labmov eax,ecxmov eax,ecx lab:mov eax,ecx}//-------JNLE/LG-------有符號大于轉移
_asm{//-------JNLE/LG-------有符號大于mov al,0x85cmp al,0x80jnle labmov eax,ecxmov eax,ecx lab:mov eax,ecx}今天的文章就到這里了,如果有任何不明白的地方歡迎與我交流,我必定知無不言。這篇文章也花了一定的心血,喜歡的小伙伴可以點贊關注哦。感激不盡!
總結
以上是生活随笔為你收集整理的[逆向]汇编JCC指令举例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BZOJ 2037 [Sdoi2008]
- 下一篇: 计算机网络培训考试,网管人员培训考试试题