main

Posted by 夏泽民

ld有多种方法设置进程入口地址, 按一下顺序: (编号越前, 优先级越高) 1, ld命令行的-e选项 2, 连接脚本的ENTRY(SYMBOL)命令 eg. ENTRY(_start) /* Entry point of application*/ 3, 如果定义了start符号, 使用_start符号值 4, 如果存在.text section, 使用.text section的第一字节的位置值 5, 使用值0 (一)通常例子



heap 内存管理之堆和栈

Posted by 夏泽民

32位Linux系统,即起始地址为0x08048000,可以看到顺序为只读段(代码段等)、读写段(数据段、bss段等)、堆(向上即高地址扩展)、用于堆扩展的未使用空间、动态库的映射位置(0x40000000开始)、之后就是栈(向下即低地址扩展)以及用于栈扩展的未使用空间、最后是内核空间。 其中栈最大的不同就是从高地址向低地址扩展,同时有esp指针一直指向栈顶(低地址),另外栈的原则是先入后出。



dumpbin

Posted by 夏泽民

有时候我们想查看一个exe引用了哪些动态库,或者我们想看某个动态库包含哪些接口函数,这个时候可以使用dumpbin.exe工具:



c++filt

Posted by 夏泽民

我们知道, 在C++中, 是允许函数重载的, 也就引出了编译器的name mangling机制, 今天我们要介绍的c++filt命令便与此有关。



Linux进程分配内存的两种方式--brk() 和mmap()

Posted by 夏泽民

如何查看进程发生缺页中断的次数?



Search

Popular posts

Anything in here will be replaced on browsers that support the canvas element

Recent posts

This blog is maintained by 夏泽民

Get in touch with me at 465474307@qq.com

Subscribe to our mailing list

* indicates required