CrackMe#58 自修改技术的CM

首先看解密后一段代码:

00401115   .  6A 00         push    0
00401117   .  68 78514000   push    00405178                         ;  ASCII “You did it”
0040111C   .  68 38514000   push    00405138                         ;  ASCII “Correct Serial ;)”,LF,LF,”Now write a Tutorial how you solved it :)”
00401121   ?  53            push    ebx
00401122   ?  FFD6          call    esi

这段代码解密前是:

00401115   .  EE            out     dx, al

00401116   .  12EC          adc     ch, ah

00401118   .  6A D5         push    -2B

0040111A   .  52            push    edx

0040111B   .  847A BC       test    byte ptr [edx-44], bh

0040111E   .  43            inc     ebx

0040111F   .  C412          les     edx, fword ptr [edx]

00401121   .  D7            xlat    byte ptr [ebx+al]

00401122   .  ED            in      eax, dx

00401123   .  52            push    edx

00401124   .  821482 14     adc     byte ptr [edx+eax*4], 14

00401128   .  8290 90909090>adc     byte ptr [eax+90909090], -70

新意在于用输入的Key做运算得出的值作为解密钥匙~

还是第一次碰到这种CM  但是比不上之前的XOR EDX EDX 的点睛之笔!

一组Key:

EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEDDDDDDDDDDDDDDDDDDDD

DownMe~

CrackMe#54

今天这个很有意思的CM呵呵~

一看Link Tools 居然是2.多的~好老的程序 或者说是好老的编辑器~

有意思的还在跟踪上~

这个CM用静态DASM分析更好~

