home *** CD-ROM | disk | FTP | other *** search
/ KeyGen Studio 2002 / KeyGen_Studio_2002.iso / Tutorials / CrackMesCbjNet / nh-skcm.ZIP / nh-skcm.txt < prev   
Encoding:
Text File  |  2001-04-13  |  4.1 KB  |  127 lines

  1. SpaceKeks Crackme tutorial by nh
  2.  
  3. E-Mail: nh666@mail.ru
  4.  
  5. Need Tools: SoftIce v4.xx
  6.  
  7.  
  8. let's start... algo is simple.
  9. let's x1,x2,x3,x4 - numbers in edit-boxes
  10.  
  11. seg001:00444A75            mov    edx, [esi]
  12. seg001:00444A77            imul    edx, [edi]
  13. seg001:00444A7A            mov    ecx, [esi+4]
  14. seg001:00444A7D            imul    ecx, [edi+8]
  15. seg001:00444A81            add    edx, ecx
  16. seg001:00444A83            mov    ds:446834h, edx     ; 9*x1+15*x3
  17. seg001:00444A89            mov    edx, [esi]
  18. seg001:00444A8B            imul    edx, [edi+4]
  19. seg001:00444A8F            mov    ecx, [esi+4]
  20. seg001:00444A92            imul    ecx, [edi+0Ch]
  21. seg001:00444A96            add    edx, ecx
  22. seg001:00444A98            mov    ds:446838h, edx        ; 9*x2+15*x4
  23. seg001:00444A9E            mov    edx, [esi+8]
  24. seg001:00444AA1            imul    edx, [edi]
  25. seg001:00444AA4            mov    ecx, [esi+0Ch]
  26. seg001:00444AA7            imul    ecx, [edi+8]
  27. seg001:00444AAB            add    edx, ecx
  28. seg001:00444AAD            mov    ds:44683Ch, edx        ;-9*x1+6*x3
  29. seg001:00444AB3            mov    edx, [esi+8]
  30. seg001:00444AB6            imul    edx, [edi+4]
  31. seg001:00444ABA            imul    eax, ebx
  32. seg001:00444ABD            add    edx, eax
  33. seg001:00444ABF            mov    ds:446840h, edx        ; -9*x2+6*x4
  34. seg001:00444AC5            movsx    eax, byte ptr ds:445A08h
  35. seg001:00444ACC            add    eax, eax
  36. seg001:00444ACE            mov    [esi], eax
  37. seg001:00444AD0            movsx    eax, byte ptr ds:445A09h
  38. seg001:00444AD7            add    eax, eax
  39. seg001:00444AD9            mov    [esi+4], eax
  40. seg001:00444ADC            movsx    eax, byte ptr ds:445A0Ah
  41. seg001:00444AE3            add    eax, eax
  42. seg001:00444AE5            mov    [esi+8], eax
  43. seg001:00444AE8            movsx    eax, byte ptr ds:445A0Bh
  44. seg001:00444AEF            add    eax, eax
  45. seg001:00444AF1            mov    [esi+0Ch], eax
  46. seg001:00444AF4            mov    eax, [esi]
  47. seg001:00444AF6            imul    dword ptr [edi]
  48. seg001:00444AF8            mov    edx, [esi+4]
  49. seg001:00444AFB            imul    edx, [edi+8]
  50. seg001:00444AFF            add    eax, edx
  51. seg001:00444B01            mov    ds:446854h, eax        ; 4*x1+8*x3
  52. seg001:00444B06            mov    eax, [esi]
  53. seg001:00444B08            imul    dword ptr [edi+4]
  54. seg001:00444B0B            mov    edx, [esi+4]
  55. seg001:00444B0E            imul    edx, [edi+0Ch]
  56. seg001:00444B12            add    eax, edx
  57. seg001:00444B14            mov    ds:446858h, eax        ; 4*x2+8*x4
  58. seg001:00444B19            mov    eax, [esi+8]
  59. seg001:00444B1C            imul    dword ptr [edi]
  60. seg001:00444B1E            mov    edx, [esi+0Ch]
  61. seg001:00444B21            imul    edx, [edi+8]
  62. seg001:00444B25            add    eax, edx
  63. seg001:00444B27            mov    ds:44685Ch, eax        ; -6*x1+10*x3
  64. seg001:00444B2C            mov    eax, [esi+8]
  65. seg001:00444B2F            imul    dword ptr [edi+4]
  66. seg001:00444B32            mov    edx, [esi+0Ch]
  67. seg001:00444B35            imul    edx, [edi+0Ch]
  68. seg001:00444B39            add    eax, edx
  69. seg001:00444B3B            mov    ds:446860h, eax        ; -6*x2+10*x4
  70. seg001:00444B40            movsx    eax, byte ptr ds:445A0Ch
  71. seg001:00444B47            shl    eax, 2
  72. seg001:00444B4A            mov    [esi], eax
  73. seg001:00444B4C            movsx    eax, byte ptr ds:445A0Dh
  74. seg001:00444B53            shl    eax, 2
  75. seg001:00444B56            mov    [esi+4], eax
  76. seg001:00444B59            movsx    eax, byte ptr ds:445A0Eh
  77. seg001:00444B60            shl    eax, 2
  78. seg001:00444B63            mov    [esi+8], eax
  79. seg001:00444B66            movsx    eax, byte ptr ds:445A0Fh
  80. seg001:00444B6D            shl    eax, 2
  81. seg001:00444B70            mov    [esi+0Ch], eax
  82. seg001:00444B73            mov    eax, ds:446834h
  83. seg001:00444B78            sub    eax, ds:446844h
  84. seg001:00444B7E            mov    ds:446874h, eax
  85. seg001:00444B83            mov    eax, ds:446838h
  86. seg001:00444B88            sub    eax, ds:446848h
  87. seg001:00444B8E            mov    ds:446878h, eax
  88. seg001:00444B93            mov    eax, ds:44683Ch
  89. seg001:00444B98            sub    eax, ds:44684Ch
  90. seg001:00444B9E            mov    ds:44687Ch, eax
  91. seg001:00444BA3            mov    eax, ds:446840h
  92. seg001:00444BA8            sub    eax, ds:446850h
  93. seg001:00444BAE            mov    ds:446880h, eax
  94. seg001:00444BB3            mov    eax, ds:446854h
  95. seg001:00444BB8            add    eax, [esi]
  96. seg001:00444BBA            mov    ds:446884h, eax
  97. seg001:00444BBF            mov    eax, ds:446858h
  98. seg001:00444BC4            add    eax, [esi+4]
  99. seg001:00444BC7            mov    ds:446888h, eax
  100. seg001:00444BCC            mov    eax, ds:44685Ch
  101. seg001:00444BD1            add    eax, [esi+8]
  102. seg001:00444BD4            mov    ds:44688Ch, eax
  103. seg001:00444BD9            mov    eax, ds:446860h
  104. seg001:00444BDE            add    eax, [esi+0Ch]
  105. seg001:00444BE1            mov    ds:446890h, eax
  106. seg001:00444BE6            mov    eax, ds:446874h
  107.  
  108. we get 4 linear equations with 4 variables:
  109.  
  110. 9*x1+15*x3-2=4*x1+8x3-16
  111. 9*x2+15*x4=4*x2+8*x4+4
  112. -9*x1+6*x3+4=-6*x1+10*x3
  113. -9*x2+6*x4-6=-6*x1+10*x4+8
  114.  
  115. so, x1=84, x2=-114, x3=-62, x4=82
  116.  
  117. ; comparing
  118.  
  119. seg001:00444BEB            cmp    eax, ds:446884h
  120. seg001:00444BF1            jnz    short bad
  121. [...skipped...]
  122.  
  123. code is 84 -114 -62 82
  124.  
  125.  
  126. /nh
  127.