Unpackme nr.5
Astalavista Forum Index :: Crack Me's and Challenges :: Unpackme nr.5
Post new topic   This topic is locked: you cannot edit posts or make replies. View previous topic :: View next topic
Goto page 1, 2  Next
  Unpackme nr.5
Author Message
herr-master
Super Member
Super Member


Offline
No Image
Joined: 02 Jul 2007
Posts: 547

Reply with quote
No Image
her is are new unpackme from me i hope is not to hard for you this one is not for noobs.



Use these free links to download now:
Code:
http://www.Notallowed!/1904096037/Unpackme5.rar


mirror
Use these free links to download now:
Code:
http://rapidshare.de/files/46568728/Unpackme5.rar.html


Ps:please read the lbls and follow the rules.

Unsolved
No one has solved it jet.
Solved list
1:LCF-AT//very good
2:Name
3:Name

_________________
I will not crack request per pm!
thx @izzad95 for the sig!


Last edited by herr-master on Wed Apr 22, 2009 6:04 am; edited 3 times in total
View user's profile Send private message
PostDate Posted:Thu Mar 19, 2009 4:17 pm
Thanks: 19Thanked 128 Times In 86 Posts

Author Message
KenTheFurry
Special Member
Special Member


Offline
No Image
Joined: 11 Apr 2008
Posts: 408
Location: Michigan

Reply with quote
No Image
Lol this is annoying me I think I have the OEP but I can't seem to get the correct imports.

_________________
-KenTheFurry
View user's profile Send private message Visit poster's website MSN Messenger
PostDate Posted:Thu Mar 19, 2009 8:54 pm
Thanks: 11Thanked 50 Times In 32 Posts

Author Message
LCF-AT
Special Member
Special Member


Offline
No Image
Joined: 17 Jan 2008
Posts: 205
Location: Chateau-Saint-Martin

Reply with quote
No Image
Hi,

new unpackme by herr-master {hafe deutsch? Smile}.

So after a fast view on it I can say that I have seen this protection already but I canīt remember the name of it...hmm.

@ KenTheFurry

One exsample:
Code:
004068A8   JMP 00AD04BE
004068AD   NOP

00AD04BE   PUSH EAX
00AD04BF   PUSHAD
00AD04C0   MOV EAX,37
00AD04C5   PUSH 5F005682
00AD04CA   JMP DWORD PTR DS:[537A63] ; 0053636F

0053636F   MOV ECX,0AE0000     // BP
....

005363AC   MOV DWORD PTR SS:[ESP+1C],EAX  // eax
.....

005363B4   RETN

00AC063D   CMP DWORD PTR SS:[ESP+4],0  <---
00AC0642   JMP DWORD PTR DS:[AC0648] ; 77E59F98 kernel32.

77E59F93 GetModuleHandleA     837C24 04 00     CMP DWORD PTR SS:[ESP+4],0 <----
77E59F98                      0F84 23060000    JE 77E5A5C1 <--- OUT

-------------------------
004068A8   JMP 00AD04BE
004068AD   NOP
-------------------------
==
004068A8   JMP dword ptr ds: [xxxxxxxx] ; kernel32.GetModuleHandleA
------------------------

greetz
View user's profile Send private message
PostDate Posted:Thu Mar 19, 2009 11:29 pm
Thanks: 0Thanked 44 Times In 29 Posts

Author Message
herr-master
Super Member
Super Member


Offline
No Image
Joined: 02 Jul 2007
Posts: 547

Reply with quote
No Image
LCF-AT one question i can say ap0x and yes LCF-AT i am are germen boy.
For you its easy to unpack the packer i us hafe are vm and many is debugger present.

_________________
I will not crack request per pm!
thx @izzad95 for the sig!
View user's profile Send private message
PostDate Posted:Fri Mar 20, 2009 9:02 am
Thanks: 19Thanked 128 Times In 86 Posts

Author Message
LCF-AT
Special Member
Special Member


Offline
No Image
Joined: 17 Jan 2008
Posts: 205
Location: Chateau-Saint-Martin

Reply with quote
No Image
Hello herr-master,

thankīs for the info about ap0x so now I know again what it is. Smile
Ahhh also german! Wink
So I just saw some of your mystery grammatical spelling like "hafe" etc. Smile

greetz
View user's profile Send private message
PostDate Posted:Mon Mar 23, 2009 1:28 am
Thanks: 0Thanked 44 Times In 29 Posts

Author Message
herr-master
Super Member
Super Member


Offline
No Image
Joined: 02 Jul 2007
Posts: 547

Reply with quote
No Image
Yes you see i can not good english i us google and the site from chooki,
can you help me are little bit wight my keygenme.

