不知道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直播授课
上传的附件: