X64汇编语言教程(白帽黑客系列课程)(七)

为什么要写这篇教程呢?

本文章仅提供学习,切勿将其用于不法手段!

因为想要成为一名白帽黑客,汇编语言是必须要掌握的!

无论是二进制漏洞挖掘,还是逆向工程!汇编语言,都是硬性基础之一!当然,你还需要学会C语言!为什么要学会C语言呢?IDA软件 会将 二进制代码 翻译成 汇编语言 和 C语言 !

你不会汇编语言,不会C语言,想要进行逆向工程,以及更深层次的 二进制漏洞挖掘,是非常困难!如果你希望挖掘 二进制漏洞 ,你还要学会 代码审计 !

你必须看得懂,汇编语言代码 和 C语言代码,这是硬性要求!

想要参加CTF竞赛,汇编语言 和 C语言 都是重要的底层基础知识。

接下来,让我们来讲一下,汇编语言编程的基础知识!

上面的图中,展示了汇编语言编程的大体流程!

在进行64位环境下的汇编语言编程时,我们要注意在调用函数时,保护好栈平衡!

什么是栈平衡呢?

栈平衡是指在函数运行时,编译器确保在函数结束之前,通过执行相同次数的pop指令来抵消函数内部执行的push指令,从而使栈恢复到执行该函数之前的状态‌。‌

在汇编语言中,栈平衡是确保程序正确执行的重要概念。当函数调用时,会将参数、返回地址等信息压入栈中,函数执行完毕后,需要将这些信息从栈中弹出,以恢复栈的原始状态。这个过程就是栈平衡。

栈平衡分为内平栈和外平栈两种方法。内平栈是在函数内部进行平衡操作,确保在函数返回之前栈已经平衡;而外平栈则是在函数外部,通过调用者来恢复堆栈状态。‌

在上图中,我们所使用的栈平衡方法,为 “ 内平栈 ” 和 “ 外平栈 ” 的结合!

在函数内部ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值