00:00
好,大家好,然后我们还是来接着说一下,这个缓冲区一出这道题目啊啊一道题目已经录制,这是第三个视频了。但是呢,就是说我觉得。把这个题目呢,就是再接着延伸一下的比较好啊。好,我们来看一下,就是说是上节课呢,我们写了代码,就第一节课呢,我们直接就是在在这个。嗯,这叫process里边这么画了一下,然后第二节课呢,写了一下代码,然后这第三次呢,我来就是用这个OD简单的调试一下啊。首先打开这个OD,然后把我们的这个可执行文件找到。喂。是开了两个吗?虚拟机本身就有点卡。
01:02
然后这个是我们上节课编译出来的这个exe文件啊,把它拖到这个OD当中,然后。我们直接我们要运行它,但是我们运行的话,其实是要看一些变化的。呃。这个东西呢,就。没法仔细讲,但是大概呢,就是说是要说一下。啊。呃,首先整个这个窗口呢,是这个CPU窗口,然后CPU窗口就是现在这一部分左上角这个窗口呢,里边是返回编啊,然后。这一部分呢,是这个寄存器。下面这一块呢,是这个站啊站,因为我们就是说过,我们这个题目的一出呢,是一出。所以呢。我们主要是来看这儿啊,但是我们现在打开这个程序以后,程序停到的位置。
02:05
城市停道的位置在。401200这个位置处,但是它它是这个。呃,它并不是我们那个函数啊,就是说C语言是从内函数开始执行的,其实呃,这句话多少是有点问题啊,C语言的这个main函数呢,只是我们编程时的一个入口啊,但是并不是真正程序的一个入口,但就是在main函数之前还有这么多东西,Main函数呢,是从那开始,其实是main函数的位置在这个401005这个位置出啊,为什么是这儿我就不解释了。啊。然后。我们在这个位置下一个断点,然后让它运行起来。然后程序现在呢,就已经运行到401010这个位置处了啊。
03:03
而这一部分代码呢,就是我们上节课学的那一部分代码。啊,就是这一部分代码,然后我们来看一下我们的这个啊。呃,关于站呢,其实它有两个这个比较重要的这个寄存器,一个是E一个是EBP啊。然后把它拖出来,我们主要是看这个。呃,主要是看这个ESP吧。呃,它呢,会初始化我们的这个。就是开辟我们的这个。呃,占空间啊,就是说因为我们有局部变量嘛,然后我们先单步几下吧。其实一直到上面这一部分都是在开,首先上面这一部分吧。呃,保存EBP,然后把这个EP,呃复制给EBP,这是保存了一下这个,呃,就是EBP,然后这个EBP呢成为ESP,然后ESP减50,这个50也是16进制,其实就整个把占点抬高了啊,所谓的把占点抬高其实。
04:18
呃,就是因为我们讲过嘛,是往从这个高地值到低地值啊的方向,所以是减,减了50以后,其实是把占领抬高了啊。而并不是变低了,然后保存了三个寄存器,这三个寄存器其实就是保护现场嘛,然后就是对这个站呢,进行了一些初始化,主要就是复制了一堆CC,看看这个站里面有好多CC,对吧,然后从这开始呢,应该就是他要读这个。啊,是从这儿开始这一句。这个呢,就是我们buff分的地址应该是啊,然后呃,给到EXX,然后来读我们那个,就是我们的那个,调用我们那个gets函数吧。
05:08
好,我们输入一下啊。还是我们老样子,123456781234,然后abcd好回车,回车以后呢,来看我们的这个。内存啊。呃,我先。想想我们这是EBP。嗯,是EBP减十给了EAX,我们换成EBP吧。EBP减十的位置在这个位置对吧。EBP减十的位置在这,然后EBP减十的地址呢是12F0对吧,和我们上节课就上个视频录制的是一样的,然后是3132333435363738,然后又是31323334对吧。
06:10
从这到这一部分是我们就是buffer的地址,Apple的地址呢,在这个位置处。Buffer的地址呢,是12FF7C,我不知道大家还记得不记得了,上节就是上个视频说过的,然后它的值呢是61626364对吧,相当于也是。呃,就是说是通过这个函数把这个Apple的地址给覆盖掉了,对吧,然后我们再接着运行这呢,就直接调用了这个hello了。啊,让他让他跑起来看一下。啊,一一结束一运行也没了啊,总之呢,其实呃,这个视频就是简单的带大家调试一下,看一眼啊。
07:05
因为。呃。这一块就不单单是这一块,就不单单是C语言的问题了,因为想要了解这个缓冲区一出,简单点的话,这个站一出就是。缓冲区一出,一般都是先了解这个战役处啊呃,因为堆的那个结构会更复杂一些,了解战役处呢,一般都会了解这种函数的调用方式,然后对于这种函数的就是。嗯。调用函数以后的这个战争。就是开辟的新的这个占空间。啊,包括这个E是怎样。在这个战中啊,他们进行一个使用和变化的。啊,已经不单单是C语言的知识了啊,里面已经包含了这种汇编的知识在里面啊。
08:04
所以的话,大家在这儿自己能知道啊,我怎么看一眼它就可以了。啊,更多的呢,其实我们并不主要是学习,这就不会主要去学习这个吧。啊,所以的话大概了解一下就可以了,本节课呢,就到这里吧。拜拜。
我来说两句