這篇文章運(yùn)用簡單易懂的例子給大家介紹怎樣對python進(jìn)行反編譯,代碼非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
10年積累的網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有南鄭免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
python進(jìn)行反編譯的方法:可以利用第三方庫uncompyle來實(shí)現(xiàn)。該庫可以將代碼反編譯成字節(jié)碼指令和源代碼。例如:【uncompyle_file('test.pyc',fp,showasm=1,showast=0)】。
1、使用第三方庫uncompyle
這個(gè)庫可以將代碼反編譯成字節(jié)碼指令和源代碼
舉例:
from uncompyle2 import * fp = open("code.txt","wb") uncompyle_file('test.pyc',fp,showasm=1,showast=0) fp.close()
2、使用python自帶的dis模塊
>>> import dis >>> def inplace_add(): ... a = 0 ... a += 1 ... >>> def add_and_assign(): ... a = 0 ... a = a + 1 ... >>> dis.dis(inplace_add) 2 0 LOAD_CONST 1 (0) 3 STORE_FAST 0 (a) 3 6 LOAD_FAST 0 (a) 9 LOAD_CONST 2 (1) 12 INPLACE_ADD 13 STORE_FAST 0 (a) 16 LOAD_CONST 0 (None) 19 RETURN_VALUE >>> dis.dis(add_and_assign) 2 0 LOAD_CONST 1 (0) 3 STORE_FAST 0 (a) 3 6 LOAD_FAST 0 (a) 9 LOAD_CONST 2 (1) 12 BINARY_ADD 13 STORE_FAST 0 (a) 16 LOAD_CONST 0 (None) 19 RETURN_VALUE
關(guān)于怎樣對python進(jìn)行反編譯就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。