老文章档案 · 2003 年

SeaMoon Pic Hunter 1.2破解手记 (8千字)

破解教程 · 算法分析 · 2003-08-08 · 作者:CoolWolF[BCG] 人气: · 出处:赢政天下整理收藏)

SeaMoon Pic Hunter 1.2破解手记

作 者: CoolWolF[SCD]

破解时间: 2002-4-3

破解工具: Windows 2K环境下 Ollydbg1.05a Registry Shot1.52b

作者主页: http://www.seamoontech.com

难 度: 中低

说 明: 访问并分析您所指定的网站或页面的结构.把其中的图片如GIF和JPEG等快速地下载到本地来.

=================================================================

以下文字纯粹是供各位爱好逆向工程同好参考交流,请尊重软件作者的权益

=================================================================

一个不错的工具,尤其对于我这种抓图狂来说 ^o^ ok,废话不说了,开工!

运行软件,弹出一个注册对话窗,告诉你如果不注册最多只能搜索49张图片.填入用户名CoolWolF,注册码1212,确认后提示要求重新启动软件来验证注册是否成功.那么这个软件应该是把我们输入的注册信息放入注册表或者某个文件,在软件启动的时候来校验是否正确.根据经验应该是注册标的可能性大一些.

用Registry Shot比较后发现,果然是把我们输入的信息放在了\Software\SeaMoonTech\SeaMoon Pic Hunter\V1.2\ 里,分为RegUserName和RegCode两个键值.

用Ollydbg载入PicHunter.exe,按Ctel+N,在"ADVAPI32.RegQueryValueExA"一行回车,出现所有调用这个api的地址,在右键菜单中选择"Set breakpoint on every command",然后关闭这个窗口回到主界面.

按F9运行,程序中断在:

