- 博客(7)
- 收藏
- 关注
原创 16汇编学习:数据传送指令的反汇编
这里有些疑惑的是xchg的第二种类型,和累加寄存器交换,如果携程xchg ax,ax会被xp debug当成nop(可能是交换无意义吧,毕竟都没变)代码还是比较冗余,尽管优化了一点,但还是有很多地方显得重复,代码测试较少,有bug正常。数据传送指令大概是pdf的第一页。
2024-04-04 22:49:45 162 1
原创 16汇编学习笔记1分段
1 .8086是16位cpu,最多可以访问(寻址)多大的内存?最多能访问到64kb的内存2 8086允许最大内存1M,如何实现访问到所有内存?和windows文件读写很像有两个变量表示内存,进行分段,物理地址=段地址*10h+偏移地址内存分段由程序员自己分配,段不要重叠(例如数据段和代码段)3一个物理地址可以有任意个逻辑地址表示例如074f0可以由(073f:0100)(064f:1000)表示dos内存分布地址。
2024-03-27 21:25:15 211
原创 学习笔记栈溢出的使用
原理:每个函数会在栈底存储下一条执行指令的值,我们只需串改这个值成我们想要执行的函数地址,例如下载病毒之类的。3.call 可以看作是先esp-=4 再给栈顶地址赋值为函数的下一条指令最后在跳转到另一个指令去执行函数。1.push 寄存器或数字 先esp-=4再让寄存器或数字赋值给esp指向地址的值,就是压入的意思。压入ebp(方便后面复原栈),让ebp=esp,再给eax赋值成第一个参数,再加上第二个参数。2.pop 寄存器 将esp指向地址的值赋给寄存器,再esp+=4 就是弹出的意思。
2023-05-29 21:09:35 184 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人