Maze
May 8th, 2009, 10:55
I've worked a number of programs and recently I ran into the first one that I can't do anything with.
It looks like I have to unpack it....this would be my first. This program also uses many anti-debugging tricks.
I've searched the web and found a recent article about an older version of this very program and how to manually unpack it....
ARTEAM EZINE ISSUE III rev.1 Article 2.
Great magazine btw, very interesting articles and information!
I'd like to start out by learning how to find the OEP for this program.
The Article by CondZero explained how to load the program, goto the executable modules, list the names in kernel32.dll,
and put a BP on GetModuleHandleA API. Run the program and wait for the break on the API. Then open up the memory map
and place a break on the Code section of the program. Run again, break on the API. Run again and break on the OEP.
A few questions about this process...
Why BP on GetModuleHandleA ?
Should other APIs be tried, which ones ?
I suspect the program is unpacked, then a break on the api would allow you to place a BP on the code section so when the
program first starts to execute anything in that section it is most likely the beginning of the program, the OEP.
Does this method usually work ?
The program uses Anti-Debugging tricks. Even when I start it first to try and attach to it, the second I start OllyDbg the
program shuts down. I've tried many of the plugins to hide OllyDbg but nothing works.
Can anyone suggest a plugin or method that would work ?
Thanks !
It looks like I have to unpack it....this would be my first. This program also uses many anti-debugging tricks.
I've searched the web and found a recent article about an older version of this very program and how to manually unpack it....
ARTEAM EZINE ISSUE III rev.1 Article 2.
Great magazine btw, very interesting articles and information!
I'd like to start out by learning how to find the OEP for this program.
The Article by CondZero explained how to load the program, goto the executable modules, list the names in kernel32.dll,
and put a BP on GetModuleHandleA API. Run the program and wait for the break on the API. Then open up the memory map
and place a break on the Code section of the program. Run again, break on the API. Run again and break on the OEP.
A few questions about this process...
Why BP on GetModuleHandleA ?
Should other APIs be tried, which ones ?
I suspect the program is unpacked, then a break on the api would allow you to place a BP on the code section so when the
program first starts to execute anything in that section it is most likely the beginning of the program, the OEP.
Does this method usually work ?
The program uses Anti-Debugging tricks. Even when I start it first to try and attach to it, the second I start OllyDbg the
program shuts down. I've tried many of the plugins to hide OllyDbg but nothing works.
Can anyone suggest a plugin or method that would work ?
Thanks !