home *** CD-ROM | disk | FTP | other *** search
/ KeyGen Studio 2002 / KeyGen_Studio_2002.iso / Tutorials / CrackMesCbjNet / f0dder_1_q.txt < prev    next >
Encoding:
Text File  |  2001-09-21  |  2.1 KB  |  52 lines

  1. f0dder's 1st crackme - solution by The+Q
  2. ─────────────────────═══════════════════
  3. This crackme emulates a new, rather simple, CPU. The whole protection
  4. works on a higher level, and the emCPU state is remotly connected to the
  5. values in the (real) CPU registers.
  6.  
  7. Due to lack of time, I'll only mention the weak points in the crackme,
  8. and the steps I took to crack it.
  9. Even throu the emuCPU operates in a higher level, in depens on the real
  10. CPU to call it - this is the emCPU caller procedure, and this level
  11. cross is the first weak point. Simply put, if you breakpoint on the
  12. caller code, just before is jumps to the specific emulation block (emMOV,
  13. emADD or whatever) it would be like you single step the emCPU.
  14. There's of course another level-corss that takes place whenever the emCPU
  15. needs to call a system API (or interrupt). level cross == weak point.
  16. Two last things we need to take notice are the emIP and emFlags.
  17. all emulated CPUs can differ in their registers size, function and emulated
  18. instucrion, but they all must have a couple of state-registers.
  19. These emIP and emFlags are also weak points. Once you figure them out,
  20. you're half way through.
  21.  
  22. Basiclly, i fugured where all the components are located:
  23.  - cpu caller @401000
  24.  - emopcodes stream (emImage) @40301C
  25.  - (edx+8)-> emCPU registers
  26.  - (*(edx+8)+3c) = emIP
  27.  - (*(edx+8)+34) = emFlags
  28.  - set emFlags procedure @401137
  29.  - emInstructions blocks @40119d - @401242
  30.     importent: 1) emJZ instruction @401247
  31.                2) emSystemCall (level cross) @401190
  32.  - setup before emInstruction jump table @403000
  33.  - encrypted text @403200
  34. Now, we are ready to "emDebug" - debug the emulated cpu.
  35. breakpoints:
  36. 1) cpu caller - this is like single step.
  37. 2) emSysCall - this is where the serial is processed
  38. 3) emJZ - to know where to stop tracing.
  39.  
  40. The protection scheme is not complicated, so the emDebug mode was very
  41. little.
  42.  
  43. Anyway, the password for the source archive is: 9558295373
  44.  
  45. you'll find more information there.. it actually has a keygen there (:
  46.  
  47.  
  48. Thanks goes to f0dder, who has worked hard to produce this crackme :)
  49.  
  50. later all,
  51. The+Q
  52.