首页
社区
课程
招聘
[原创]一个有趣的KEYGENME分析
发表于: 2008-8-28 19:45 7917

[原创]一个有趣的KEYGENME分析

2008-8-28 19:45
7917

不知道CM的分析应该发到哪个版块,本来以为是CM和RM的那个版块,可是上面写的是活动版块,不敢乱发,就发到这个我比较熟悉的版块吧,如果发错位置了,就麻烦斑斑大哥代劳转移一下!谢谢!

首先感谢PPT同学给我了这个CM,很有意思,它的具体要求如下:

.text:0040102E ; =============== S U B R O U T I N E =======================================
.text:0040102E
.text:0040102E ; Attributes: bp-based frame
.text:0040102E
.text:0040102E ; INT_PTR __stdcall DialogFunc(HWND, UINT, WPARAM, LPARAM)
.text:0040102E DialogFunc      proc near               ; DATA XREF: start+13o
.text:0040102E
.text:0040102E hDlg            = dword ptr  8
.text:0040102E arg_4           = dword ptr  0Ch
.text:0040102E arg_8           = dword ptr  10h
.text:0040102E
.text:0040102E                 push    ebp
.text:0040102F                 mov     ebp, esp
.text:00401031                 mov     eax, [ebp+arg_4]
.text:00401034                 cmp     eax, 110h
.text:00401039                 jnz     short loc_401089
.text:0040103B                 mov     eax, [ebp+hDlg]
.text:0040103E                 mov     hDlg, eax
.text:00401043                 push    3E9h            ; nIDDlgItem
.text:00401048                 push    [ebp+hDlg]      ; hDlg
.text:0040104B                 call    GetDlgItem
.text:00401050                 mov     hWnd, eax
.text:00401055                 xor     eax, eax
.text:00401057                 push    3EAh            ; nIDDlgItem
.text:0040105C                 push    [ebp+hDlg]      ; hDlg
.text:0040105F                 call    GetDlgItem
.text:00401064                 mov     dword_403210, eax
.text:00401069                 xor     eax, eax
.text:0040106B                 call    sub_40130D
.text:00401070                 push    13h             ; uFlags
.text:00401072                 push    0               ; cy
.text:00401074                 push    0               ; cx
.text:00401076                 push    0               ; Y
.text:00401078                 push    0               ; X
.text:0040107A                 push    0FFFFFFFFh      ; hWndInsertAfter
.text:0040107C                 push    [ebp+hDlg]      ; hWnd
.text:0040107F                 call    SetWindowPos
.text:00401084                 jmp     loc_401271
.text:0040130D ; =============== S U B R O U T I N E =======================================
.text:0040130D
.text:0040130D
.text:0040130D sub_40130D      proc near               ; CODE XREF: DialogFunc+3Dp
.text:0040130D                 push    eax
.text:0040130E                 xor     eax, eax
.text:00401310                 mov     eax, hDlg
.text:00401315                 push    0               ; lParam
.text:00401317                 push    1               ; wParam
.text:00401319                 push    0C5h            ; Msg
.text:0040131E                 push    3E9h            ; nIDDlgItem
.text:00401323                 push    eax             ; hDlg
.text:00401324                 call    SendDlgItemMessageA
.text:00401329                 xor     eax, eax
.text:0040132B                 mov     eax, hDlg
.text:00401330                 push    0               ; lParam
.text:00401332                 push    1               ; wParam
.text:00401334                 push    0C5h            ; Msg
.text:00401339                 push    3EAh            ; nIDDlgItem
.text:0040133E                 push    eax             ; hDlg
.text:0040133F                 call    SendDlgItemMessageA
.text:00401344                 pop     eax
.text:00401345                 retn
.text:00401345 sub_40130D      endp
.text:0040111B ; ---------------------------------------------------------------------------
.text:0040111B
.text:0040111B loc_40111B:                             ; CODE XREF: DialogFunc+A8j
.text:0040111B                                         ; DialogFunc+ADj ...
.text:0040111B                 xor     eax, eax
.text:0040111D                 cmp     ecx, 1
.text:00401120                 jnz     short loc_401130
.text:00401122                 xor     ecx, ecx
.text:00401124                 mov     ecx, offset aCongratulation ; "Congratulations!!!"
.text:00401129                 mov     eax, offset aWellDonePlease ; "Well, done, please, submit your solutio"...
.text:0040112E                 jmp     short loc_40113C
.text:00401130 ; ---------------------------------------------------------------------------
.text:00401130
.text:00401130 loc_401130:                             ; CODE XREF: DialogFunc+F2j
.text:00401130                 xor     ecx, ecx
.text:00401132                 mov     eax, offset aSomethingWrong ; "Something wrong with serial, or name."
.text:00401137                 mov     ecx, offset aError__ ; "Error.."
.text:0040113C
.text:0040113C loc_40113C:                             ; CODE XREF: DialogFunc+100j
.text:0040113C                 push    0               ; uType
.text:0040113E                 push    ecx             ; lpCaption
.text:0040113F                 push    eax             ; lpText
.text:00401140                 push    [ebp+hDlg]      ; hWnd
.text:00401143                 call    MessageBoxA
.text:00401148                 mov     eax, 0
.text:0040114D                 cmp     eax, 0
.text:00401150                 jnz     loc_401255
.text:00401156                 jmp     loc_exit
.text:00401148                 mov     eax, 0
.text:0040114D                 cmp     eax, 0
.text:00401150                 jnz     loc_401255
.text:004010F1                 mov     eax, offset aISaidItIsVeryE ; "=== I said it is very easy, for newbies"...
.text:004010F6                 xor     eax, eax
.text:004010F8                 xor     ecx, ecx
.text:004010FA                 xor     ebx, ebx
.text:004010FC                 xor     edx, edx

