飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 7693|回复: 14

[转贴] 英语小精灵4.8简单破解(找出注册码) 同样适合6.0

[复制链接]

该用户从未签到

发表于 2008-3-18 17:08:03 | 显示全部楼层 |阅读模式
我在 视频区找到 "英语小精灵注册码的寻找过程" 地址:https://www.chinapyg.com/viewthread.php?tid=5456
由于权限太底 ,看不了附件. 所以只有在baidu 中找了。终于在看雪找到了一篇文章" 英语小精灵4.8简单破解(找出注册码)",看后 有了点感觉 拿6.0做实验竟然成功了。和4.8的一样.(之前 我花了2个小时才把软件暴力破解了,晕呀).
英语小精灵6.0   
输入一次16位假码后  用od载入,下bp  __vbaLenBstr 断点 ,按照文章的做法 就能找到注册码了。

连接地址:http://bbs.pediy.com/showthread.php?p=89793
原文:英语小精灵4.8简单破解(找出注册码)
软件简介:学英语的东东。我也不知道是怎么就弄到硬盘里面拉。
老规矩: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
其实程序算法也简单,但是很长,难得去分析拉。能简便就简便。

我的机器有问题,可能点多了一次 重复发贴,有重复的话,请坛主删除.
PYG19周年生日快乐!

该用户从未签到

发表于 2008-3-18 17:58:26 | 显示全部楼层
呵呵 我昨天也是看这个贴子找到了 ELF6.0的码...
没想到今天就有大侠发布新的思路了 感谢支持!!
PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2017-4-21 10:43
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2008-3-18 18:15:05 | 显示全部楼层
    VB程序 ~~ 我都没有什么思路的~!
      只有学习
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    昨天 13:46
  • 签到天数: 448 天

    [LV.9]以坛为家II

    发表于 2008-3-18 20:35:04 | 显示全部楼层
    仅供参考,谢谢分享~!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2022-8-10 19:15
  • 签到天数: 33 天

    [LV.5]常住居民I

    发表于 2008-3-18 22:54:10 | 显示全部楼层
    学习了/:011
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-3-19 15:32:04 | 显示全部楼层
    学习了,vb的程序方法不太多 我觉的
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-3-20 14:23:22 | 显示全部楼层
    xuexilef
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-5-17 10:00:21 | 显示全部楼层
    还是不大会啊!~没视频,第一次搞这个学不来
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2022-12-21 20:04
  • 签到天数: 189 天

    [LV.7]常住居民III

    发表于 2008-5-22 17:35:43 | 显示全部楼层
    VB的程序 方法不对的话 跟得会比较累 呵呵
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-5-22 23:23:16 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表