update:在Mac OS X版的September 10, 2014版(5.0.9-1)中發現安裝目錄中的src.zip已更換位置至WingIDE.app/Contents/Resources/bin/2.7目錄下,其它的Crack操作仍然不變。
實際上只需要把之前的abstract.pyo拿出來,放到新的src.zip中即可,即無需再次發編譯。
這里主要介紹一下,python生成的pyo、pyc字節碼文件的反編譯工具uncompyle2。過程中將結合WingIDE最新版(WingIDE 5.0.2, Jan13,2014)的破解。無技術含量。
WingIDE 5破解 WingIDE 5.0.2破解 WingIDE 5最新版 破解
升級了最新的WingIDE 5.0.2(Jan13,2014),有10天的試用期,於是乎自己動手豐衣足食。
關於WingIde的破解之前論壇上已有兩篇(見后文參考鏈接),其基本的方法就是用unpyclib來反編譯,然后從類似的匯編或Smali一樣的代碼中找到關鍵的跳轉點,然后在反編譯前的abstract.pyo二進制文件中確定該跳轉點,將其修改為相反的跳轉指令即可。其中存在的一個比較麻煩問題就是,在反編譯前的文件中尋找關鍵跳轉指令的對應的位置。
我在着手時,搜了下python生成的字節碼文件的反編譯工具,有unpyclib和uncompyle2,發現uncompyle2可以直接轉化為十分完美的python源碼,並可以將反編譯后的源碼再次生成字節碼文件!
於是乎,破解WingIDE 相對於之前的流程,現在顯得更為簡單了。
step 1 安裝和配置uncompyle2
從github上獲取uncompyle2然后進行配置。
python setup.py install
之后從下載后解壓的文件夾uncompyle2-master/scripts找到可以直接使用的腳本uncompyle2,實際上這就是一個python腳本文件。
step 2 反編譯abstract.pyo
和前面帖子中方法一致,從WingIDE的安裝目錄的bin/2.7/中的src.zip中提取process\abstract.pyo進行反編譯
./uncompyle2 ~/Desktop/abstract.pyo > ~/Desktop/abstract.py
然后打開即可看到整齊的、驚艷的py代碼了!
step 3 修改abstract.py並重新生成pyo
在反編譯的abstract.py中直接搜授權驗證函數_GetTermDaysLeft,看到下圖是不是狂喜呢?完整的注釋。。
順便掃掃代碼,即使沒注釋也很容易看懂。。
所以。。
果斷在函數開始處,添加return -1,並保存。
生成pyo
python -O -m py_compile abstract.py
注:如果不帶選項-O則生成的是pyc文件,-O選項則可以在生成代碼時進行一定的優化。
step 4:大功告成
將生成的新abstract.pyo替換原來src.zip中的\process\abstract.pyo即可。需要注意的是:不能解壓,替換,再打包!需要直接替換zip中相應文件!
最后替換安裝目錄中bin\2.7\下的src.zip即可。
現在打開WingIde就變成了授權永久有效!
並且生成src.zip可以在Mac OS、Linux(Ubuntu)和Windows上均有效(Ubuntu上,wing的安裝目錄位於/usr/lib/wingide5/)。
總的就是想和大家分享下 反編譯的神器 uncompyle2!
寫到最后感覺跟Android的重打包似的:p:
參考:
http://bbs.pediy.com/showthread.php?t=148699
http://bbs.pediy.com/showthread.php?t=138599
https://github.com/wibiti/uncompyle2/
http://www.cnblogs.com/dkblog/archive/2009/04/16/1980757.html