_________________
I will not crack request per pm!
thx @izzad95 for the sig!
View user's profile Send private message
PostDate Posted:Mon Mar 23, 2009 6:55 am
Thanks: 19Thanked 128 Times In 86 Posts

Author Message
LCF-AT
Special Member
Special Member


Offline
No Image
Joined: 17 Jan 2008
Posts: 205
Location: Chateau-Saint-Martin

Reply with quote
No Image
Yes your english is not the best and my is also bad.Hmm chooki has a translate page?So I would help you but I have no idea about keygen stuff.

greetz
View user's profile Send private message
PostDate Posted:Mon Mar 23, 2009 6:22 pm
Thanks: 0Thanked 44 Times In 29 Posts

Author Message
cozofdeath
Special Member
Special Member


Offline
No Image
Joined: 09 Dec 2007
Posts: 379
Location: Classified

Reply with quote
No Image
I like it. Much harder than the basic. Ap0x adds good features. I like the VM OEP. If I wasn't somewhat familiar with rlpack I would of had a very hard time identifying the OEP. Nice one Very Happy Hopefully I can make a script for it. Should we post dumps?

_________________
View user's profile Send private message
PostDate Posted:Thu Mar 26, 2009 1:46 am
Thanks: 23Thanked 130 Times In 66 Posts

Author Message
herr-master
Super Member
Super Member


Offline
No Image
Joined: 02 Jul 2007
Posts: 547

Reply with quote
No Image
Yes i wait for the dumps no one has post are dumped one.I fell me so lucky that you found my unpackmes usefull.
PS:My next one is coming.
@cozofdeath if you can make are script make it.

_________________
I will not crack request per pm!
thx @izzad95 for the sig!
View user's profile Send private message
PostDate Posted:Thu Mar 26, 2009 6:54 am
Thanks: 19Thanked 128 Times In 86 Posts

Author Message
cozofdeath
Special Member
Special Member


Offline
No Image
Joined: 09 Dec 2007
Posts: 379
Location: Classified

Reply with quote
No Image
Well I think my script is good to find oep and correct 98% of the IAT but I'm having a dumping issue. Since you enabled the Virtual OEP and the anticrack protection the VM OEP isn't dumping. It looks like you enabled a lot of things so this will take me a while if I can even get it dumped. You probably have that extra dump protection to which I still haven't totally solved but that isn't why my dump isn't working. Can anyone offer some help or tut even if you can get it to dump properly but not run. Very Happy Very Happy Very Happy Very Happy

PS I have tried the normal dump corrections, SizeOfImage, section size fixes, rebuilding, fixing resource section. Nothing works when it has the vm oep. What am I doing wrong???? AHHHHHHH

_________________
View user's profile Send private message
PostDate Posted:Fri Mar 27, 2009 7:45 pm
Thanks: 23Thanked 130 Times In 66 Posts

Author Message
LCF-AT
Special Member
Special Member


Offline
No Image
Joined: 17 Jan 2008
Posts: 205
Location: Chateau-Saint-Martin

Reply with quote
No Image
Hello,

just as info for all otherīs which want to unpack herr-masterīs Unpackme nr.5.So the first one has it solved alraedy.Lookīs like me. Smile

So you see itīs also possible to unpack this {much harder} UnpackMe.

What to do.
- Redirect IAT // a bit harder as other RLpack appīs
- Rebuild OEP routine // 290 bytes brutto / net
- Repair VMīd code // over 500 parts

The redirection of the IAT is in this UnpackMe the easiest thing.
The OEP rebuild is the hardest thing.There are also a lot to translate.
If you want to repair the VMīd main code then you have first to translate correctly all VMīd opportunities back to the original code.I found ca. 30 diffrentīs {+ other RLpack protected appīs} which you have to translate and then you can write a script to repair this code correctly.

greetz
View user's profile Send private message
PostDate Posted:Wed Apr 22, 2009 2:08 pm
Thanks: 0Thanked 44 Times In 29 Posts

Author Message
cozofdeath
Special Member
Special Member


Offline
No Image
Joined: 09 Dec 2007
Posts: 379
Location: Classified

Reply with quote
No Image
What do you mean by...

Quote:
Repair VMīd code // over 500 parts



Are there parts in the unpacked code section that are virtualized? For obfuscation?

Also how do you get the OEP straight. I only know of tracing and doing it manually. Did you make a script?

_________________
View user's profile Send private message
PostDate Posted:Wed Apr 22, 2009 10:41 pm
Thanks: 23Thanked 130 Times In 66 Posts

