首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >exe如何工作,以及如何调用dll和exe文件地址。

exe如何工作,以及如何调用dll和exe文件地址。
EN

Stack Overflow用户
提问于 2010-11-22 03:50:13
回答 2查看 1K关注 0票数 0
  • 基于Windows的可执行文件是如何工作的?
  • 如何在可执行文件中找到起始地址?
  • 对于任何文件执行,地址存储在哪里,我们如何读取这些地址?
  • 对任何dll或exe文件的调用和ret如何工作?

给我一些使用ida pro反汇编程序的技巧。

EN

回答 2

Stack Overflow用户

发布于 2010-11-22 03:55:40

程序的虚拟开始地址记录在可执行文件的头中。任何理解这些结构的头查看程序都可以很容易地显示它们,例如HT (http://hte.sf.net/)--仅举一个例子。IDAPro可能也有类似的地方。

票数 1
EN

Stack Overflow用户

发布于 2015-10-06 17:14:09

对任何dll或exe文件的调用和ret如何工作

这实际上取决于它是一个DLL还是一个有问题的EXE。

当Windows的模块加载器完成加载DLL时,它使用DLL_PROCESS_ATTACH参数调用DLL的开始地址(称为‘DllMain文档’)。如果DllMain返回1,则加载程序继续运行。

但是,当启动EXE时,系统会生成一个新进程,并将ntdll.dll映射到该进程的地址空间,然后生成从NTDLL的起始地址运行的主线程。然后,该线程执行更多的初始化,加载EXE文件(加上它的导入表中列出的任何DLL),并调用EXE的开始地址所标识的函数。当该函数返回时,NTDLL将调用NtTerminateProcess,它将杀死所有正在运行的线程并关闭进程。

使用用户模式调试器可能很难观察到这个EXE启动过程;有些调试器很难在进程初始化的早期阶段中断。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4242118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档