0045EED7 |. 8B35 10C04600 MOV ESI,DWORD PTR DS:[<&ADVAPI32.RegQuer>; ADVAPI32.RegQueryValueExA

0045EEDD |. 51 PUSH ECX ; /pBufSize

0045EEDE |. 8D4D EC LEA ECX,DWORD PTR SS:[EBP-14] ; |

0045EEE1 |. 57 PUSH EDI ; |Buffer

0045EEE2 |. 51 PUSH ECX ; |pValueType

0045EEE3 |. 57 PUSH EDI ; |Reserved

0045EEE4 |. 897D FC MOV DWORD PTR SS:[EBP-4],EDI ; |

0045EEE7 |. FF75 10 PUSH DWORD PTR SS:[EBP+10] ; |ValueName

0045EEEA |. 50 PUSH EAX ; |hKey

0045EEEB |. FFD6 CALL ESI ; \RegQueryValueExA

用F8往下走了一段后发现都是一些对我们没用的东西,于是按F9继续查找.19次之后来到

0045EED7 |. 8B35 10C04600 MOV ESI,DWORD PTR DS:[<&ADVAPI32.RegQuer>; ADVAPI32.RegQueryValueExA

0045EEDD |. 51 PUSH ECX ; /pBufSize

0045EEDE |. 8D4D EC LEA ECX,DWORD PTR SS:[EBP-14] ; |

0045EEE1 |. 57 PUSH EDI ; |Buffer

0045EEE2 |. 51 PUSH ECX ; |pValueType

0045EEE3 |. 57 PUSH EDI ; |Reserved

0045EEE4 |. 897D FC MOV DWORD PTR SS:[EBP-4],EDI ; |

0045EEE7 |. FF75 10 PUSH DWORD PTR SS:[EBP+10] ; |ValueName = "RegCode"

0045EEEA |. 50 PUSH EAX ; |hKey

0045EEEB |. FFD6 CALL ESI ; \RegQueryValueExA

哈哈,找到我们要的地方了!

F8慢慢往下走一直到:

00406605 . C68424 5801000>MOV BYTE PTR SS:[ESP+158],4

这个时候看看右下角的窗口,有我们的注册名和输入的假注册码.继续:

0040660D . 50 PUSH EAX

0040660E . 8D4C24 14 LEA ECX,DWORD PTR SS:[ESP+14]

00406612 . E8 6CEC0300 CALL PicHunte.00445283

00406617 . 8D4C24 24 LEA ECX,DWORD PTR SS:[ESP+24]

0040661B . C68424 5801000>MOV BYTE PTR SS:[ESP+158],2

00406623 . E8 22EB0300 CALL PicHunte.0044514A

00406628 . 51 PUSH ECX

00406629 . 8D4424 14 LEA EAX,DWORD PTR SS:[ESP+14]

0040662D . 8BCC MOV ECX,ESP

0040662F . 896424 1C MOV DWORD PTR SS:[ESP+1C],ESP

00406633 . 50 PUSH EAX

00406634 . E8 86E80300 CALL PicHunte.00444EBF

00406639 . 51 PUSH ECX

0040663A . 8D5424 1C LEA EDX,DWORD PTR SS:[ESP+1C]

0040663E . 8BCC MOV ECX,ESP

00406640 . 896424 28 MOV DWORD PTR SS:[ESP+28],ESP

00406644 . 52 PUSH EDX

00406645 . C68424 6401000>MOV BYTE PTR SS:[ESP+164],5

0040664D . E8 6DE80300 CALL PicHunte.00444EBF //关键Call 进入 (我是凭感觉进去的)

按F7跟进去之后

00406E60 /$ 6A FF PUSH -1

00406E62 |. 68 B0714600 PUSH PicHunte.004671B0

00406E67 |. 64:A1 00000000 MOV EAX,DWORD PTR FS:[0]

00406E6D |. 50 PUSH EAX

00406E6E |. 64:8925 000000>MOV DWORD PTR FS:[0],ESP

00406E75 |. 81EC D0000000 SUB ESP,D0

00406E7B |. C78424 D800000>MOV DWORD PTR SS:[ESP+D8],0

00406E86 |. 8B8424 E000000>MOV EAX,DWORD PTR SS:[ESP+E0]

00406E8D |. 68 B0864800 PUSH PicHunte.004886B0

00406E92 |. 50 PUSH EAX

00406E93 |. E8 AF7F0200 CALL PicHunte.0042EE47

00406E98 |. 83C4 08 ADD ESP,8

00406E9B |. 85C0 TEST EAX,EAX

00406E9D |. 0F84 31010000 JE PicHunte.00406FD4

00406EA3 |. 8B8C24 E400000>MOV ECX,DWORD PTR SS:[ESP+E4]

00406EAA |. 68 B0864800 PUSH PicHunte.004886B0

00406EAF |. 51 PUSH ECX

00406EB0 |. E8 927F0200 CALL PicHunte.0042EE47

00406EB5 |. 83C4 08 ADD ESP,8

00406EB8 |. 85C0 TEST EAX,EAX

00406EBA |. 0F84 14010000 JE PicHunte.00406FD4

00406EC0 |. 8B9424 E000000>MOV EDX,DWORD PTR SS:[ESP+E0]

00406EC7 |. 53 PUSH EBX

00406EC8 |. 56 PUSH ESI

00406EC9 |. B0 6F MOV AL,6F

00406ECB |. 8B72 F8 MOV ESI,DWORD PTR DS:[EDX-8]

00406ECE |. 33C9 XOR ECX,ECX

00406ED0 |. 85F6 TEST ESI,ESI

00406ED2 |. C64424 08 73 MOV BYTE PTR SS:[ESP+8],73

00406ED7 |. C64424 09 65 MOV BYTE PTR SS:[ESP+9],65

00406EDC |. C64424 0A 61 MOV BYTE PTR SS:[ESP+A],61

00406EE1 |. C64424 0B 6D MOV BYTE PTR SS:[ESP+B],6D

00406EE6 |. 884424 0C MOV BYTE PTR SS:[ESP+C],AL

00406EEA |. 884424 0D MOV BYTE PTR SS:[ESP+D],AL

00406EEE |. C64424 0E 6E MOV BYTE PTR SS:[ESP+E],6E

00406EF3 |. C64424 0F 00 MOV BYTE PTR SS:[ESP+F],0

00406EF8 |. 7E 3E JLE SHORT PicHunte.00406F38 //循环计算

00406EFA |. 55 PUSH EBP

00406EFB |. 57 PUSH EDI

00406EFB |. 57 PUSH EDI ; PicHunte.00488938

00406EFC |. 8D7C34 17 LEA EDI,DWORD PTR SS:[ESP+ESI+17]

00406F00 |> 8B8424 F000000>MOV EAX,DWORD PTR SS:[ESP+F0]

00406F07 |. BD 07000000 MOV EBP,7

00406F0C |. 8A1C01 MOV BL,BYTE PTR DS:[ECX+EAX]

00406F0F |. 8BC1 MOV EAX,ECX

00406F11 |. 99 CDQ

00406F12 |. F7FD IDIV EBP

00406F14 |. 0FBEC3 MOVSX EAX,BL

00406F17 |. BB 09000000 MOV EBX,9

00406F1C |. 0FBE5414 10 MOVSX EDX,BYTE PTR SS:[ESP+EDX+10]

00406F21 |. 03D6 ADD EDX,ESI

00406F23 |. 8D144A LEA EDX,DWORD PTR DS:[EDX+ECX*2]

00406F26 |. 03C2 ADD EAX,EDX

00406F28 |. 99 CDQ

00406F29 |. F7FB IDIV EBX

00406F2B |. 80C2 30 ADD DL,30

00406F2E |. 41 INC ECX

00406F2F |. 8817 MOV BYTE PTR DS:[EDI],DL

00406F31 |. 4F DEC EDI

00406F32 |. 3BCE CMP ECX,ESI

00406F34 |.^7C CA JL SHORT PicHunte.00406F00

00406F36 |. 5F POP EDI

00406F37 |. 5D POP EBP

00406F38 |> 8D46 4D LEA EAX,DWORD PTR DS:[ESI+4D]

00406F3B |. B9 09000000 MOV ECX,9

00406F40 |. 99 CDQ

00406F41 |. F7F9 IDIV ECX

00406F43 |. 8B8424 EC00000>MOV EAX,DWORD PTR SS:[ESP+EC]

00406F4A |. 80C2 30 ADD DL,30

00406F4D |. 885434 10 MOV BYTE PTR SS:[ESP+ESI+10],DL

00406F51 |. C64434 11 00 MOV BYTE PTR SS:[ESP+ESI+11],0

00406F56 |. 8D7424 10 LEA ESI,DWORD PTR SS:[ESP+10] //根据注册名生成注册码

00406F5A |> 8A10 MOV DL,BYTE PTR DS:[EAX] //假注册码入EAX

00406F5C |. 8A1E MOV BL,BYTE PTR DS:[ESI] //真注册码入ESI

00406F5E |. 8ACA MOV CL,DL

00406F60 |. 3AD3 CMP DL,BL //比对真假注册码的第一个字节

00406F62 |. 75 1E JNZ SHORT PicHunte.00406F82 //不同就完蛋

00406F64 |. 84C9 TEST CL,CL

......

在00406F5C下断就可以看到保存在ESI中的注册码.不过整个计算过程我还是没太看明白,所以上面也不敢乱作注释,还请各位老大指点.

整理:用户名CoolWolF[SCD] 注册码77245502320260

收工

-------------------------------------------------------------------------------------------------------- (出处:赢政天下整理收藏)

相关文章:

·语音界面2.0算法分析及注册机源码!

·侠客系统修改器1.21破解手记--算法分析

·中文拨号上网计时计费器 V4.12注册算法分析

·ClockWise 3.22e注册码算法分析

·CoolClock V1.02注册算法分析

·Directory Scanner v1.5 注册算法分析

·Disk Chief 1.2 简单注册算法分析

·EffeTech HTTP Sniffer 3.2注册算法分析

·eLib2.01算法分析

·EZ MP3 Recorder 1.15 注册算法分析

相关软件:

→ 特别推荐

→ 热点TOP10

我为人人《《==》》人人为我

关于我们 |

帮助(?)

| 广告服务 |

版权声明 |

商业合作 |

发展历程 |

加盟我们 |

联系我们

Copyright © 1999-2003

winzheng.com All Rights Reserved.

繁体版:由华琦数码技术提供

Powered

by:MeSky.Net

2003-2004 年,宽带刚刚普及,下载站的文章区是许多人学电脑的第一课堂。
🕰 → 🤖 从那时到现在

当年一篇教程能让一台电脑焕然一新;今天的效率工具换成了 AI。 想知道当下最可靠的 AI 模型怎么选?看 赢政指数——我们用了 28 年的选软件严谨,现在用来评测大模型。

档案性质声明:本页为赢政天下(1998-2011)老文章的历史档案复原, 内容反映当年发表时的原貌——包括当年的技术表述、软件版本与观点,部分方法在今天已不适用或不合规,仅作互联网历史记录与研究用途, 不提供任何形式的下载。原始数据经由公共网络存档(Internet Archive)复原。发现问题请联系我们
← 返回老文章档案 · 软件史档案馆 · 赢政天下站史