上一篇:零基础x64dbg教程大纲
一、前言   
    看到标题,可能有些人问为什么要学汇编,我们不是来学脱壳破解的么?其实x64dbg中的内存窗口里大部分都是汇编指令,只有掌握了一些汇编基础,才能更好的破解。本课的汇编知识是针对破解的,并未完全是汇编。
二、正文
    1、二进制、十进制、十六进制:     
    二进制:二进制是计算技术中广泛采用的一种数制,由0和1两个数码来表示。进位规则是“逢二进一”,借位规则是“借一当二”。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的,一般在末尾加D表示二进制,如:1110D、0101D等      
    十进制:十进制数用0、1、2、3.........9 , 这十个数来表示。十进制(计数法)是以10为基础数字系统,满十进一,是我们生活中最常见,也是最常用的。      
    十六进制:十六进制在数学中是一种逢16进1的进位制。一般用数字0到9和字母A到F(或a~f)表示,其中:A~F表示10~15,这些称作十六进制数,十六进制一位可以对应4位二进制数字,在调试器中,内存地址就是以十六进制表示的。
    2、通用寄存器:
    32位汇编:       
       在32位汇编中,通用寄存器包括了8个32位的寄存器:EAX、EBX、ECX、EDX、ESP、EBP、EDI及ESI。其中EAX、EBX、ECX、EDX在一般情况下作为通用的数据寄存器,用来暂时存放计算过程中所用到的操作数、结果或其他信息。
如图:    零基础x64dbg之32位与64位汇编基础
       除此之外,这8个寄存器,还有以下作用:   
       EAX作为累加器用,所以它是算术运算的主要寄存器。在乘除指令中指定用来存放操作数。另外,所有的I/O指令都使用AX或AL与外部设备传送信息。       
       EBX在计算存储器地址时,可作为基址寄存器使用。     
       ECX常用来保存计数值,如移位指令、循环指令和串处理指令中用作隐含的计数器。   
       EDX在作双字长运算时,可把DX和AX组合在一起存放一个双字长数,DX用来存放高16位数据。此外,对某些I/O操作,DX可用来存放I/O的端口地址。     
       ESI是源变址寄存器     
       EDI是目的变址寄存器     
       ESP称为堆栈指针寄存器,用来指出栈顶的偏移地址。   
       EBP称为基址指针寄存器,在寻址时作为基地址寄存器使用,但它必须与堆栈段寄存器SS联用来确定堆栈段中的存储单元地址
    64位汇编:   
       在破解中32位汇编与64最大不同就体现在寄存器与内存地址上,32位内存的最大值为0xFFFFFFFF,而64位汇编内存最大值是0xFFFFFFFFFFFFFFFF,此外64位汇编中有16个寄存器,是32位汇编的两倍,这些寄存器分别为:RAX、RBX、RBP、RSP、RSI、RDI、R8、R9、R10、R11、R12、R13、R14、R15,用途与32位汇编的寄存器相似,用来暂时存放计算过程中所用到的操作数、结果或其他信息。
如图: 零基础x64dbg之32位与64位汇编基础

    3、标志寄存器(标志位):
       用来记录程序中运行结果的状态信息,它们是根据有关指令的运行结果由(CPU)自动设置的。其中记录的状态信息作为后续条跳转指令的控制条件,称为条件码。
如图:零基础x64dbg之32位与64位汇编基础
       其中,这8个标志位都有不同的作用:   
       进位标志——CF:记录运算时最高有效位产生的进位值,这里的进位指二进制的无符号数据。
       符号标志——SF:记录运算结果的符号。结果为负时为1,否则为0。   
       零标志——ZF:运算结果为0时ZF位为1,否则为0。   
       溢出标志——OF:用于判断溢出(注意:溢出这个概念只对于有符号数据而言,就如同进位只对于无符号数据而言)当OF=0时,说明没有溢出;当OF=1时,说明溢出了。   
       辅助进位标志——AF:记录运算时第3位产生的进位值。   
       奇偶标志——PF:用来为机器中传送信息时可能产生的代码出错情况提供检验条件。当结果操作数中1的个数为偶数时为1,否则为0。   
       定时器溢出标志——TF:当cpu在执行完一条指令后,如果检测到TF位的值为1,则产生单步中断,引发中断过程。通过这个位,就可以在debug中对程序进行单步跟踪。   
       中断允许标志位——IF:中断允许标志位。当IF=1时,cpu在执行完当前指令后响应中断,引发中断过程;当IF=0时,则不响应可屏蔽中断。   
       方向标志位——DF:当DF=0时,每次操作后,ESI、EDI递增;DF=1时,每次操作后,ESI、EDI递减。
三. 后记
        由于这段时间在忙着制作教程配套的破解工具包,所以耽误了很长时间,教程做的比较匆忙,有什么问题可在下面指出。等做完破解工具包时,我会发上来供大家使用。小问题:各个进制的转换方法?请在下面回答,下一节揭晓答案。  
标签:
零基础x64dbg之32位与64位汇编基础

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
评论“零基础x64dbg之32位与64位汇编基础”
暂无“零基础x64dbg之32位与64位汇编基础”评论...

稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!

昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。

这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。

而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?