![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统相关
文章平均质量分 83
VirtualUniverse
这个作者很懒,什么都没留下…
展开
-
不同操作系统下的程序入口点分析
转自 http://hi.baidu.com/liu_bin0101/blog/item/03e3a9ec4e0fd5d72e2e21b9.html程序入口与编译器没有什么关系, 关键是链接链接器(UNIX的用的ld和WINDOWS下用的LINK.EXE)ld 用参数转载 2011-08-22 10:05:14 · 896 阅读 · 0 评论 -
从Entry Point到main函数调用(6):exit
转自 http://driftcloudy.iteye.com/blog/1063275 本章是该系列最后一篇,打算看一下 exit 函数中究竟做了些什么。 main函数的返回值 在第(5)篇里完成了_cinit() 的分析之后,mainCRTStartup中转载 2011-08-22 10:32:58 · 674 阅读 · 0 评论 -
从Entry Point到main函数调用(1)
转自 http://driftcloudy.iteye.com/blog/1048750之前在调试exe时感觉很奇怪,为什么Entry Point并非直接进入到main函数。举例来说,如果将一段空的C代码build为exe:C代码 void转载 2011-08-22 10:28:51 · 896 阅读 · 0 评论 -
从Entry Point到main函数调用(2):GetVersion
转自 http://driftcloudy.iteye.com/blog/1049404之前(1)篇中大致介绍了mainCRTStartup,但是其中一些调用到的函数并未深究,现打算逐一剖析它们。 GetVersion GetVersion函数是kernel32.转载 2011-08-22 10:29:49 · 617 阅读 · 0 评论 -
从Entry Point到main函数调用(4)
转自 http://driftcloudy.iteye.com/blog/1052971先撇开_ioinit()不谈,IO有点儿麻烦,待有空再去挖掘这些东西。GetCommandLineA 该函数的汇编代码短得令人发指。Asm代码 7C8转载 2011-08-22 10:31:23 · 601 阅读 · 0 评论 -
从Entry Point到main函数调用(5):_cinit
转自 http://driftcloudy.iteye.com/blog/1061569_cinit 在完成了_setargv() 以及_setenvp() 之后,进入到_cinit 函数。该函数的注释很短,就一句“do C data initialize”,让人完全摸不转载 2011-08-22 10:32:15 · 858 阅读 · 0 评论 -
从Entry Point到main函数调用(3):_heap_init
转自 http://driftcloudy.iteye.com/blog/1050271 _heap_init 在(1)中提到过该函数用于分配一个堆。这个堆是动态创建的私有堆,与系统为进程分配的默认堆不同。进程启动时,系统会在进程虚拟地址空间中创建一个堆,即为进程的默转载 2011-08-22 10:30:19 · 642 阅读 · 0 评论