汇编快速入门1
From Codes to Executables
编译
gcc file.c-o exe_file –m32生成可执行文件
objdump –d –M intel file //-d 反汇编
804841f: 68 c0 84 04 08 push 0x80484c0
8048424: e8 b7 fe ff ff call 80482e0 <puts@plt>
主要的是这两句话
puts 就是printf
类型 |
Byte |
short |
2 |
int |
4 |
long |
4 |
char |
1 |
gcc bin1.c -o bin1 –m32
objdump -d -M intel ./bin1
0x41 =‘A’
EBP栈底 栈底-1字节,分配一个字节的空间。
一看到这句就代表x=0xb x=11 给程序中的一个变量赋值
DWORD 双字,四个字节byte
WORD 单字,两个字节
int a=11;int b=22;int c=33;
浮点数在存储时涉及到整数部分和小数部分
double a=1.234;
QWORD
fld //f load
fstp //
一看就是 处理浮点数
。。。丢进IDA
双击main函数 这个db代表double
全局变量放在BSS段或者data段
局部变量放在堆栈中
从数据段中取了一个数付给eax
丢进IDA分析
Minds overflow