zoukankan      html  css  js  c++  java
  • 汇编操作内存地址、堆栈

    1. 32位  16位  8位通用寄存器

      EAX ECX EDX EBX ESP EBP ESI EDI

      AX CX DX BX SP BP SI DI

      AL CL DL BL AH CH DH BH 

    2.寄存器的结构:EAX-AX-AH-AL的对应关系

      EAX-AX-AH-AL是一个寄存器的不同位

    3.  操作内存的时候,影响的可能不是一个数据。

      比如   mov word ptr ds:[0x0012FFDC],0xAA      影响的不仅仅是 0x12FFDC这一个内存编号的数据,也附带影响了下一个内存编          号的数据

    4.寻址方式:

      方式一:[立即数]     

     

         a.读取内存的值   

                  MOV EAX,DWORD PTR DS:[0X13FFC4]

                  MOV EAX,DWORD PTR DS:[0X13FFC8]     

        

        b.内存中写数据  

                  mov dword ptr ds:[0x13ffc4],eax            

                     mov dword ptr ds:[0x13ffc8],ebx 

        

        c.获取内存编号  

                  lea eax,dword ptr ds:[0x13ffc4]

                       lea eax,dword ptr ds:[esp+8]

      方式二:[reg]  reg代表寄存器,可以是8个通用寄存器中的任意一个

        a.读取内存的值   

                  MOV ECX,0x13FFD0

                  MOV EAX,DWORD PTR DS:[ECX]

        b.向内存中写数据  

                  MOV ECX,0x13FFD0

                  MOV DWORD PTR DS:[ECX],0x23232345

        c.获取内存编号:  

                  LEA EAX,DWORD PTR DS:[EDX]

                  MOV EAX,DWORD PTR DS:[EDX]

      方式三:[reg+立即数]

        a.读取内存值 

                MOV ECX,DWORD PTR DS:[EAX+0X13FFC4] 

                MOV EDX,DWORD PTR DS:[ECX+0X13FFC8]

        b.向内存中写值

                MOV DWORD PTR DS:[ECX+0X13FFC4],0X13FF45

        c.获取内存编号

                LEA EAX,DWORD PTR DS:[ECX+0X13FFC4]

      方式四:[reg+reg*{1,2,4,8}] 

        a.读取内存值

                MOV EAX,13FFC4

                MOV ECX,2

                MOV EDX,DWORD PTR DS:[EAX+ECX*4] 

        b.向内存中写数据

                  MOV EAX,13FFC4

                  MOV ECX,2

                  MOV DWORD PTR DS:[EAX+ECX*4],43332223

        c.获取内存编号

                  LEA EAX,DWORD PTR DS:[EAX+ECX*4]  

    方式五:[reg+reg*{1,2,4,8}+立即数]

        a.读取内存值

                MOV EAX,13FFC4

                MOV ECX,2

                MOV EDX,DWORD PTR DS:[EAX+ECX*4+0xFF]  

        b.向内存中写值

                MOV EAX,13FFC4

                MOV ECX,2

                MOV DWORD PTR DS:[EAX+ECX*4+0xFF34],0x3453

        c.获取内存编号

                LEA EAX,DWORD PTR DS:[EAX+ECX*4+0x8984]

  • 相关阅读:
    JS---元素属性的操作
    JS---异常
    JS---OOP
    T-SQL---分页语句
    mui---在关闭webview之前给出提示
    mui---通过plus.webview.create创建webview并打开新页面并传参到新页面
    mui---要打开的页面loaded不自动显示,等服务器返回数据后,再做处理逻辑
    winform/timer控件/权限设置/三级联动
    winform 进程、线程
    winform 之MDI容器
  • 原文地址:https://www.cnblogs.com/heyhx/p/14158268.html
Copyright © 2011-2022 走看看