PWN入门-基础知识-1
关于NC
- 如何在Linux系统下使用NC工具连接远程?
关于GCC的使用
.c 是 C 语言源代码。 .s 和 .asm 是汇编语言源代码。 .o 是编译后的目标文件,等待链接成最终的可执行文件。
- 怎么在Linux中运行或编译可执行文件?
- 如何将C语言源程序编译成可执行文件?
- 如何编译汇编代码到可执行文件?
- 如果将汇编源代码编译成可执行文件?
关于汇编
- 立即寻址方式结束后eax寄存器的值?
立即寻址方式是指在指令中直接指定操作数的方式,而不是通过内存地址或寄存器来查找操作数。 - 寄存器寻址方式结束后edx寄存器的值为?
寄存器寻址方式是指操作数直接存储在寄存器中,而不是存储在内存中的某个地址。 - 直接寻址方式结束后ecx寄存器的值为?
直接寻址方式是指指令中的操作数是内存中的某个地址。 这里可以看出dword_80490E的内存地址是0x080490E8,则ECX=dword_80490E的内存地址=0x080490E8。
- 寄存器间接寻址方式结束后eax寄存器的值为?
寄存器间接寻址方式是指使用一个寄存器来存储操作数的地址,然后通过这个寄存器指向的内存位置进行操作。 这里可以看到dword_80490E8所在地址的值是0x636C6557,ESI的地址=dword_80490E8的地址,EAX的值=ESI的地址的值=dword_80490E8所在地址的值=0x636C6557
- 寄存器相对寻址方式结束后eax寄存器的值为?
寄存器相对寻址方式是一种通过使用基址寄存器和偏移量的组合来计算内存地址的寻址方式。 这里可以知道dword_80490E在内存里的地址是0x080490E8,EAX=dword_80490E+4=0x080490E8+4=0x80490EC。
这里就可以得到EAX的地址的值是ome_to_CTFshow_PWN=EAX。
- 基址变址寻址方式结束后的eax寄存器的值为?
基址变址寻址方式是一种结合了基址寄存器和变址寄存器的寻址方式,它通过将基址寄存器的值、变址寄存器的值以及一个可能的常量偏移量相加来计算内存地址。 这里可以知道dword_80490E在内存里的地址是0x080490E8,EAX=dword_80490E+EDX2=0x080490E8+22=0x80490EC
这里就可以得到EAX的地址的值是ome_to_CTFshow_PWN=EAX。
- 相对基址变址寻址方式结束后eax寄存器的值为?
相对基址变址寻址方式是基址变址寻址方式的扩展,它结合了基址寄存器、变址寄存器、乘法因子和偏移量。 这里可以知道dword_80490E在内存里的地址是0x080490E8,EAX=(dword_80490E8+8)+12-6=(0x080490E8+8)+12-6=0x80490EC。
这里就可以得到EAX的地址的值是ome_to_CTFshow_PWN=EAX。
关于汇编的总结
- MOV 指令 将数据从一个位置复制到另一个位置。
- ADD 指令 将两个操作数相加并将结果存入目标。
- SUB 指令 将源操作数从目标操作数中减去,并将结果存回目标。
- XOR 指令 执行异或操作,将源和目标操作数进行异或运算,并将结果存入目标。
- EAX 累加寄存器 算术操作(加法、减法等)的结果通常存储在 EAX 中。
- EBX 基址寄存器 用于数组或结构体的基址计算。
- ECX 计数寄存器 计数器。
- EDX 数据寄存器 存储扩展的数据或操作数。
- ESI 源索引寄存器 表示源数据的位置。