一、寄存器(0:3:35)
1.寄存器有哪些?(6种)(0:38:50)
2.esp和ebp这两个寄存器中,存放的是什么?用来干嘛的?(0:4:25)
3.对2,如何维护的?(0:5:15)
a.每一个函数调用,都要干嘛?(0:5:30)
b.为main函数开辟的空间叫做什么?由谁来维护的?(0:8:5)
①ebp指向函数栈帧的高地址还是低地址?esp呢?(0:8:45)
②esp和ebp中间这块空间(0:9:55)
③esp和ebp维护哪块空间?(0:9:30)
4.ebp和esp分别叫做什么?(0:10:20)
5.打开调用堆栈(0:11:45)
a.main函数是被哪个函数调用的?(0:14:10)
①调用main函数的那个函数又是被谁调用的呢?(0:14:25)
②表明在栈区,main函数所占空间的上方,一定有调用它的那两个函数的空间(0:15:55)
b.main函数的返回值给谁了?(0:13:30)
二、如何转到反汇编?(0:16:40)
1.为什么要关闭显示符号名?(0:17:15)
a.什么是符号名?
2.在进入main之前,esp和ebp指向哪儿?
3.push是什么?(0:19:30)
a. push ebp 是什么意思?(0:20:17)
①. push ebp 结束以后,esp指向哪里去了?(0:21:2)
②对a,esp的地址增加还是减少?几字节?(0:21:30)
4.move是什么?(0:23:0)
a. move ebp,esp 是什么意思?(0:23:5)
①move ebp,esp结束以后,ebp指向哪里去了?(0:23:30)
5.sub是什么?(0:23:55)
a.sub esp,0E4h是什么意思?(0:24:0)
①0E4h是几进制的数?对应的十进制大小是多少?如何快速查看进制转十进制?(0:24:5)
②sub esp,0E4h结束以后,esp和ebp中间隔了一大块空间。这块空间就是它们将要维护的新空间,即main的函数栈帧。也是预开辟空间。
6.这是什么意思?(0:27:35~0:29:0)
push ebx
push esi
push edi
7.lea是什么(0:30:8)
a.lea对应的原因单词:load effective address 加载有效地址
b.在勾选了显示符号名的背景下,lea edi,[ebp-0E4h]是什么意思?(0:30:30)
①lea edi,[ebp-0E4h]结束以后,edi指向哪里去了?(0:31:15)
8.下面是什么意思(0:36:0)
lea edi,[ebp-0E4h]
move ecx,39h
move eax,0CCCCCCCCh
rep stos dword
a.在反汇编中,rep stos是什么意思?
b.dword是什么意思(0:32:50)
①1个word是几个字节?(0:32:50)
c.从哪到哪的空间全部被替换成0CCCCCCCC?(0:34:0)
d.move ecx,39h是什么意思?(0:39:50)
①ecx是什么?(0:40:0)
e.总结:
9.什么是压栈?对应的单词?(0:37:30)
10.什么是出栈?对应的单词?(0:37:30)
11.mov dword ptr [ebp-8],0Ah 是什么意思?(0:41:0)
a.ebp-8维护的空间在哪里?(0:41:20)
b.a和10存放在哪里?(0:41:30)
c.烫烫烫烫烫是怎么来的?(0:42:25)