汇编语言
记录汇编语言, 主要结合C语言实现反汇编, 用于更深入的理解C语言
Coder233
个人比较喜欢技术。
熟悉C语言,
熟悉汇编语言(ARM/X86),
了解linux 操作系统,
了解C++ ,java语言,
喜欢对底层操作系统原理的理解。
喜欢与人讨论底层技术。
可以关注我,以后会时时更新技术的学习心得。
展开
-
C 语言指针反汇编代码阅读
rbp: 0x7fffffffdd00 rbp-14: 0x7fffffffdcf2 C语言代码: int *p=(int *)0x7fffffffdcf0; rax(保存了0x7fffffffdcf2): 0x7fffffffdcec *0x7fffffffdcec=5 0x7fffffffdcec就是rbp -14的值, 0x14 0x7fffffffdcf2是rbp...原创 2019-10-31 22:32:37 · 629 阅读 · 0 评论 -
C语言动态内存反汇编调试
#include<stdio.h> #include<stdlib.h> int main() { char *str=(char*)malloc(50); str[0]='a'; 13 14 str[1]='b'; 15 16 str[2]='c'; 17 18 ...原创 2019-10-31 11:13:48 · 489 阅读 · 0 评论 -
gdb C语言汇编代码调试
gdb支持源码级调试,这是众所周知的事情。当然,你也可以进行汇编级的调试。理论上这个更应该有用。(因为很多程序的编译常常没有源码级别的调试信息) 那么怎么做? 先写一个最简单的源代码。 $ cat > a.c int main(void) { int i = 0; i = 2; return 0; } Ctrl + D 保存,编译。 $ gcc a.c 开始...转载 2019-10-31 07:39:52 · 1203 阅读 · 0 评论 -
汇编语言栈帧的理解与坑点
汇编语言栈帧的理解 函数栈由三部分组成: setup, Body, Finish %ebp 保存栈帧的起始地址, ebp指向栈帧起始地址 %esp 保存栈帧的栈顶地址, esp指向栈顶 所以栈的空间就是 esp-ebp 案例: swap函数栈: swap: #setup部分 pushl %ebp movl %esp, %ebp pushl %...原创 2019-10-29 16:24:15 · 532 阅读 · 0 评论