Author Message
herr-master
Super Member
Super Member


Offline
No Image
Joined: 02 Jul 2007
Posts: 547

Reply with quote
No Image
@cozofdeath this unpackme has more as one vm you whil see 10 - 20 vm, that is what lcf-at whant say wight over 500 parts,and to you second question that is true what you say cozofdeath.Are liitel tip from me cozofdeath you need are unpacked one to compare wight the packed one to found the real oep.

_________________
I will not crack request per pm!
thx @izzad95 for the sig!
View user's profile Send private message
PostDate Posted:Thu Apr 23, 2009 6:07 am
Thanks: 19Thanked 128 Times In 86 Posts

Author Message
LCF-AT
Special Member
Special Member


Offline
No Image
Joined: 17 Jan 2008
Posts: 205
Location: Chateau-Saint-Martin

Reply with quote
No Image
Hi,

1. You have to rebuild exact 17 instructions.The whole OEP routine.From

push ebp
.....
untill
.....
Call xxxxxxxx // last one // till here are 40 bytes Hex
LEA EAX,DWORD PTR DS:[EAX]

Stolen Bytes start
Use these free links to download now:
Code:
00AB0000  00000003
00AB0004  00000007
00AB0008  00000000
00AB000C  00000001
00AB0010  00000000
00AB0014  00000000
00AB0018  00000005
00AB001C  00000008
00AB0020  FFFFFFF0
00AB0024  00000006
00AB0028  00000001
00AB002C  00494178  Unpackme.00494178
00AB0030  00000002
00AB0034  00000000
00AB0038  00000000
00AB003C  00000003
00AB0040  00000002
00AB0044  00000000
00AB0048  00000010
00AB004C  00000002
00AB0050  00000001
00AB0054  00000006
00AB0058  00000001
00AB005C  00000000
00AB0060  0000000B
00AB0064  004950A0  Unpackme.004950A0
00AB0068  00000001
00AB006C  00000002
00AB0070  00000000
00AB0074  00000000
00AB0078  0000000C
00AB007C  004068A8  Unpackme.004068A8
00AB0080  00000000
00AB0084  0000000B
00AB0088  00497664  Unpackme.00497664
00AB008C  00000001
00AB0090  0000000D
00AB0094  00000001
00AB0098  00497664  Unpackme.00497664
00AB009C  0000000B
00AB00A0  004950AC  Unpackme.004950AC
00AB00A4  00000001
00AB00A8  00000006
00AB00AC  00000001
00AB00B0  00000000
00AB00B4  0000000B
00AB00B8  004950B0  Unpackme.004950B0
00AB00BC  00000001
00AB00C0  00000006
00AB00C4  00000001
00AB00C8  00000000
00AB00CC  0000000B
00AB00D0  004950B4  Unpackme.004950B4
00AB00D4  00000001
00AB00D8  00000002
00AB00DC  00000000
00AB00E0  00000000
00AB00E4  00000006
00AB00E8  00000001
00AB00EC  004950A8  Unpackme.004950A8
00AB00F0  00000002
00AB00F4  00000000
00AB00F8  00000000
00AB00FC  0000000D
00AB0100  00000004
00AB0104  00495038  Unpackme.00495038
00AB0108  00000017
00AB010C  00000001
00AB0110  00000004
00AB0114  0000000B
00AB0118  00495038  Unpackme.00495038
00AB011C  00000001
00AB0120  00000018
00AB0124  00000004
00AB0128  00000000
00AB012C  00000018
00AB0130  00000004
00AB0134  00000000
00AB0138  00000006
00AB013C  00000004
00AB0140  004950A8  Unpackme.004950A8
00AB0144  00000010
00AB0148  00000001
00AB014C  00000002
00AB0150  00000002
00AB0154  00000000
00AB0158  00000000
00AB015C  00000019
00AB0160  00497014  Unpackme.00497014
00AB0164  0040122C  Unpackme.0040122C
00AB0168  00000019
00AB016C  00497018  Unpackme.00497018
00AB0170  0040123C  Unpackme.0040123C
00AB0174  0000000B
00AB0178  0049763C  Unpackme.0049763C
00AB017C  00000001
00AB0180  00000006
00AB0184  00000001
00AB0188  00000000
00AB018C  0000000B
00AB0190  00497640  Unpackme.00497640
00AB0194  00000001
00AB0198  0000000B
00AB019C  00497644  Unpackme.00497644
00AB01A0  00000004
00AB01A4  0000001B
00AB01A8  00000001
00AB01AC  00040004
00AB01B0  0000000B
00AB01B4  0049702C  Unpackme.0049702C
00AB01B8  00000001
00AB01BC  0000000C
00AB01C0  00404530  Unpackme.00404530
00AB01C4  00000000
00AB01C8  0000001A
00AB01CC  00497034  Unpackme.00497034
00AB01D0  00000000
00AB01D4  0000000C
00AB01D8  004045E8  Unpackme.004045E8
00AB01DC  00000000
00AB01E0  00000018
00AB01E4  00000004
00AB01E8  00000000
00AB01EC  00000014
00AB01F0  00000002
00AB01F4  00000000
00AB01F8  00000018
00AB01FC  00000004
00AB0200  00000000
00AB0204  0000000D
00AB0208  00000001
00AB020C  00496C34  Unpackme.00496C34
00AB0210  0000000A
00AB0214  00000001
00AB0218  00000001
00AB021C  0000000C
00AB0220  00454B68  Unpackme.00454B68
00AB0224  00000000
00AB0228  0000000D
00AB022C  00000003
00AB0230  00496D28  Unpackme.00496D28
00AB0234  0000000D
00AB0238  00000001
00AB023C  00496C34  Unpackme.00496C34
00AB0240  0000000A
00AB0244  00000001
00AB0248  00000001
00AB024C  0000000D
00AB0250  00000004
00AB0254  00493F4C  Unpackme.00493F4C
00AB0258  0000000C
00AB025C  00454B80  Unpackme.00454B80
00AB0260  00000000
00AB0264  0000000D
00AB0268  00000001
00AB026C  00496C34  Unpackme.00496C34
00AB0270  0000000A
00AB0274  00000001
00AB0278  00000001
00AB027C  0000000C
00AB0280  00454C00  Unpackme.00454C00
00AB0284  00000000
00AB0288  0000000C
00AB028C  00404820  Unpackme.00404820
00AB0290  00000000


