日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

【Android 逆向】x86 汇编 ( push / pop 入栈 / 出栈 指令 | ret / retn 函数调用返回指令 | set 设置目标值指令 )

發布時間:2025/6/17 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Android 逆向】x86 汇编 ( push / pop 入栈 / 出栈 指令 | ret / retn 函数调用返回指令 | set 设置目标值指令 ) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 一、push / pop 入棧 / 出棧 指令
  • 二、ret / retn 函數調用返回指令
  • 三、set 設置目標值指令
  • 總結





一、push / pop 入棧 / 出棧 指令



push / pop 入棧 / 出棧 指令 , 可以有如下選項 :

  • f : 表示 161616 位標志位 , 下面列舉幾個常用的標志位 ;

    • C 對應 進位 位 , 此處指的是減法操作是否有借位 ;
    • P 對應 奇偶 位 , 運算結果 的 奇偶 , 檢測結果最后一個位是 000 還是 111 ;
    • A 對應 輔助進位 位 , 323232 位的整型中 , 低 161616 位是否發生了 借位 或 進位 ;
    • Z 對應 零標志 , 如果 減法操作 最后的結果是 000 , 該 零標志位 會被設置成 111 , 如果 減法操作 結果不為 000 , 該 零標志位 會被設置成 000 ;
    • O 對應 溢出標志 , 減法操作是否會導致溢出 , 負數 - 負數 會出現溢出 ;
    • S 對應 符號標志位 , 計算結果如果是負數 , 該標志位設置成 000 , 計算結果如果是正數 , 該標志位設置成 111 ;
  • fd : 表示 323232 位標志位 ;

  • fq : 表示 646464 位標志位 ;

  • a : 表示 161616 位的通用寄存器 ;

  • ad : 表示 323232 位的通用寄存器 ;





二、ret / retn 函數調用返回指令



ret / retn 是 函數調用返回指令 ;

222 個指令的機器碼都是相同的 ;





三、set 設置目標值指令



set 指令 用于 設置 目標值為 000111 ;

set a eax

eax 是目標值 , 設置成 000111 ;

上述代碼中 a 表示無符號大于 , 如果 a 條件達成 , eax 設置為 111 , 如果不滿足 , 則設置為 000 ;

  • a : above , 無符號 大于 跳轉 ;

  • b : below , 嗎無符號 小于 跳轉 ;

  • g : great , 有符號 大于 跳轉 ;

  • l : less , 有符號 小于 跳轉 ;

  • e : equal , 等于 ;

  • n : negative , 反條件 ;

  • o : 對應 溢出標志 , 減法操作是否會導致溢出 ; ( 與運算不存在進位 , 沒有溢出 )

  • p : 對應 奇偶 位 , 運算結果 的 奇偶 , 檢測結果最后一個位是 000 還是 111 ;

  • s : 對應 符號標志位 , 計算結果如果是負數 , 該標志位設置成 000 , 計算結果如果是正數 , 該標志位設置成 111 ;

  • z : 對應 零標志 , 如果 與操作 最后的結果是 000 , 該 零標志位 會被設置成 111 , 如果 與操作 結果不為 000 , 該 零標志位 會被設置成 000 ;





總結



align 字節對齊 , db 聲明字符 / 字符串 , nop 空指令
cmp 比較 , test 比較
call 子函數調用指令 , jmp 跳轉指令 ( 可選參數 a , b , c , g , l , o , p , s , z , e , n)
lea 加載指令 , lds , les , lfs , lgs , lss , mov 數據傳送指令
push , pop , pushf , popf , pushd , popd , pushad , popad , pusha , popa
ret , retn , set
add , sub , mul , div
xor , not , shl , shr , sal , sar , rol , ror , rcl , rcr

總結

以上是生活随笔為你收集整理的【Android 逆向】x86 汇编 ( push / pop 入栈 / 出栈 指令 | ret / retn 函数调用返回指令 | set 设置目标值指令 )的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。