I hope the question is not too outdated ... There are several more ways to achieve this. You can follow the steps in the mentioned tutorial or try other ways (usually depending on the version / options of the packers, etc.). To mention one alternative approach, try finding the following instructions in your packaged executable:
6800000000 push 0 C3 retn
Set a breakpoint in this push 0 instruction and run the executable. This command will be changed during the removal of the packer code, and 0 (DWORD 0x000000) will be replaced by the address (DWORD) of the original entry point (so that the instruction will look like push 00451000 , for example).
After execution, the OEP address will be pushed onto the stack, and the next ret command will accept it as the return address, where execution should continue .... thus setting the EIP (instruction pointer) to the initial entry point.
To search for these instructions, I recommend using some kind of hex editor or HIEW32 ... look for the following hex pattern: 6800000000C3
source share