Ubuntu下手动破解Wing IDE 4.0.3-1

到现在为止,这个版本的破解在网上还不好找。

参考的这篇文章:http://hi.baidu.com/vessial/blog/item/4a2d2cfdafcd0c0c08244dd9.html

1、首先到官网去下载wingide 4.0.3,我下载的是ubuntu的版本,装好后,第一次打开会弹出一个框叫你注册,如下图,一直点下去后就会获取一个10天试用版的License。(一定要获取一个License,不然下面方法不能用)

2、然后找到文件,bin\2.5\src.zip,linux下面是在/usr/lib/wingide4.0/bin/2.5,解压出里面process目录下的abstract.pyo文件。

3、去  http://pypi.python.org/pypi/unpyclib/0.8.1  下载这个unpyclib python库

4、把刚才解压的abstract.pyo放到unpyclib库目录下面,与application.py一起,然后执行命令进行反汇编:python application.py -d abstract.pyo > abstract.txt

5、打开汇编结果文件abstract.txt,通过查找关键函数_GetTermDaysLeft 找到关键地方:
0000523E     STR: ‘t\x00\x00d\x01\x00\x83\x01\x00|\x01\x00d\x02\x00<x6\x00t\x01\x00D].\x00}\x03\x00|\x01\x00i\x02\x00…’ (2F 03 00 00 74 00 00 64 01 00 83 01…)
………………………………………  中间省略   ………………………………………………..
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          “==”       将6A改成70
000001E2     6F – JUMP_IF_FALSE       -> 000001F9  关键点在,这里为了判断时间是否不受限制。 这个地址在偏移0x5425修改这个字节
000001E5     01 – POP_TOP
000001E6     74 – LOAD_GLOBAL         ‘_’
000001E9     64 – LOAD_CONST          ‘unlimited’
偏移字节是通过上面的0x523E + 0x1E2得到的。直接利用python计算:hex(0x1E2+0X523E)。有可能你计算出来的地址跟这个不一样,没关系。

6、下面通过VIM来更改二进制文件abstract.pyo。输入命令打开:vim -b abstract.pyo  (如果不加-b参数,则将不能修改,以只读模式打开)
然后,在Ex模式下执行下面的命令将其dump

:%!xxd

在二进制编辑状态下,查找地址5420,找到要修改的地方,如图:

看到那个6a了吧,把它改成70。

7、待编辑工作完成后,执行下面的命令即可将其转换回去

:%!xxd -r
最后 :wq保存退出。

8、最后将我们修改好的abstract.pyo文件替换掉wingide文件夹下bin/2.5/src.zip中process目录下的abstract.pyo文件。重启wingide就可以了。