首页
社区
课程
招聘
[原创]Wing IDE 5.0 破解之寻找注册码
发表于: 2013-12-6 10:41 90877

[原创]Wing IDE 5.0 破解之寻找注册码

2013-12-6 10:41
90877

小弟混迹于看雪多年,今天首发破文,文笔太差,请大家指正

有前人爆破的经验就是好,前人是爆破abstract.pyo中的代码来实现的,对于完美主义的我们来说,直接弄个注册码多好~~
一.        工具:
1.        uncompyle2
2.        IDA Pro 6.1
3.        WingIDE 5.0本身
二.        工具安装
1.        安装Python2.7
2.        安装WinIDE 5.0
3.        解压uncompyle2,进入解压目录,执行命令python setup.py install
三.        破解过程
1.        直接拷贝C:\Wing IDE 5.0\bin\2.7\src.zip到C:\crack,解压。
2.        cd C:\Python27\Scripts,运行python uncompyle2 --py -o . c:\crack\src,反编译所有的pyo文件。
3.        启动WingIDE 5.0,选择”Obtain or extend a trial license”,获得个10天的试用。
点击help-->Enter License…,弹出的对话框中选择”Install and activate a permant license”,
随便输几个啥,我这里输入”FFFF”,提示如下图:

哈,说的很明白了。
4.        找License ID的规律
用WingIDE打开c:\crack\src\process\wingctl.py,搜索字符串”Invalid license id”,定位到这串代码

        if self.__fRadioActivate.get_active():
            id = self.__fLicenseIDEntry.get_text()
            errs, lic = abstract.[COLOR="Red"]ValidateAndNormalizeLicenseID(id)[/COLOR]
            if len(errs) == 0 and id[0] == 'T':
                errs.append(_('You cannot enter a trial license id here'))
            if len(errs) > 0:
                msg = _('Invalid license id: %s. Please check and correct it.  Errors found were:\n\n%s') % (id, '\n'.join(errs))
                buttons = [dialogs.CButtonSpec(_('_OK'), None, wgtk.STOCK_OK)]
                dlg = messages.CMessageDialog(self.fSingletons, _('Invalid License ID'), msg, [], buttons)
                dlg.RunAsModal(self)
                return True
def ValidateAndNormalizeLicenseID(id):
    errs, id2 = __ValidateAndNormalize(id)
    if len(id2) > 0 and id2[0] not in kLicenseUseCodes:
        errs.append(_('Invalid first character: Should be one of %s') % str(kLicenseUseCodes))
    if len(id2) > 1 and id2[1] != kLicenseProdCode:
        cur_product = 'Wing IDE %s' % config.kProduct
        lic_product = kLicenseProdForCode.get(id2[1], None)
        if lic_product is None:
            lic_product = _('an unknown product')
        else:
            lic_product = 'Wing IDE %s' % config.k_ProductNames[lic_product]
        errs.append(_('Your license is for %s, but you are currently running %s.  Please download the correct product from http://wingware.com/downloads or upgrade your license at https://wingware.com/store/upgrade') % (lic_product, cur_product))
    if len(errs) > 0:
        check_code = id.strip().upper().replace('-', '')
        if len(check_code) == 16:
            looks_like_11 = True
            for c in check_code:
                if c not in '0123456789ABCDEF':
                    looks_like_11 = False

            if looks_like_11:
                errs = [_('You cannot activate using a Wing IDE 1.1 license:  Please use a trial license or upgrade your license at http://wingware.com/store/upgrade')]
    if len(errs) > 0:
        return (errs, None)
    else:
        return ([], id2)
def __ValidateAndNormalize(code):
    """Remove hyphens and extra space/chars in a license id or activation
    request, and validate it as within the realm of possibility.  Returns
    errs, value."""
    errs = []
    code = code.strip().upper()
    code2 = ''
    badchars = ''
    for c in code:
        if c in ('-', ' ', '\t'):
            pass
        elif c not in textutils.BASE30:
            code2 += c
            if badchars.find(c) == -1:
                badchars += c
        else:
            code2 += c

    if len(badchars) > 0:
        errs.append(_('Contains invalid characters: %s') % badchars)
    if len(code2) != 20:
        errs.append(_('Wrong length (should contain 20 non-hyphen characters)'))
    if len(errs) > 0:
        return (errs, code2)
    else:
        return ([], AddHyphens(code2))
kLicenseProdCodes = {config.kProd101: '1',
 config.kProdPersonal: 'L',
 config.kProdProfessional: 'N',
 config.kProdEnterprise: 'E'}
kLicenseProdCode = kLicenseProdCodes[config.kProductCode]
def __PageTwoContinue(self):
        if self.__fRadioDirect.get_active():
            self.__StartActivation()
            return True
        if self.__fRadioManual.get_active():
            act = self.__fManualEntry.get_text()
            errs, act = abstract.ValidateAndNormalizeActivation(act)
            if len(errs) > 0:
                title = _('Invalid License ID')
                msg = _('Invalid activation key: %s. Please check and correct it.  Errors found were:\n\n%s') % (self.__fManualEntry.get_text(), '\n'.join(errs))
                self.__ErrorDlg(title, msg)
                return True
            actbase = os.path.normpath(fileutils.join(config.kUserWingDir, 'license.pending'))
def ValidateAndNormalizeActivation(id):
    errs, id2 = __ValidateAndNormalize(id)
    if id2[:3] != kActivationPrefix:
        errs.append(_("Invalid prefix:  Should be '%s'") % kActivationPrefix)
    if len(errs) > 0:
        return (errs, None)
    else:
        return ([], id2)
self.fLicense['activation'] = act
            err, info =[COLOR="Red"] self.fLicMgr._ValidateLicenseDict(self.fLicense, None)[/COLOR]
            if err != abstract.kLicenseOK:
                msg = _('Invalid activation key: %s. Please check and correct it.') % self.__fManualEntry.get_text()
                errs.append('Current activation -- failed:')
                errs.extend([ '  ' + t for t in self.fLicMgr._StatusToErrString((err, info)) ])
                if len(errs) > 0:
                    msg += _('  Validation errors were:\n\n%s') % '\n'.join(errs)
                title = _('Invalid License ID')
class CObtainLicenseDialog(dialogs.CGenericDialog):
    """Dialog used to obtain a new license"""
    kCharWidth = 60

    def __init__(self, singletons, lic = None):
        self.fSingletons = singletons
        [COLOR="red"]self.fLicMgr = singletons.fLicMgr[/COLOR]
        self.fLicense = lic

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 5
支持
分享
最新回复 (76)
雪    币: 2664
活跃值: (3401)
能力值: ( LV13,RANK:1760 )
在线值:
发帖
回帖
粉丝
2
沙发...   支持...
2013-12-6 11:58
0
雪    币: 271
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
支持,虽然没看懂。
2013-12-6 12:28
0
雪    币: 360
活跃值: (127)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
4
楼主真棒
2013-12-6 12:29
0
雪    币: 3277
活跃值: (1992)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
目测又是一枚精华,请坛主鉴定宝物真伪。
2013-12-6 12:36
0
雪    币: 48
活跃值: (496)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
6
哈哈,5.0内测的时候我就算出来了,没有时间写帖子。
2013-12-6 13:31
0
雪    币: 221
活跃值: (2311)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
能把工具uncompyle2发上来?
2013-12-6 14:20
0
雪    币: 358
活跃值: (45)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
从官网新下载的计算那里已经改了,刚整了下
license id:CN123-12345-12345-12345
key:AXX2MDR8NRCBHD74TVJ1
2013-12-6 14:36
0
雪    币: 228
活跃值: (35)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9
每个机子的Request Code不一样,所以用同一个license id算出来的是不一样的
2013-12-6 15:00
0
雪    币: 228
活跃值: (35)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
10
大哥你google一下嘛
https://github.com/wibiti/uncompyle2/archive/master.zip
2013-12-6 15:06
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
这个分析的太棒了
2013-12-11 22:23
0
雪    币: 621
活跃值: (114)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
好吧,今天刚撞了kali,之前用的wingide4想试试5,谷歌下就找到了楼主的帖子...很好用!!
2013-12-24 11:51
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
请教下:data=[7,123,23,87],这个从哪里得出的呢?不太明白。
2014-1-5 19:47
0
雪    币: 228
活跃值: (35)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
14
[QUOTE=kavern;1252933]请教下:data=[7,123,23,87],这个从哪里得出的呢?不太明白。[/QUOTE]

分析IDA反编译ctutil.pyd后的函数sub_10001020里面的代码可以得到这些
2014-1-7 21:39
0
雪    币: 31
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
可以用,但是不能升级。说是license中不包含升级。
2014-2-10 19:23
0
雪    币: 31
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
[/QUOTE]
License ID 必须有20个字符且每个字符必须是'123456789ABCDEFGHJKLMNPQRTVWXY'中的;
字符必须首字母必须是['T', 'N', 'E', 'C', '1', '3', '6']中的一个,但是我们不会用’T’;
第二个字符必须是['1','L','N','E']中的一个。
那现在随便搞个”CN123-12345-12345-12345
[QUOTE]


这个可以注册,但是在线升级时提示license中没升级的权限。
后来,换了license id ,以EN开头,后面的按照要求随机填。就可以了。
2014-2-10 23:18
0
雪    币: 139
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
楼主辛苦了,补充一下:直接运行楼主的py文件是不行的,要动态把request code修改成本机的就行
2014-2-13 09:57
0
雪    币: 35
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
很佩服楼主!
2014-2-18 09:36
0
雪    币: 41
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
学习了 这分析得太厉害了
2014-2-19 20:06
0
雪    币: 406
活跃值: (164)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
20
py的,感谢分享
2014-2-19 20:27
0
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
分析的非常好,学习了!
2014-2-21 16:01
0
雪    币: 39
活跃值: (244)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
收藏一下
2014-3-5 13:00
0
雪    币: 18
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
ver 5.0.3-1,用楼主的注册机算出来的号提示不对,RequestCode已经改成自己的了。
2014-3-13 15:06
0
雪    币: 35
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
楼主太猛了
2014-3-15 21:05
0
雪    币: 142
活跃值: (310)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
25
厉害。。。
2014-3-26 03:48
0
游客
登录 | 注册 方可回帖
返回
//