objdump=i586-mingw32msvc-objdump
cc=i586-mingw32msvc-gcc
exe=./aa.exe
编译gui程序:
$cc -mwidows -o aa.exe aa.c
编译console程序:
$cc -o aa.exe aa.c
生成汇编代码:
$cc -o aa.S -s aa.c
打印pe文件结构
$objdump -p $exe #此结构与用exeScope程序查看的结果完全一致.
打印pe文件的section头信息:
$objdump -h $exe #可查看section大小,虚地址, 在文件中的偏移
反汇编.text节:
$objdump -dS $exe #查看.text中的反汇编代码
$objdump -dS -F $exe #同上, 可查看文件的偏移量.
反汇编所有section:
$objdump -DS $exe #查看所有节的反汇编,其中只有.text的有实际意义,其它的节意义不大。
$objdump -D $exe #查看所有节的二进制数据,地址以虚地址的方式显示。要查到在文件中的位置需要参考section头信息。
$objdump ... -F $exe # 同上, 可显示文件的偏移量
查看exe的符号表:
$objdump -t $exe
#########################
可选参数,可提供特殊的功能:
1. 显示在文件中的偏移量: -F #反汇编时可以显示文件偏移。
2. 机器结构: -m #要编译gui程序就必须指定 -mwindows
3. 只针对某一个节: -j<section_name> #例如: 与反汇编配合,查看某一节的反汇编
4. 大小端: -EB, -EL
5. 源代码文件: -I<path> #指定源代码路径。
6. 显示文件与行号: -l
7. 确定地址范围: --start-address=<addr> --stop-address=<addr>