欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

破解WingIDE pro version 4.03

程序员文章站 2022-04-23 10:28:27
对于python程序员来说WingIDE肯定不陌生,强大的功能成为我一直钟爱的python development IDE, 不过这个软件需要注册,之前一直在用wing IDE 3...

对于python程序员来说WingIDE肯定不陌生,强大的功能成为我一直钟爱的python development IDE,

不过这个软件需要注册,之前一直在用wing IDE 3.2版,用的一直是网上的10天试用注册机,今天研究

了一下,破解成无时间限制版了,此方法适用wing IDE的所有版本,把此方法记录下来,希望能够对

大家有用,不过我最终还是希望大家能够购买正版软件,毕竟也不是很贵,不废话了。

 

此过程是暴力破解,不涉及注册算法,有兴趣的可以自己研究一下,到时候可以给我分享一份。

http://wingware.com/pub/wingide/4.0.3/wingide-4.0.3-1.exe下载安装最新的版本,

安装后获取一个10天试用版的License, 打开你的wingide安装目录C:\Program Files (x86)\Wing IDE 4.0\bin\2.5,

注册验证的方法都在这个src.zip包里面,解压出里面process目录下的abstract.pyo文件,我的目的就是crack这个

文件了,abstract.pyo是被python优化编译过的文件,里面都是bytecode,需要进行反汇编来分析它,关键问题

就在这儿了,如何分析它,进而破解它,下面我将慢慢来描述如何进行分析。

首先如何反汇编:

http://pypi.python.org/pypi/unpyclib/0.8.1下载

这个unpyclib python库,解压出来后,进行反汇编,

python application.py -d abstract.pyo > abstract.txt

这儿需要分析这个反汇编结果了abstract.txt, 我们需要关注的函数是_GetTermDaysLeft

如何阅读和分析bytecode的反汇编指令我就不赘叙了,自己查阅些资源进行学习,

      STR: '_GetTermDaysLeft' (10 00 00 00 5F 47 65 74 54 65 72 6D...)

     .............................................

                                         0000015B     64 - LOAD_CONST          0

                                         0000015E     74 - LOAD_GLOBAL         'config'

                                         00000161     5F - STORE_ATTR          '_locale_valid'

                                         00000164     74 - LOAD_GLOBAL         'control'

                                         00000167     69 - LOAD_ATTR           'validate'

                                         0000016A     7C - LOAD_FAST           'lichash'

                                         0000016D     7C - LOAD_FAST           'lic'

                                         00000170     64 - LOAD_CONST          'os'

                                         00000173     19 - BINARY_SUBSCR       

                                         00000174     7C - LOAD_FAST           'lic'

                                         00000177     64 - LOAD_CONST          'version'

                                         0000017A     19 - BINARY_SUBSCR       

                                         0000017B     7C - LOAD_FAST           'lic'

                                         0000017E     64 - LOAD_CONST          'version'

                                         00000181     19 - BINARY_SUBSCR       

                                         00000182     69 - LOAD_ATTR           'find'

                                         00000185     64 - LOAD_CONST          '.'

                                         00000188     83 - CALL_FUNCTION       

                                         0000018B     20 - SLICE+2             

                                         0000018C     7C - LOAD_FAST           'hexact'

                                         0000018F     83 - CALL_FUNCTION       

                                         00000192     7D - STORE_FAST          'valid'

                                         00000195     74 - LOAD_GLOBAL         'config'

                                         00000198     69 - LOAD_ATTR           '_locale_valid'

                                         0000019B     7D - STORE_FAST          'valid'

                                         0000019E     57 - POP_BLOCK           

                                         0000019F     6E - JUMP_FORWARD        -> 000001AF

                                         000001A2     01 - POP_TOP             

                                         000001A3     01 - POP_TOP             

                                         000001A4     01 - POP_TOP             

                                         000001A5     64 - LOAD_CONST          0

                                         000001A8     7D - STORE_FAST          'valid'

                                         000001AB     6E - JUMP_FORWARD        -> 000001AF

                                         000001AE     58 - END_FINALLY         

                                         000001AF     7C - LOAD_FAST           'valid'

                                         000001B2     70 - JUMP_IF_TRUE        -> 000001C9

                                         000001B5     01 - POP_TOP             

                                         000001B6     74 - LOAD_GLOBAL         'kLicenseCorrupt'

                                         000001B9     74 - LOAD_GLOBAL         '_'

                                         000001BC     64 - LOAD_CONST          'Invalid license activation'

                                         000001BF     83 - CALL_FUNCTION       

                                         000001C2     66 - BUILD_TUPLE         

                                         000001C5     53 - RETURN_VALUE        

                                         000001C6     6E - JUMP_FORWARD        -> 000001CA

                                         000001C9     01 - POP_TOP             

                                         000001CA     7C - LOAD_FAST           'self'

                                         000001CD     69 - LOAD_ATTR           '_GetTermDaysLeft'

                                         000001D0     7C - LOAD_FAST           'lic'

                                         000001D3     83 - CALL_FUNCTION       

                                         000001D6     7D - STORE_FAST          'daysleft'

                                         000001D9     7C - LOAD_FAST           'daysleft'

                                         000001DC     64 - LOAD_CONST          -1

                                         000001DF     6A - COMPARE_OP          "=="

                                         000001E2     6F - JUMP_IF_FALSE       -> 000001F9  关键点在,修改 6F成70就好了,这里为了判断时间是否不受限制。 这个地址在偏移0x5425修改这个字节

                                         000001E5     01 - POP_TOP             

                                         000001E6     74 - LOAD_GLOBAL         '_'

                                         000001E9     64 - LOAD_CONST          'unlimited'

                                          000001EC     83 - CALL_FUNCTION       

好了,把abstract.pyo再复制到这个src.zip文件中去,用7zip最方便了,先用7zip把src.zip里面process里面的abstract.pyo删除,然后把这个

修改好的abstract.pyo添加进去,放到原来那个C:\Program Files (x86)\Wing IDE 4.0\bin\2.5目录,重启wingide,再去看一下你的Help->About

 里面的License,上面的时间已经是unlimited了,可以不受时间限制使用了。

 破解WingIDE pro version 4.03

我把src.zip上传到http://skyme.tk上面,在下面的地址下载,替换原来安装目录

C:\Program Files (x86)\Wing IDE 4.0\bin\2.5下的src.zip即可。

http://skyme.tk/tools/src.zip

 

enjoy it:-)
摘自 http://hi.baidu.com/vessial/blog/item/4a2d2cfdafcd0c0c08244dd9.html