Log in

View Full Version : ASPROTEC - OEP?


cps530
March 27th, 2004, 08:17
I'm working on a program packed with ASPROTECT 1.23 RC4. Using the exceptions method by Ricardo Narvaja, I have found the following instructions, as OEP:

00509FE8 PUSH 0
PUSH 0
DEC ECX
JNZ 00509FE8

I can't find stollen bytes, and stepping over some instructions below, the program starts. Those instructions seem very strange! Or not? Do I need continue searching for OEP? Thanks

Teerayoot
March 27th, 2004, 09:23
Where to download that progie?
Or send me via email.

Ricardo Narvaja
March 27th, 2004, 15:25
the method put you ina first sentence executed of the original program not is the real OEP, look in the stack if you have a

RETURN TO ...... XXXXXX

if XXXXX is in the first section too you are in a CALL, mark this line in the stack and right click FOLLOW IN DISSASSEMBLER and go out of the call, posibly to the oep zone

Ricardo

cps530
March 27th, 2004, 15:53
Yes, I have, but a RETURN TO kernell.77E814C7. And nothing more. Any idea?

Ricardo Narvaja
March 27th, 2004, 20:27
Well if you not have RETURNS to an code section in a stack, before

00509FE8 PUSH 0
PUSH 0
DEC ECX
JNZ 00509FE8

there are a space with zeros? (zone for stolen bytes)
And other thing the method of exceptions, you count the exceptions in the asprotect zone (not in others dll, or exe exceptions)
Ricardo

cps530
March 28th, 2004, 07:53
Yes, there is a space with zeros. So I think I have stolen bytes. The problem is the stolen bytes are trashed (I believ so). Is there any tutorial describing or commenting how to handle that? thanks

Ricardo Narvaja
March 28th, 2004, 13:53
well there are many tutorials in my FTP but are all in spanish i think is better you go to rce forum and look for a tute in english, there are some tuts of asprotect with stolen bytes.
there are many methods for you obtain the stolen bytes, tracing the code before the oep, or comparing the stack of a program when start, against the stack of the program when stop in the oep.
If you wrote the values of the registers when the program start before unpacking and compare with the registers in the real OEP (not fake oep) are equals, for this reaso the diference in the fake oep, are made for rthe lines executed.

An example

if you in the star of the program have EBP=12ff00

and the stacks of the program when start is

0012FFC4 77E614C7 RETURN to kernel32.77E614C7
0012FFC8 77F417E6 RETURN to ntdll.77F417E6 from ntdll.77F68C4E
0012FFCC 77F41778 RETURN to ntdll.77F41778 from ntdll.77F417B5
0012FFD0 7FFDF000
0012FFD4 F9FB0CF0
0012FFD8 0012FFC8
0012FFDC 8053C88F
0012FFE0 FFFFFFFF End of SEH chain
0012FFE4 77E74809 SE handler
0012FFE8 77E71210 kernel32.77E71210

and the stack of the program in the fake oep is

0012ffc0 12ff00
0012FFC4 77E614C7 RETURN to kernel32.77E614C7
0012FFC8 77F417E6 RETURN to ntdll.77F417E6 from ntdll.77F68C4E
0012FFCC 77F41778 RETURN to ntdll.77F41778 from ntdll.77F417B5
0012FFD0 7FFDF000
0012FFD4 F9FB0CF0
0012FFD8 0012FFC8
0012FFDC 8053C88F
0012FFE0 FFFFFFFF End of SEH chain
0012FFE4 77E74809 SE handler
0012FFE8 77E71210 kernel32.77E71210

is obvious the first line executes was PUSH EBP the diference of the stacks is this value.

Generally you found 5 or 6 values, and if you analize the stack compare, you can found the lines executed easily

Ricardo




Ricardo

cps530
March 28th, 2004, 16:49
Thanks for your tipos. I speak spanish so, if you can, tell me your ftp address. Thanks again.

Ricardo Narvaja
March 29th, 2004, 01:45
Bueno mi FTP es

ftp://curso:curso@ricnar456.no-ip.org/
("ftp://curso:curso@ricnar456.no-ip.org/
")


user:curso
pass:curso

carpeta NUEVO CURSO-TEORIAS

y como yo no se hablar ingles no se si se entendio algo de lo que explique antes pero la base es que en el OEP correcto y en el inicio del programa antes de arrancarlo los registros y el stack deben ser iguales, asi que cuando paras en el punto donde te deja el metodos de las excepciones, analizando las diferencias sacas las lineas que fueron ejecutadas.

Ricardo

cps530
March 29th, 2004, 09:35
Gracias, una vez más. Yo compreendo totalmente lo que dices. Voy a chequear tu ftp. ("ftp://ftp.")

j_petrucci
April 5th, 2004, 16:47
Hi Ricardo!

Do you also have some lesson or tutorial in english? it would be nice to translate some of your work...

Ricardo Narvaja
April 6th, 2004, 01:25
i have today 205 tutorials , but only 5 or 6 in english, (POINTH, ARMADILLO WITH COPYMEM2, WITHOUT COPYMEM2), nothing more.

Write tutorial is a hard work, investigate protections take a big time, and i don't speak english well for translate and have not time.

If you have time for translate do it, i put the english versions in my FTP.
("ftp://FTP.
")

Ricardo

j_petrucci
April 8th, 2004, 16:49
Ricardo, I would be VERY happy to translate them for you, because I believe you are a pretty talented one, but unfortunately I can't speak Spanish!

sorry about that

take care

Ricardo Narvaja
April 8th, 2004, 17:38
SNIF SNIF the where are bilingual crackers ? jeje

Ricardo