Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
替换入口点windows的地址只能在调试器下工作_Windows_Debugging_Assembly_Packer - Fatal编程技术网

替换入口点windows的地址只能在调试器下工作

替换入口点windows的地址只能在调试器下工作,windows,debugging,assembly,packer,Windows,Debugging,Assembly,Packer,我试图理解PE在windows下是如何工作的,因此我将沿着写封隔器的路线走下去。 所以我取了入口点的地址,它指向_mainCRTStartup,并用一个指向“jmp _mainCRTStartup”的值替换它。 当我在调试器下运行它时,我的程序运行正常,但如果我只是在没有调试器的情况下启动可执行文件,它会崩溃,并且我无法在崩溃后附加调试器,调试器会说它无法附加到崩溃进程 我想我的问题是:我的方法是否有效?如果是,我可以尝试解决此问题吗 谢谢 Max结果一切正常,我忘了处理反调试例程中的异常,如果

我试图理解PE在windows下是如何工作的,因此我将沿着写封隔器的路线走下去。 所以我取了入口点的地址,它指向_mainCRTStartup,并用一个指向“jmp _mainCRTStartup”的值替换它。 当我在调试器下运行它时,我的程序运行正常,但如果我只是在没有调试器的情况下启动可执行文件,它会崩溃,并且我无法在崩溃后附加调试器,调试器会说它无法附加到崩溃进程

我想我的问题是:我的方法是否有效?如果是,我可以尝试解决此问题吗

谢谢


Max

结果一切正常,我忘了处理反调试例程中的异常,如果没有在调试器中运行,该异常会使exe崩溃。

OEP?你是指AddressOfEntryPoint字段吗?没错,我认为OEP代表原始入口点。确保使用的是相对于可执行文件实际加载地址的a值(通常是值ImageBase)。因此,如果内存中的实际入口点应为0x401570,ImageBase为0x400000,则该值应为0x1570。是的,它使用的是正确的相对地址,但我无法理解的是,为什么它在调试器下工作,而不是没有调试器。。。