我可以在 PE 标头中的代码处设置入口点吗?

逆向工程 x86 聚乙烯 视窗-8
2021-06-27 08:03:03

如果我设置了类似的东西0x00000040(我的代码位于这个地址),那么程序会因为这个错误而崩溃:

The application was unable to start correctly (0xc000007b)

但是如果我jmp从代码部分到 0x00400040 那么它就可以工作了。

为什么我收到那个奇怪地址 ( 0xc000007b) 的错误信息是否可以从位于段外的代码开始执行程序?

我使用 Windows 8。

1个回答

Windows 8 引入了一个新限制:AddressOfEntryPoint不能小于SizeOfHeaders.

设置SizeOfHeadersAddressOfEntryPoint使其工作

您得到的错误定义ntstatus.h如下:

//
// MessageId: STATUS_INVALID_IMAGE_FORMAT
//
// MessageText:
//
// {Bad Image}
// %hs is either not designed to run on Windows or it contains an error. Try installing the program again using the original installation media or contact your system administrator or the software vendor for support. Error status 0x%08lx.
//
#define STATUS_INVALID_IMAGE_FORMAT      ((NTSTATUS)0xC000007BL)