- UID
- 59926
注册时间2009-3-1
阅读权限20
最后登录1970-1-1
以武会友
TA的每日心情 | 擦汗 2019-5-7 09:43 |
---|
签到天数: 28 天 [LV.4]偶尔看看III
|
本帖最后由 jzyjd 于 2017-4-23 19:01 编辑
PDF to Word Converter 3.1 算法分析
下载地址:http://www.verypdf.com/app/pdf-to-word/index.html
国外的软件,呵呵。
查壳,无壳。
运行后,会提示注册,进入试用。
然后再次进行注册。
点注册提示:Your registration key is wrong……
查找字串。来到:
00406716 > \A1 343D7F00 mov eax,dword ptr ds:[0x7F3D34]
0040671B . 894424 08 mov dword ptr ss:[esp+0x8],eax
0040671F . 68 402A5E00 push pdf2word.005E2A40 ; Your registration key is wrong, please double check following issues:\n
00406724 . 8D4C24 0C lea ecx,dword ptr ss:[esp+0xC]
00406728 . C78424 E40000>mov dword ptr ss:[esp+0xE4],0x0
00406733 . E8 A4F61900 call pdf2word.005A5DDC
00406738 . 68 E4295E00 push pdf2word.005E29E4 ; 1. Please copy and paste your registration key into PDF2Word to avoid spelling mistake.\n
往上翻发现是004066D0 . /74 44 je short pdf2word.00406716 ; 跳过来的。
再往上翻,来到关键CALL
004066C6 . E8 95F8FFFF call pdf2word.00405F60 ; 关键CALL
重新进行注册。分析代码
00405F76 |. 83F9 14 cmp ecx,0x14 ; 检测注册码位数 20位
00405F79 |. 74 07 je short pdf2word.00405F82 ; 位数不对,直接跳走返回。
改成20位假码:12345678901234567890.继续注册
算法分析:
00405F76 |. 83F9 14 cmp ecx,0x14 ; 检测注册码位数 20位
00405F79 |. 74 07 je short pdf2word.00405F82 ; 位数对继续,位数不对,返回。
00405F7B |. 5F pop edi ; pdf2word.007F0033
00405F7C |. 5E pop esi ; pdf2word.007F0033
00405F7D |. 5B pop ebx ; pdf2word.007F0033
00405F7E |. 83C4 18 add esp,0x18
00405F81 |. C3 retn
00405F82 |> 8A06 mov al,byte ptr ds:[esi] ; 取假码第一位
00405F84 |. 8A4E 01 mov cl,byte ptr ds:[esi+0x1] ; 取假码第二位
00405F87 |. 8D5424 0C lea edx,dword ptr ss:[esp+0xC]
00405F8B |. 32DB xor bl,bl
00405F8D |. 52 push edx
00405F8E |. 884424 1C mov byte ptr ss:[esp+0x1C],al
00405F92 |. 885C24 1D mov byte ptr ss:[esp+0x1D],bl
00405F96 |. 884C24 10 mov byte ptr ss:[esp+0x10],cl
00405F9A |. 885C24 11 mov byte ptr ss:[esp+0x11],bl
00405F9E |. E8 B4A61800 call pdf2word.00590657
00405FA3 |. 8BF8 mov edi,eax
00405FA5 |. 8D4424 1C lea eax,dword ptr ss:[esp+0x1C]
00405FA9 |. 50 push eax
00405FAA |. E8 A8A61800 call pdf2word.00590657
00405FAF |. 03F8 add edi,eax ; 第一位加第二位
00405FB1 |. 83C4 08 add esp,0x8
00405FB4 |. 83FF 0B cmp edi,0xB ; 和与0B即11进行比较
00405FB7 |. 74 09 je short pdf2word.00405FC2 ; 相等继续,不相等返回。
00405FB9 |. 5F pop edi ; pdf2word.007F0033
00405FBA |. 5E pop esi ; pdf2word.007F0033
00405FBB |. 33C0 xor eax,eax
00405FBD |. 5B pop ebx ; pdf2word.007F0033
00405FBE |. 83C4 18 add esp,0x18
00405FC1 |. C3 retn
00405FC2 |> 8A4E 12 mov cl,byte ptr ds:[esi+0x12] ; 取19位
00405FC5 |. 8A56 13 mov dl,byte ptr ds:[esi+0x13] ; 取最后一位 20位
00405FC8 |. 8D4424 0C lea eax,dword ptr ss:[esp+0xC]
00405FCC |. 884C24 18 mov byte ptr ss:[esp+0x18],cl
00405FD0 |. 50 push eax
00405FD1 |. 885C24 1D mov byte ptr ss:[esp+0x1D],bl
00405FD5 |. 885424 10 mov byte ptr ss:[esp+0x10],dl
00405FD9 |. 885C24 11 mov byte ptr ss:[esp+0x11],bl
00405FDD |. E8 75A61800 call pdf2word.00590657
00405FE2 |. 8D4C24 1C lea ecx,dword ptr ss:[esp+0x1C]
00405FE6 |. 8BF8 mov edi,eax
00405FE8 |. 51 push ecx
00405FE9 |. E8 69A61800 call pdf2word.00590657
00405FEE |. 03F8 add edi,eax ; 19位+20位
00405FF0 |. 83C4 08 add esp,0x8
00405FF3 |. 83FF 0D cmp edi,0xD ; 要等于0D,即13
00405FF6 |. 74 09 je short pdf2word.00406001 ; 相等继续,不相等返回
00405FF8 |. 5F pop edi ; pdf2word.007F0033
00405FF9 |. 5E pop esi ; pdf2word.007F0033
00405FFA |. 33C0 xor eax,eax
00405FFC |. 5B pop ebx ; pdf2word.007F0033
00405FFD |. 83C4 18 add esp,0x18
00406000 |. C3 retn
00406001 |> 8A56 05 mov dl,byte ptr ds:[esi+0x5] ; 第5位(如果从0开数就是第6位,呵呵)
00406004 |. 8A46 0D mov al,byte ptr ds:[esi+0xD] ; 第13位(如果从0开数就是第14位,反正我喜欢从1开始呵呵)
00406007 |. 8D4C24 0C lea ecx,dword ptr ss:[esp+0xC]
0040600B |. 885424 18 mov byte ptr ss:[esp+0x18],dl
0040600F |. 51 push ecx
00406010 |. 885C24 1D mov byte ptr ss:[esp+0x1D],bl
00406014 |. 884424 10 mov byte ptr ss:[esp+0x10],al
00406018 |. 885C24 11 mov byte ptr ss:[esp+0x11],bl
0040601C |. E8 36A61800 call pdf2word.00590657
00406021 |. 8D5424 1C lea edx,dword ptr ss:[esp+0x1C]
00406025 |. 8BF8 mov edi,eax
00406027 |. 52 push edx
00406028 |. E8 2AA61800 call pdf2word.00590657
0040602D |. 03F8 add edi,eax ; 第5位与第13位加起来
0040602F |. 83C4 08 add esp,0x8
00406032 |. 83FF 09 cmp edi,0x9 ; 和必须等于9
00406035 |. 74 09 je short pdf2word.00406040 ; 相等继续,不相等返回。
00406037 |. 5F pop edi ; pdf2word.007F0033
00406038 |. 5E pop esi ; pdf2word.007F0033
00406039 |. 33C0 xor eax,eax
0040603B |. 5B pop ebx ; pdf2word.007F0033
0040603C |. 83C4 18 add esp,0x18
0040603F |. C3 retn
00406040 |> 807E 0C 56 cmp byte ptr ds:[esi+0xC],0x56 ; 第十二位与V比较
00406044 |. 74 09 je short pdf2word.0040604F ; 不是V,就返回。
00406046 |. 5F pop edi ; pdf2word.007F0033
00406047 |. 5E pop esi ; pdf2word.007F0033
00406048 |. 33C0 xor eax,eax
0040604A |. 5B pop ebx ; pdf2word.007F0033
0040604B |. 83C4 18 add esp,0x18
0040604E |. C3 retn
0040604F |> 807E 0E 33 cmp byte ptr ds:[esi+0xE],0x33 ; 第十四位必须是3
00406053 |. 74 09 je short pdf2word.0040605E ; 相等继续,不相等返回。
00406055 |. 5F pop edi ; pdf2word.007F0033
00406056 |. 5E pop esi ; pdf2word.007F0033
00406057 |. 33C0 xor eax,eax
00406059 |. 5B pop ebx ; pdf2word.007F0033
0040605A |. 83C4 18 add esp,0x18
0040605D |. C3 retn
0040605E |> 8A4E 0F mov cl,byte ptr ds:[esi+0xF] ; 取第十五位
00406061 |. 33C0 xor eax,eax
00406063 |. 80F9 32 cmp cl,0x32 ; 必须是2
00406066 |. 5F pop edi ; pdf2word.007F0033
00406067 |. 5E pop esi ; pdf2word.007F0033
00406068 |. 5B pop ebx ; pdf2word.007F0033
00406069 |. 0F94C0 sete al ; 条件为真al置1
0040606C |. 83C4 18 add esp,0x18
0040606F \. C3 retn ; 返回。
返回后:
004066C6 . E8 95F8FFFF call pdf2word.00405F60 ; 关键CALL
004066CB . 83C4 04 add esp,0x4
004066CE . 85C0 test eax,eax
004066D0 . 74 44 je short pdf2word.00406716 ; 跳向注册码错 关键跳
关键跳不再跳,注册成功。
总结一下:
这软件太他妈的给力了,简直就是为我们初学者量身定做的,初学者练习简单算法分析这软件我给全5分,只能说作者为我们初学者学习算法编写的最费心的crack me了。再次感谢作者。
另外,这个软件注册码与注册名没有半毛钱的关系(注册名不参与计算),这也是与国内大多数软件不同之处。
给一组注册成功的码:看图片
写在最后,大牛们多给加分,挣PYG币不容易,我还要参加今年的学习。没钱。
|
-
-
评分
-
查看全部评分
|