首页
社区
课程
招聘
英语小精灵4.8简单破解(找出注册码)
发表于: 2005-5-17 11:43 6334

英语小精灵4.8简单破解(找出注册码)

2005-5-17 11:43
6334
软件简介:学英语的东东。我也不知道是怎么就弄到硬盘里面拉。
老规矩:for 兴趣
软件使用:VB6写成
工具:od 1.1

软件有Anti功能,不过我刚开始调试的时候能用od装入。后来就只能附加拉。

启动软件,等到注册窗口出现,用od附加进程,然后下bpx __vbastrcmp,然后输入16位注册码,点注册。然后程序断下,看堆栈第一次为比较’string’,’string’肯定不是忽略。F2后F4
第2次
004676F5    52                push edx
004676F6    50                push eax
004676F7    E8 54450600       call EnglishE.004CBC50
004676FC    8BD0              mov edx,eax
004676FE    8D4D D8           lea ecx,dword ptr ss:[ebp-28]
00467701    FFD7              call edi
00467703    50                push eax
00467704    FF15 68114000     call dword ptr ds:[<&MSVBVM60.__vbaStrCmp>]     ; MSVBVM60.__vbaStrCmp
0046770A    8BF0              mov esi,eax
0046770C    F7DE              neg esi
0046770E    1BF6              sbb esi,esi
00467710    46                inc esi
看看堆栈,2个非常可疑的字串,记下字串的“样子”,一阵F4,然后从新输入一个不同的注册码从新点注册。又断在4676f4,看字串,哈样子和上次不一样,所以可以怀疑是根据注册码生成的东西,向上看。
004676F7    E8 54450600       call EnglishE.004CBC50
004676FC    8BD0              mov edx,eax
004676FE    8D4D D8           lea ecx,dword ptr ss:[ebp-28]
00467701    FFD7              call edi
00467703    50                push eax
分析一下如果call edi没有改变eax,那么算法很有可能在4cbc50里面,证实一下果然如此。
然后跟入call.
004CBC50    55                push ebp
004CBC51    8BEC              mov ebp,esp
004CBC53    83EC 18           sub esp,18
004CBC56    68 565F4000       push <jmp.&MSVBVM60.__vbaExceptHandler>
004CBC5B    64:A1 00000000    mov eax,dword ptr fs:[0]
004CBC61    50                push eax
004CBC62    64:8925 00000000  mov dword ptr fs:[0],esp
现在我们测试一下算法是不是公有。下断4cbc50,取消__VBastrcmp,然后一阵F4,断了4下说明算法公有。
既然共有那么我们分析一下过程的参数,看看堆栈,第一个call来的地方。第二个,我们看一下值,为8,第3个选中回车,我们看到了传递过来的是一个字串,再看看好熟悉,不就是我们输入的注册码的后六位吗?看看下一个参数,值为2。
我们F4继续。断下,再次看参数,第一个依然为8,第二个为12位字串。第三个值为3。这样看完4次call,我们发现,传来字串为6位时,第3个参数为2,12位时第3个参数为3,
然后我们把4次传过来的字串记下来,然后返回看看算出来的值,也就是call下面一段EAX的值。我们发现程序把每2次算出来的值进行比较。但是有趣的是程序确实用同一个算法,也就是说传递的参数里面很有可能有注册码。我们看看。
第一次传递参数:ABCDEF  返回:X5GUBE7AXZWJ1G74
第二次传递参数:964K5ES9E7T7 返回:131D-191B-151E-1416
第三次传递参数:T7A876        返回:FY42DM208TEY362U
第四次传递参数:1234567890AB 返回:4CC3-5520-5386-0480
分析程序可以知道程序比较X5GUBE7AXZWJ1G74于FY42DM208TEY362U
131D-191B-151E-1416与4CC3-5520-5386-0480
那么破解很简单拉。
964K5ES9E7T7+ T7A876去掉重复的2位,也就是T7
序列号:H30269626805011219
注册码为964K5ES9E7T7A876
其实程序算法也简单,但是很长,难得去分析拉。能简便就简便。

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 603
活跃值: (617)
能力值: ( LV12,RANK:660 )
在线值:
发帖
回帖
粉丝
2
哈,真简便~
2005-5-17 12:11
0
雪    币: 413
活跃值: (837)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
3
你测试过吗,这个程序不会那么简单的,
这个程序早期的我写过注册机,不过后来作者比较那个啥……,里面设了不少的东西,对于注册码有二次验证,还有暗桩。

我就没有再玩它,anti是利用findfirst来搞的。
好象是改一个字节就行。

过了很长时间了可能记的不对,见谅 !
2005-5-17 13:30
0
雪    币: 342
活跃值: (323)
能力值: ( LV9,RANK:450 )
在线值:
发帖
回帖
粉丝
4
最初由 nig 发布
你测试过吗,这个程序不会那么简单的,
这个程序早期的我写过注册机,不过后来作者比较那个啥……,里面设了不少的东西,对于注册码有二次验证,还有暗桩。

我就没有再玩它,anti是利用findfirst来搞的。
好象是改一个字节就行。
........

郁闷了。我注册了正在使用。没有修改原程序。只是找出了注册码。
2005-5-17 19:35
0
游客
登录 | 注册 方可回帖
返回