As a first unpacking exercise, I decided to try to unpack the famous UPX (without using upx -d of course). I chose an executable I had somewhere, built from C++ code in debug mode. I packed it using the last version of upx upx algorithm.exe
and tested it.
I set a hardware breakpoint after PUSHAD and after I hit it, I dumped the process with OllydumpEx. Finally I used Scylla to rebuild the IAT.
There was no error during the whole process but my fixed dump terminate with a Segmentation Fault. What would you do to investigate what went wrong?
This picture shows the disassembly windows where I paused to dump, and the options used during the process.
Edit:
I just checked in the process memory and the IAT VA and size found b Scylla seem to be correct.