本人也就学了7天,实在是不够菜的,现在好不容易跟踪出了个序列号,高兴下
也希望大虾们给指点下!
软件名“算命半仙” 下载地址http://www.duote.com/soft/689.html
首先,查一下壳发现是ASPack 2.12 -> Alexey Solodovnikov 脱掉它!我这里就不脱它了
然后运行软件,先输入假码:123456 注册码 987654321
晕,竟然没有提示,呵呵,不怕!没有错误的提示,难道还没有正确的提示嘛!我们用OllyICE载入,然后查找ASCII码!找啊找啊找,终于找到了“注册成功!”呵呵,双击它!这是我们来到了这里:
0055BCC3 |. 3C 01 cmp al, 1
0055BCC5 |. 75 2F jnz short 0055BCF6
0055BCC7 |. 8D55 C4 lea edx, dword ptr [ebp-3C]
0055BCCA |. A1 A07B5700 mov eax, dword ptr [577BA0]
0055BCCF |. 8B00 mov eax, dword ptr [eax]
0055BCD1 |. E8 AAD9F0FF call 00469680
0055BCD6 |. 8B45 C4 mov eax, dword ptr [ebp-3C]
0055BCD9 |. 8D55 C8 lea edx, dword ptr [ebp-38]
0055BCDC |. E8 53DDEAFF call 00409A34
0055BCE1 |. 8D45 C8 lea eax, dword ptr [ebp-38]
0055BCE4 |. BA F8BD5500 mov edx, 0055BDF8 ; data.dat
0055BCE9 |. E8 568FEAFF call 00404C44
0055BCEE |. 8B45 C8 mov eax, dword ptr [ebp-38]
0055BCF1 |. E8 A6DCEAFF call 0040999C
0055BCF6 |> B8 0CBE5500 mov eax, 0055BE0C ; 注册成功!
我们顺着向上找找看啊!我们在0055BB38这里下个断点!(因为分析算法一般是从这里开始的)!然后Crtl+F2返回,接着F9运行!输入假码:123456 注册码 987654321 然后F8单步
0055BB38 /. 55 push ebp
0055BB39 |. 8BEC mov ebp, esp
0055BB3B |. B9 07000000 mov ecx, 7
0055BB40 |> 6A 00 /push 0
0055BB42 |. 6A 00 |push 0
0055BB44 |. 49 |dec ecx
0055BB45 |.^ 75 F9 \jnz short 0055BB40
0055BB47 |. 51 push ecx
0055BB48 |. 53 push ebx
0055BB49 |. 56 push esi
0055BB4A |. 57 push edi
0055BB4B |. 8BD8 mov ebx, eax eax的值赋值到ebx中
0055BB4D |. 33C0 xor eax, eax eax清零
0055BB4F |. 55 push ebp 将ebp压入堆栈!ebp=0012f6a4
0055BB50 |. 68 78BD5500 push 0055BD78
0055BB55 |. 64:FF30 push dword ptr fs:[eax]
0055BB58 |. 64:8920 mov dword ptr fs:[eax], esp fs:[00000000]=[7FFDD000]=0012F6D0
0055BB5B |. B2 01 mov dl, 1
0055BB5D |. A1 DC974A00 mov eax, dword ptr [4A97DC]
0055BB62 |. E8 75DDF4FF call 004A98DC
0055BB67 |. 8BF0 mov esi, eax
0055BB69 |. BA 02000080 mov edx, 80000002
0055BB6E |. 8BC6 mov eax, esi
0055BB70 |. E8 07DEF4FF call 004A997C
0055BB75 |. B1 01 mov cl, 1
0055BB77 |. BA 90BD5500 mov edx, 0055BD90 ; software\microsoft\yhds
0055BB7C |. 8BC6 mov eax, esi
0055BB7E |. E8 5DDEF4FF call 004A99E0
0055BB83 |. 8D55 F8 lea edx, dword ptr [ebp-8]
0055BB86 |. 8BBB F8020000 mov edi, dword ptr [ebx+2F8]
0055BB8C |. 8BC7 mov eax, edi
0055BB8E |. E8 15C3EEFF call 00447EA8
0055BB93 |. 8B45 F8 mov eax, dword ptr [ebp-8] 关键的来了啊:-),用户名123456赋值到eax中。
0055BB96 |. 8D55 FC lea edx, dword ptr [ebp-4] 把word ptr [ebp-4]先放到 edx中
0055BB99 |. E8 1ED7EAFF call 004092BC
0055BB9E |. 8B55 FC mov edx, dword ptr [ebp-4] 将"123456"赋值到 edx中。
0055BBA1 |. 8BC7 mov eax, edi
0055BBA3 |. E8 30C3EEFF call 00447ED8
0055BBA8 |. 8D55 F0 lea edx, dword ptr [ebp-10]
0055BBAB |. 8BBB 00030000 mov edi, dword ptr [ebx+300]
0055BBB1 |. 8BC7 mov eax, edi
0055BBB3 |. E8 F0C2EEFF call 00447EA8
0055BBB8 |. 8B45 F0 mov eax, dword ptr [ebp-10] 假注册码“987654321”出来了,看看放在哪里哈。哦,放在了eax中哦!
0055BBBB |. 8D55 F4 lea edx, dword ptr [ebp-C]
0055BBBE |. E8 F9D6EAFF call 004092BC
0055BBC3 |. 8B55 F4 mov edx, dword ptr [ebp-C]
0055BBC6 |. 8BC7 mov eax, edi
0055BBC8 |. E8 0BC3EEFF call 00447ED8
0055BBCD |. 8D55 EC lea edx, dword ptr [ebp-14]
0055BBD0 |. 8B83 00030000 mov eax, dword ptr [ebx+300]
0055BBD6 |. E8 CDC2EEFF call 00447EA8
0055BBDB |. 837D EC 00 cmp dword ptr [ebp-14], 0
0055BBDF |. 74 14 je short 0055BBF5
0055BBE1 |. 8D55 E8 lea edx, dword ptr [ebp-18]
0055BBE4 |. 8B83 F8020000 mov eax, dword ptr [ebx+2F8]
0055BBEA |. E8 B9C2EEFF call 00447EA8
0055BBEF |. 837D E8 00 cmp dword ptr [ebp-18], 0 与零做比较,用户名不能为空!
0055BBF3 |. /75 0F jnz short 0055BC04
0055BBF5 |> |B8 B0BD5500 mov eax, 0055BDB0 ; 注册信息没有填写齐全
0055BBFA |. |E8 3550EEFF call 00440C34
0055BBFF |. |E9 1F010000 jmp 0055BD23
0055BC04 |> \8D55 E4 lea edx, dword ptr [ebp-1C]
0055BC07 |. 8B83 00030000 mov eax, dword ptr [ebx+300]
0055BC0D |. E8 96C2EEFF call 00447EA8
0055BC12 |. 8B45 E4 mov eax, dword ptr [ebp-1C]
0055BC15 |. 50 push eax 将假的注册码“987654321”压入堆栈,传说中的关键比较就要出来了啊~~哈哈
0055BC16 |. 8D55 DC lea edx, dword ptr [ebp-24]
0055BC19 |. 8B83 F8020000 mov eax, dword ptr [ebx+2F8]
0055BC1F |. E8 84C2EEFF call 00447EA8
0055BC24 |. 8B45 DC mov eax, dword ptr [ebp-24]
0055BC27 |. E8 44DAEAFF call 00409670
0055BC2C |. 8BF8 mov edi, eax
0055BC2E |. 8D55 D8 lea edx, dword ptr [ebp-28]
0055BC31 |. 8B83 F8020000 mov eax, dword ptr [ebx+2F8]
0055BC37 |. E8 6CC2EEFF call 00447EA8
0055BC3C |. 8B45 D8 mov eax, dword ptr [ebp-28]
0055BC3F |. E8 2CDAEAFF call 00409670
0055BC44 |. 0FAFF8 imul edi, eax
0055BC47 |. 8BC7 mov eax, edi
0055BC49 |. 8D55 E0 lea edx, dword ptr [ebp-20]
0055BC4C |. E8 F3FDFFFF call 0055BA44
0055BC51 |. 8B55 E0 mov edx, dword ptr [ebp-20] 出现了一串字符串“235708158556”很可疑的!
0055BC54 |. 58 pop eax
0055BC55 |. E8 2691EAFF call 00404D80 这里进行比较,相等则软件已经注册!(关键比较出现啦)
0055BC5A |. 0F85 A9000000 jnz 0055BD09 如果爆破的话 jnz该成jz或nop就行!
0055BC60 |. A1 807D5700 mov eax, dword ptr [577D80]
0055BC65 |. 8B00 mov eax, dword ptr [eax]
0055BC67 |. 8B80 2C040000 mov eax, dword ptr [eax+42C]
0055BC6D |. BA D0BD5500 mov edx, 0055BDD0 ; 本软件已注册
…………………………………………………………………………………………………………………
呵呵,本人菜的可以,算法是写不出来了,高手指点下,我的分析就到这里了!
一组可用的确认码:1234546
注册码:235708158556
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)