sdrf5678lk 发表于 2011-2-15 19:30:39

一个间单CrackMe的算法分析

本帖最后由 sdrf5678lk 于 2011-2-15 19:48 编辑

00401025|> \8B75 08       MOV ESI,DWORD PTR SS:             ;把用户名放esi中
00401028|.8D7D D8       LEA EDI,DWORD PTR SS:            ;把有效地址传送给EDI
0040102B|.33C9          XOR ECX,ECX                              ;ECX清0为下方计算准备
0040102D|.8B45 0C       MOV EAX,DWORD PTR SS:             ;把用户名位数存到EAX中
00401030|.C60438 00   MOV BYTE PTR DS:,0
00401034|.EB 0A         JMP SHORT CrackMe.00401040
00401036|>0FB60431      /MOVZX EAX,BYTE PTR DS:         ;循环取出用户名中的一个字符
0040103A|.04 01         |ADD AL,1                              ;把字符的转化16进制数加1
0040103C|.880439      |MOV BYTE PTR DS:,AL            ;在把结果存到DS:内存中
0040103F|.41            |INC ECX                                 ;ECX 加1
00401040|>3B4D 0C      CMP ECX,DWORD PTR SS:            ;看是不是已经取完了
00401043|.^ 72 F1         \JB SHORT CrackMe.00401036
00401045|.FF75 10       PUSH DWORD PTR SS:               ; /假注册码
00401048|.8D45 D8       LEA EAX,DWORD PTR SS:            ; |真注册码
0040104B|.50            PUSH EAX                                 ; |String1
0040104C|.E8 47030000   CALL <JMP.&kernel32.lstrcmpA>            ; \比较
00401051|.0BC0          OR EAX,EAX
00401053|.75 15         JNZ SHORT CrackMe.0040106A
00401055|.6A 00         PUSH 0                                 ; /Style = MB_OK|MB_APPLMODAL
00401057|.68 30304000   PUSH CrackMe.00403030                  ; |Title = "提示"
0040105C|.68 46304000   PUSH CrackMe.00403046                  ; |Text = "恭蟎xB2你?xAC\xD7\xA2\xB2岢晒\xA6?xA1"
00401061|.6A 00         PUSH 0                                 ; |hOwner = NULL
00401063|.E8 EE020000   CALL <JMP.&user32.MessageBoxA>         ; \MessageBoxA
00401068|.EB 13         JMP SHORT CrackMe.0040107D
0040106A|>6A 00         PUSH 0                                 ; /Style = MB_OK|MB_APPLMODAL
0040106C|.68 30304000   PUSH CrackMe.00403030                  ; |Title = "提示"
00401071|.68 59304000   PUSH CrackMe.00403059                  ; |Text = "\xD7\xA2\xB2崾?xB0埽\xAC请继续臷xAC羂xA6?xA1"
00401076|.6A 00         PUSH 0                                 ; |hOwner = NULL
00401078|.E8 D9020000   CALL <JMP.&user32.MessageBoxA>         ; \MessageBoxA
0040107D|>33C0          XOR EAX,EAX
0040107F|.5F            POP EDI
00401080|.C9            LEAVE
00401081\.C2 1400       RETN 14
\****************************************************************************************************\

我已经把CrackMe放到了我看雪帐号上了。
http://bbs.pediy.com/showthread.php?t=129350
要想研究的去看上去雪下吧
页: [1]
查看完整版本: 一个间单CrackMe的算法分析