home *** CD-ROM | disk | FTP | other *** search
- Tutorial for c4a Crackme #2
- ---------------------------
-
- Written by Prophecy [tNO '98] on 5th August 1998.
- -------------------------------------------------
-
- [Note if there are things you don't quite understand email me at
- prophecy_@usa.net or catch me in EFNET in #cracking4newbies or #tno.]
-
- Please read my tut for c4a Crackme #1 first! (get it from crackme.home.ml.org
- or proph.home.ml.org in my crack pack). I didn't check if cm2 crashed
- smartcheck, i spose it does. Using similar techniques to cm1 to break into
- the target, the protection is a lamentable improvement on cm1 (and the quick
- trick detailed at the end of cm1 tutorial still works as it still does only
- XORS on your code!).
-
- Another thing is that tracing code is something that comes with experience,
- there is no quick and easy way and if c4a are reading this maybe their next
- crackme (for newbies) should be in C or something less bloated. Anyway, I
- think most ppl would find the tracing harder than the protection :)
-
- Btw, if you are getting stuck trying to find the place where the two XORs
- occur, the lines are 0x402ccf and 0x402e14. First type "addr cm2" , then type
- bpx blahfoo. Softice will break when it reaches that line of code.
-
- Now the guys at c4a decided to get clever and first of all XOR each char
- of your code with the ascii value 0x34. So if you entered '678678678'
-
- 36 37 38 36 37 38 36 37 38
- xor with: 34 34 34 34 34 34 34 34 34
- --------------------------
- 02 03 0c 02 03 0c 02 03 0c
-
- Now i'm not sure why but they also like the number 2000 a lot as it pops up
- in this crackme as well! And is used in the exact same way.
-
- thus : 02 03 0c 02 03 0c 02 03 0c
- xor with: 32 30 30 30 32 30 30 30 32
- --------------------------
- 30 33 3c 32 31 3c 32 33 3e (which is 03<21<23> in ascii)
-
- This time the code is compared with "VeiajeEjbavwij".
-
- Thus: V e i a j ....... (string)
- 56 65 69 61 6a (hex value for ascii)
-
-
- so this time: (char1^0x34)^32=56
-
- (read my tut for c4a crackme #1 for a better explanation of XOR)
-
- let char1^0x34 = a, b = 32, c = 56.
-
- thus a ^ b = c, c ^ b = a, a = c ^ b, thus:
-
- char1^0x34 = 56 ^ 32
-
- now let a = char1, b=34 , c=56^32
-
- so char1=(56^32)^34 = 50 = P
- similarly char2=(65^30)^34 = 61 = a
- char3=(69^30)^34 = 6d = m
- char4=(61^30)^34 = 65 = e
- char5=(6a^32)^34 = 6c = l
-
- etc... i'll leave up to you to figure out the rest... pretty obvious... btw
- i heard she was going to do a nude photoshoot for playboy soon.. mmmmmm must
- get playboy must get playboy :)
-
- Greetz:
- ------
-
- As usual, out to the #cracking4newbies crew. For a full list of my greetz
- see proph.home.ml.org
-
- Conclusion:
- ----------
-
- A trivial protection, however some good tips for newbies in this tut.
-
- -Prophecy.
-
- Veni Vedi Veci.
-