省得用OD乱跑把你自己搞乱`

入口是70000000呵呵~有意思~

下面一段CODE:

700012E7   . /EB 01         jmp     short 700012EA
700012E9     |E8            db      E8
700012EA   > \E8 F50A0000   call    <jmp.&KERNEL32.CreateThread>     ; \CreateThread
700012EF   .  90            nop
700012F0   .  EB 01         jmp     short 700012F3
700012F2      E8            db      E8
700012F3   >  68 E8030000   push    3E8                              ; /ControlID = 3E8 (1000.)
700012F8   .  FF35 B8210070 push    dword ptr [700021B8]             ; |hWnd = NULL
700012FE   .  E8 470B0000   call    <jmp.&USER32.GetDlgItem>         ; \GetDlgItem

看到 db E8没~

那是CALL的机器码~

如果只是线性DASM的话准给忽悠了~

还好IDA和OD都是线性DASM和回归DASM结合的…

这个CM的另外一种解法是写入REGEDIT~

位置自己HEX CM找..

一组Key:

ShadowKong

4777-6646-7769

DownMe

CrackMe#46

这个CM的重点在于脱壳  和几个调试器的配合使用~

由于脱壳后代码依然加密 所以修改NAX只能外部16进制工具修改机器码实现~

Serial算法隐藏在按键过程响应中…

一组可用Key:

N/S List:
ShadowKong

2FAF27C1
UnLock:
001182102

KeyGen

CrackMe#42.LV6

今天这个Cm是LV6 难度不错  因为用到了浮点数~~搞了我一天…最后LV6的最后一个算法没有完全逆出来!

/*************************************************

0044C1F6  |.  DB3C24        fstp    tbyte ptr [esp]
0044C1F9  |.  9B            wait
0044C1FA  |.  B8 03000000   mov     eax, 3                           ;  3!
0044C1FF  |.  E8 ECF6FCFF   call    0041B8F0
0044C204  |.  D805 50C34400 fadd    dword ptr [44C350]               ;  512.+5.
0044C20A  |.  D9FA          fsqrt                                    ;  开根号
0044C20C  |.  E8 F365FBFF   call    00402804                         ;  求余弦
0044C211  |.  DB7D B8       fstp    tbyte ptr [ebp-48]
0044C214  |.  9B            wait
0044C215  |.  D905 54C34400 fld     dword ptr [44C354]               ;  1
0044C21B  |.  DC45 E8       fadd    qword ptr [ebp-18]               ;  9+…
0044C21E  |.  D9FA          fsqrt                                    ;   开根号
0044C220  |.  D9E0          fchs                                     ;  正负求反
0044C222  |.  DB6D B8       fld     tbyte ptr [ebp-48]               ;  8经过算法后的值
0044C225  |.  DEC1          faddp   st(1), st                        ;  9+1求反+8经过算法的值
0044C227  |.  DB7D AC       fstp    tbyte ptr [ebp-54]               ;  保存 -3.8963…
0044C22A  |.  9B            wait
0044C22B  |.  D905 58C34400 fld     dword ptr [44C358]               ;  3!
0044C231  |.  DC4D D8       fmul    qword ptr [ebp-28]               ;  3*7
0044C234  |.  D805 54C34400 fadd    dword ptr [44C354]               ;  3*7+1
0044C23A  |.  D9ED          fldln2                                   ;  加载LN2
0044C23C  |.  D9C9          fxch    st(1)                            ;  与LN2交换

继续阅读“CrackMe#42.LV6”

CrackMe#41:the CM too two

这同样有壳  去壳过程没技术含量~

不知道是作者太那啥还是所用的编译器太那啥~看下面一段代码…

004431FC  |> /A1 34584400   /mov     eax, dword ptr [445834]
00443201  |. |8B13          |mov     edx, dword ptr [ebx]
00443203  |. |0FB64410 FF   |movzx   eax, byte ptr [eax+edx-1]       ;  NameList~
00443208  |. |8D55 F8       |lea     edx, dword ptr [ebp-8]
0044320B  |. |E8 4844FCFF   |call    00407658                        ;  %d
00443210  |. |8B55 F8       |mov     edx, dword ptr [ebp-8]
00443213  |. |B8 38584400   |mov     eax, 00445838
00443218  |. |E8 0706FCFF   |call    00403824
0044321D  |. |8B03          |mov     eax, dword ptr [ebx]            ;  [ebx]
0044321F  |. |A3 44584400   |mov     dword ptr [445844], eax
00443224  |. |A1 38584400   |mov     eax, dword ptr [445838]
00443229  |. |E8 5A44FCFF   |call    00407688
0044322E  |. |F72D 44584400 |imul    dword ptr [445844]              ;  115D*[ebx]?
00443234  |. |A3 4C584400   |mov     dword ptr [44584C], eax
00443239  |. |6B03 13       |imul    eax, dword ptr [ebx], 13        ;  eax== [ebx]*0x13
0044323C  |. |8906          |mov     dword ptr [esi], eax
0044323E  |. |8B06          |mov     eax, dword ptr [esi]
00443240  |. |03C0          |add     eax, eax                        ;  eax*2
00443242  |. |83C0 03       |add     eax, 3                          ;  +3
00443245  |. |8906          |mov     dword ptr [esi], eax
00443247  |. |A1 4C584400   |mov     eax, dword ptr [44584C]
0044324C  |. |F72E          |imul    dword ptr [esi]                 ;  115D*~
0044324E  |. |A3 50584400   |mov     dword ptr [445850], eax
00443253  |. |A1 50584400   |mov     eax, dword ptr [445850]
00443258  |. |F72E          |imul    dword ptr [esi]                 ;  *~
0044325A  |. |0105 40584400 |add     dword ptr [445840], eax         ;  0x53++++
00443260  |. |FF03          |inc     dword ptr [ebx]                 ;  ++
00443262  |> |A1 34584400    mov     eax, dword ptr [445834]
00443267  |. |E8 E007FCFF   |call    00403A4C
0044326C  |. |3B03          |cmp     eax, dword ptr [ebx]
0044326E  |.^\7D 8C         \jge     short 004431FC

一点精简 效率性都没有…=.=
一组可用Key:

KeyOne:

13028-31x23e93-z14d20

KeyTwo:

ShadowKong

464411239-Oc3k

DownMe:KeyGen

关于这个CM  作者排除了几个Name  Dasm翻几下就能知道~

还有CM那里限制了只能输入0xF个Name字符~