Some exsamples:
Use these free links to download now:
Code:
00AB0000  00000003 <-- Register Push
00AB0004  00000007 <-- EBP
00AB0008  00000000
------------------------
00AB0024  00000006 <-- mov
00AB0028  00000001 <-- EAX
00AB002C  00494178  Unpackme.00494178 <---
=
mov EAX, 00494178
-----------------------
00AB0060  0000000B <-- mov dword
00AB0064  004950A0  Unpackme.004950A0
00AB0068  00000001 <-- EAX
=
MOV DWORD PTR DS:[4950A0],EAX // hint: This command is not stolen :)
-----------------------
00AB0090  0000000D <-- mov dword
00AB0094  00000001 <-- EAX
00AB0098  00497664  Unpackme.00497664
=
MOV EAX,DWORD PTR DS:[497664] // also not stolen
------------------------
Special Hint: The first call at the OEP is not to see in the stolen section so find this routine /delphi / and you have the first call.

So this stolen bytes for the OEP are not so easy to translate but I have already translate the most.Its like a puzzle.You can all bytes find out at ....
Use these free links to download now:
Code:
0053444C  ADD ESI,0C
0053444F  CMP DWORD PTR DS:[ESI],0         ; Stolen bytes test place!
00534452  JNZ 00533F5F                     ; 00533F5F

Here you go to the routines where the bytes / dwords etc will moved.Just try to figure out whats going on there and you can get the real instructions.Not easy!So this I have also done manually.

VM code exsamples:
Use these free links to download now:
Code:
00401BCF   JMP 00A30014 <-- 1.
00401BD4   PUSH DWORD PTR FS:[EDX]
00401BD7   MOV DWORD PTR FS:[EDX],ESP
00401BDA   JMP 00A30042 <-- 2.
00401BDF   JMP 00A30070 <-- 3.
00401BE4   CMP BYTE PTR DS:[497049],0

Must look so after fixing:
Use these free links to download now:
Code:
00401BCF  PUSH 401C90 <-- 1.
00401BD4  PUSH DWORD PTR FS:[EDX]
00401BD7  MOV DWORD PTR FS:[EDX],ESP
00401BDA  PUSH 4975C8 <-- 2.
00401BDF  CALL 004013A0 <-- 3.
00401BE4  CMP BYTE PTR DS:[497049],0

I found ca. 30 diffrent routines which you have to translate by steping
through the VM code and of course you have to write a script for this so there are over 500 VM jumps!