.text:004010FE
.text:004010FE loc_4010FE:                             ; CODE XREF: DialogFunc+150j
.text:004010FE                 inc     ebx             ;这里把EBX+1
.text:004010FF                 push    ebx
.text:00401100                 push    hWnd            ; hWnd
.text:00401106                 call    GetWindowTextLengthA
.text:0040110B                 xor     ecx, ecx
.text:0040110D                 mov     ebx, eax
.text:0040110F                 mov     eax, offset Buffer
.text:00401114                 call    sub_Name        ;这里检测我们输入的用户名
.text:00401119                 jmp     short loc_40115B
{
	.text:004012D1 ; =============== S U B R O U T I N E =======================================
	.text:004012D1
	.text:004012D1
	.text:004012D1 sub_Name        proc near               ; CODE XREF: DialogFunc+E6p
	.text:004012D1                                         ; sub_Name +17j
	.text:004012D1                 mov     dl, [eax]
	.text:004012D3                 imul    ecx, 48h
	.text:004012D6                 sub     ecx, edx
	.text:004012D8                 sub     ecx, 6Fh
	.text:004012DB                 mov     edx, ecx
	.text:004012DD                 xor     ecx, 0BACAFh
	.text:004012E3                 inc     eax
	.text:004012E4                 dec     ebx
	.text:004012E5                 cmp     ebx, 0
	.text:004012E8                 jnz     short sub_4012D1
	.text:004012EA                 retn
	.text:004012EA sub_Name        endp
}

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 7
支持
分享
最新回复 (10)
雪    币: 209
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ppt
2
沙发,坐下来好好的学习下
2008-8-28 20:07
0
雪    币: 261
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
检个板凳坐坐!
2008-8-28 23:10
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
IDA比较强悍,学习一下
2008-8-29 07:18
0
雪    币: 423
活跃值: (11)
能力值: ( LV9,RANK:230 )
在线值:
发帖
回帖
粉丝
5
支持!

看得出来,楼主的编程能力很强。整个的破解思路完全是从编程的角度分析的。

从编程转向破解,最大的弱点就是下断点的效率不高,其次是不会逆向,再次是
主次不分,喜欢事无巨细。
2008-8-29 08:56
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
学习
收藏
2008-8-29 11:19
0
雪    币: 257
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
支持!
正在学IDA
2008-8-29 17:10
0
雪    币: 106728
活跃值: (202444)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
8
support.
2008-8-29 17:40
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
谁帮我搞定这个,破解万分感谢.
对高手来说.这个肯定是十分简单的.
71aK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3&6W2N6r3y4G2L8$3I4W2i4K6u0W2j5$3!0E0i4K6u0r3k6r3!0%4L8X3I4G2j5h3c8Q4x3V1k6V1k6h3I4H3K9r3V1J5j5%4y4Q4x3X3g2*7K9i4l9`.
2008-8-31 01:06
0
雪    币: 206
活跃值: (135)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
学习了 又长见识了
2008-9-4 12:18
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
o(∩_∩)o...
学习学习。。
2008-9-5 09:08
0
游客
登录 | 注册 方可回帖
返回