使用uncompyle2直接反編譯python字節碼文件pyo/pyc

  使用uncompyle2直接反編譯python字節碼文件pyo/pycphp

update:在Mac OS X版的September 10, 2014版(5.0.9-1)中發現安裝目錄中的src.zip已更換位置至WingIDE.app/Contents/Resources/bin/2.7目錄下,其它的Crack操做仍然不變。html

實際上只須要把以前的abstract.pyo拿出來,放到新的src.zip中便可,即無需再次發編譯。python


 

這裏主要介紹一下,python生成的pyo、pyc字節碼文件的反編譯工具uncompyle2。過程當中將結合WingIDE最新版(WingIDE 5.0.2, Jan13,2014)的破解。無技術含量。git

WingIDE 5破解 WingIDE 5.0.2破解 WingIDE 5最新版 破解github

升級了最新的WingIDE 5.0.2(Jan13,2014),有10天的試用期,因而乎本身動手豐衣足食。
關於WingIde的破解以前論壇上已有兩篇(見後文參考連接),其基本的方法就是用unpyclib來反編譯,而後從相似的彙編或Smali同樣的代碼中找到關鍵的跳轉點,而後在反編譯前的abstract.pyo二進制文件中肯定該跳轉點,將其修改成相反的跳轉指令便可。其中存在的一個比較麻煩問題就是,在反編譯前的文件中尋找關鍵跳轉指令的對應的位置。app

我在着手時,搜了下python生成的字節碼文件的反編譯工具,有unpyclib和uncompyle2,發現uncompyle2能夠直接轉化爲十分完美的python源碼,並能夠將反編譯後的源碼再次生成字節碼文件!
因而乎,破解WingIDE 相對於以前的流程,如今顯得更爲簡單了。ide

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進行反編譯post

./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=148699http://bbs.pediy.com/showthread.php?t=138599https://github.com/wibiti/uncompyle2/http://www.cnblogs.com/dkblog/archive/2009/04/16/1980757.html

相關文章
相關標籤/搜索