Exsample:
Use these free links to download now:
Code:
00401BCF   JMP 00A30014
---------------
00A30014   PUSHFD
00A30015   SUB ESP,4
00A30018   MOV DWORD PTR SS:[ESP],A2AF46CC
00A3001F   CALL 00A30000
00A30024   PUSH EAX
00A30025   PUSH DWORD PTR SS:[ESP+8]
00A30029   MOV EAX,DWORD PTR SS:[ESP+8]
00A3002D   MOV DWORD PTR SS:[ESP+C],EAX <-- 00401C90
00A30031   MOV EAX,DWORD PTR SS:[ESP]
00A30034   MOV DWORD PTR SS:[ESP+8],EAX
00A30038   ADD ESP,4
00A3003B   POP EAX
00A3003C   POPFD
00A3003D   JMP 00401BD4 <-- back to main code

If you now come out back to main code then you see 00401C90 was pushed in the stack

0012FFC0   00401C90  Unpackme.00401C90

This VM routine makes just push xxxxxxxx // This was one VM routine of ca. 30!
-------------------------

00401BDF   JMP 00A30070
-------------
00A30070   CALL 00A30075
00A30075   ADD DWORD PTR SS:[ESP],0F
00A30079   PUSH A2AF49FC
00A3007E   CALL 00A30000
00A30083   RETN  <---- to right code routine // look pane window
00A30084   JMP 00401BE4 <-- back to main code

Right routine after ret
004013A0   JMP 00AD0046
004013A5   NOP
004013A6   MOV EAX,EAX

This means that this VM routine is just for the direct calls like Call xxxxxxxx
-----------------


So there are a lot diffrents but itīs possible to fix all back to the right code so I say UN-VMīd Smile So this UnpackMe is harder to unpack as the RLpack 1.21 itself!You have to spend a lot time to translate all correctly and you must write a script or make a tool so you canīt fix the whole VM by hand of course.

Here one exsample of my script for the Push xxxxxxxx instructions.
Use these free links to download now:
Code:
next_6:

find eip , #9C83EC04C70424????????E8????????50FF7424088B4424088944240C8B04248944240883C404589D#

cmp begin, $RESULT
jne next_7

mov ZAHL, eip
add ZAHL, 1D
bp ZAHL
esto
bc
mov ZAHL, eax
mov eip, BS
eval "PUSH {ZAHL}"      // push value
asm eip, $RESULT
inc BS

gci eip, SIZE
mov BYTES, $RESULT
READSTR [eip], BYTES
buf $RESULT
log $RESULT
mov FULL, $RESULT
eval "mov [{eip}], {FULL}"  // important....
wrta sFile, $RESULT
wrta sFile, "\r\n"

jmp start

important.... to log all written bytes to a new file!So the fixing will take some time.If you log all as

mov [address], #bytes#

then you will have this VM patches in one file which you can also use later again.

All in all I can also say that this UnpackMe was not easy to unpack.I would say "LEVEL - HARD".. so itīs just my opinion of course.

greetz
View user's profile Send private message
PostDate Posted:Thu Apr 23, 2009 12:54 pm
Thanks: 0Thanked 44 Times In 29 Posts

Author Message
LCF-AT
Special Member
Special Member


Offline
No Image
Joined: 17 Jan 2008
Posts: 205
Location: Chateau-Saint-Martin

Reply with quote
No Image
So one thing I forgot to tell.So it can be that your unpacked file later crashes without a exception.Reason for this is a TLS problem.
Use these free links to download now:
Code:
00406920  MOV CL,BYTE PTR DS:[497660]
00406926  MOV EAX,DWORD PTR DS:[4950A0]
0040692B  TEST CL,CL
0040692D  JNZ SHORT 00406955
0040692F  MOV EDX,DWORD PTR FS:[2C]  <------- HERE
00406936  MOV EAX,DWORD PTR DS:[EDX+EAX*4]
00406939  RETN


In my unpacked file I have a 0 value.
Use these free links to download now:
Code:
7FFDE02C  00000000  (Pointer to Thread Local Storage)

then the app crashes like with a buffer overflow etc.The real value is in this app a address from the codesection 00532F62 / normaly its a Mem address /

Fix:

7FFDE02C  00532F62  (Pointer to Thread Local Storage)

You can write at the OEP something like this...

PUSHAD
MOV DWORD PTR FS:[2C],532F62
POPAD
jmp OEP

...to fix this problem.


Just as info for you and the others.

greetz
View user's profile Send private message
PostDate Posted:Thu Apr 23, 2009 2:13 pm
Thanks: 0Thanked 44 Times In 29 Posts

Display posts from previous:   
Post new topic   This topic is locked: you cannot edit posts or make replies.    Page 1 of 2 All times are GMT
Goto page 1, 2  Next

Back to top


 
Astalavista Forum Index :: Crack Me's and Challenges :: Unpackme nr.5



Search This Topic:
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by Astalavista.MS Team © 2004
Image Here Image Here Image Here