一旦Windows将可执行文件加载到内存中并将执行转移到入口点,那么寄存器和堆栈中的值是否有意义?如果是这样,我可以在哪里找到关于它的更多信息?Windows初始执行上下文
3
A
回答
6
正式地,PE文件入口点的寄存器没有定义的值。您应该使用API,例如来检索您需要的信息。但是,由于最终将控制权转移到入口点的内核功能并没有太大改变,所以一些PE包装商和恶意软件开始依赖其特性。两个或多或少可靠寄存器是:
EAX指向应用程序的入口点(因为内核函数使用
call eax
跳转到它)EBX指向进程环境块( PEB)。
1
Windows Internals第5版第5章详细介绍了Windows创建过程的机制。这将为您提供更多有关Windows在内存中加载可执行文件并将执行转移到入口点的信息。
我发现了这个最新的参考资料,它涵盖了各种操作系统和各种编译器在各种调用约定中如何使用寄存器。这是非常详细的,似乎全面: Agner Fog's Calling Conventions document
+1
链接已损坏。我认为这是它:http://www.agner.org/optimize/calling_conventions.pdf – aalku 2015-06-25 12:55:04
相关问题
- 1. Spring上下文初始化
- 2. 可执行初始化
- 3. 在tomcat上运行上下文初始化失败
- 4. 严重:上下文初始化失败
- 5. 异常发送上下文初始化
- 6. LDAP,JNDI和初始上下文关系
- 7. SEVERE:上下文初始化失败org.springframework.beans.factory.BeanDefinitionStoreException:
- 8. 无法初始化上下文
- 9. FreeRTOS初始上下文切换
- 10. 如何初始化上下文?
- 11. Tapestry - Spring - 无法初始化上下文
- 12. 缓慢的上下文初始化
- 13. ContextLoader:上下文初始化失败
- 14. Tomcat 8上下文初始化两次
- 15. 无法初始化上下文
- 16. 上下文初始化失败:org.springframework.beans.factory.BeanDefinitionStoreException
- 17. 上下文初始化失败 - BeanCreationNotAllowedException
- 18. 执行上下文混乱
- 19. 使用spring进行多线程上下文初始化?
- 20. 在Windows服务中执行冗长的初始化
- 21. 无法使用GitHub Windows应用程序执行初始提交
- 22. 如何在不首先执行初始结帐的情况下执行COMMIT?
- 23. FirebaseCrash在哪个上下文下执行
- 24. 未初始化缓冲区时内核执行时间下降
- 25. 是什么Scala的执行上下文和游戏的执行上下文
- 26. 当上下文初始化时,JSF初始化应用程序bean
- 27. 初始化ELF可执行文件的C文件?
- 28. 如何在spark中执行初始化?
- 29. 在EJB3.1中执行初始化代码
- 30. 使用ES6模块执行初始化
良好的信息,但你知道任何关于x64? – ST3 2016-12-19 09:40:18
@ ST3不,但您可以检查调试器。 – 2016-12-19 09:56:25
好的,但有一个问题,你确定'EAX'指向'EP'吗?我在我的机器上看到了'CALL EDX'。 – ST3 2016-12-19 10:45:56