導航:首頁 > 編程語言 > python防反編譯

python防反編譯

發布時間:2023-06-10 19:56:07

python-uncompyle反編譯

python的編譯後文尺蔽件pyc,可以將pyc文件反編譯為py文件。

相應的工具: uncompyle

github地址: https://github.com/rocky/python-uncompyle6/

安裝: pip install uncompyle

安裝好後,注碰困衫意執行的命令為 uncompyle6 ,而不是 uncompyle 。

查看幫助命令:笑腔 uncompyle6 --help 、 uncompyle6 -h

反編譯單個文件 : uncompyle6 foo.pyc > foo.py

反編譯多個文件: uncompyle6 -o . *.pyc

例子:

② 用Python2.7.1寫的小程序可以反編譯得到它的源代碼嗎

python是不能反編譯的,因為得到了一個python的程序,就是得到了它的源代碼。
python是解釋性語言,沒有編譯這一步驟,和c語言和java語言是不一樣的

③ pyinstaller打包後的python的exe軟體怎麼加殼加密

可以使用Virbox Protector工具進行加殼。主要有以下功能優點。加殼後的軟體可以達到很高強度的安全強度。搭渣
1、防反知模悄編譯
2、防注入
3、防調試
4、一鍵加密,無需編程
5、碎片化代碼
6、虛擬化代碼
7、自動代碼移植
8、代碼混淆

加密流程:登錄雲平台帳號---申請轉正---下載定製SDK---加殼
注冊帳號後,建議您提交轉正,碼游轉正後深思會提供定製化的SDK,確保每個開發商授權都是唯一的,這可以保護軟體的安全性。

④ python源碼編程成pyc後,怎麼防止反編譯

無法防止反編譯,但可以混淆,讓你即使反編譯了,也看不懂語法
下面一段源碼

sd=1

defseed(s):
globalsd
sd=s

defrandn(n):
globalsd
sd=(sd*1103515245+12345)&0x7fffffff
returnsd%n

defmain():
seed(11)
foriinxrange(4):
printrandn(313)

if__name__=='__main__':
main()

混淆後

oo000=1
if9-9:Ii.o0o00Oo0O-iI11I1II1I1I
defoooo(s):
globaloo000
oo000=s
if11-11:ii1I-ooO0OO000o
defii11i(n):
globaloo000
oo000=(oo000*1103515245+12345)&0x7fffffff
returnoo000%n
if66-66:iIiI*iIiiiI1IiI1I1*o0OoOoOO00
defI11i():
oooo(11)
forO0Oinxrange(4):
printii11i(313)
if78-78:i11ii11iIi11i.oOoO0oo0OOOo+IiiI/Iii1ii1II11i
if__name__=='__main__':
I11i()#

⑤ python生成的exe,反編譯成py的工具,大神提供下,感謝

你解開執行文件。如果是單個的文件,則執行它的時候在臨時目錄里可以找到解開的包。

在解開後的目錄中找到pyc文件,然後利用反編譯工具就可以將pyc反編譯成py文件。

但是有些程序是做了加密的。它們的pyc是它們重新寫python編譯器後自定義的加密格式,用通常的辦法無法解開。 需要在內存里反編譯。
-------------
pyc反編譯工具有很多
你搜索uncompyle2, decompyle2, DePython, unpyc, uncompyle, pycdc 等
聽說python2.7而言, uncompyler是最好用的工具。

⑥ 用Python2.7.1寫的小程序可以反編譯得到它的源代碼嗎

可以,網上有很多在線的反編譯工具,給你發幾個鏈接:
1、http://depython.com/index.php
2、https://github.com/eble/pyc2py
3、http://tool.lu/pyc/
不過好像第一個只適用於Python2.0-2.6,第二個適用於Python2.6,第三個應該可以反編譯2.7,你可以都試一下。

⑦ 請問不容易被反編譯的編程語言有哪幾種是比較推薦學習的

首先恭喜你選對了行業。不懂編程的人將來估計是寸步難行。IT行業入門門檻兒較低,對於IT專業外的知識儲備沒有太高要求。適合各專業各領域的學生和在職者加入。薪水高、地位高、沒有性別歧視和具體的年齡限制等。
至於具體學什麼,這個要看個人的愛好及特長。但總而言之,IT領域未來的發展方向,從實體方面來看一定是智能設備和物聯網,從領域來看一定是互聯網,未來的網路將會越來越智能,也將會提供大量的就業機會。因此,IT行業的前景是毋庸置疑的,國家信息產業部發布的最新報告顯示,我國目前信息安全從業人才缺口高達40萬人,每年以20%的速度在增長。國家信息產業部已把軟體工程師列為「國家緊缺型人才」的行列。前景好,人才需求廣,就業高薪,所以很多大學室會很青睞。希望可以幫到您,謝謝!

⑧ python如何防止反編譯

Python 編譯生成 pyc 僅僅為了提升載入速度,並不是為了防止破解,反編譯後和原來一模一樣。pyinstaller,py2exe,只是把 pyc 打個包,同樣很弱。代碼混淆也只能增加看懂代碼的難度,但並不能防止破解。所以最為穩妥的辦法只有修改Python解釋器,對源代碼進行加密,解釋器載入源代碼時再解密,這種方法雖然可以防止破解,但給自己帶來麻煩不說,發布程序是需要打包自己修改後的解釋器,相當麻煩。

⑨ 使用python語言如何保密源代碼以防止逆向工程

大家都很忙,誰有時間看你的的爛代碼!

如果真的怕泄露,別用python.

我以前做過這類事情,而且當時更嚴格,需要打包部署到客戶的服務只在有效期內有效,超過有效期必須更新證書才行。

Python代碼用任何方法都沒法保證保密性,這個時候你可以考慮用一個工具「nuitka」,這個工具會把你的python源代碼映射為c++然後編譯為二進制,因此對方是無論如何得不到你的源代碼的。

代價就是nuitka這個工具並不完美,有一些限制並不能100%完美的轉換所有python代碼。

1.用Cython編譯python成 Windows的pyd文件或Linux的so文件,二進制文件相對安全性較高。

2.用源碼混淆器把代碼搞的又臭又長。。。混淆完了再用Cython編譯為二進制。。。這樣靜態反編譯逆向難度也不小。

3.同其他語言程序一樣,可以對調試狀態進行檢測,當處於調試狀態時退出程序或進入混亂代碼耗費逆向工程人員心神。

4.分享一個跨平台反調試手段,檢測函數運行時間,加斷點會導致函數運行時間變長,也可感知正在被調試。

Python是提倡開源的,既然選擇Python還是擁抱開源才好~ 都開源還擔心逆向工程嘛

沒有不能逆的軟體。

只要匯編語言過關,逆向工程都是可以實現的,不要有其它想法。

你唯一可以做的,就是不讓別人用python讀取源代碼而已。那樣實現起來比較簡單。

python 適合開發伺服器程序,或者自己科研使用的程序,如果是 作為用戶程序,安裝到 pc 或手機上,還是 其它 c++ 或java 比較合適

1)可以把需要保護的部分用c語言實現,從而編譯成so等文件,這樣逆向的成本會比較高,可以防止直接打開python文件看到代碼邏輯。

2)so文件通過ida等工具也是可以反匯編的,可以通過對c語言進行代碼混淆,花指令等操作,提高通過ida等反匯編工具的分析難度。

3)不存在絕對無法逆向的技術手段,因此只能是看具體需求,選擇具體的防逆向的技術手段。

有工具類似py2exe轉成可執行程序,隱藏全部源代碼,雖然bytecode還是可以反編譯,但是難度大多了

1. 最穩的就是你改cpython載入代碼的過程,改zip包讀取最穩。

2. 藉助一些加密工具在編譯pyc之前進行一定的混淆,可以防君子,自我安慰一下。

商用一般都是用第一種辦法,小打小鬧用第二種。

可以考慮使用pymod工具,使用pymod pack 將模塊加密打包,發布的時候一個模塊就一個文件。

先睹為快,看看一個項目發布的時候,只有幾個文件,

main.py 項目程序入口

setting.py 項目配置

apps 項目模塊

plusins 項目插件目錄

創建項目 pymod create demo1

cd demo1

創建模塊 pymod add mod1

啟動pycharm 開始編寫功能模塊

一個模塊默認由三個文件組成

__init__.py 、 handlers.py 、param_schemas.py

業務邏輯主要在handlers.py中編寫

__init__.py

from pymod.blueprint import Blueprint api = Blueprint("/mod1") from .handlers import *

param_schemas.py

schema_sfz = { "type": "object", "required": ["sfz", "nl"], "properties": { "sfz": { "type": "string", "minLength": 18, "maxLength": 18, "description": "身份證明號碼" }, "nl": { "type": "integer", "minimum": 0, "maximum": 150, "description": "年齡" } } }

handlers.py

from . import api from pymod.ext import RequestHandler, params_validate,TrueResponse,FalseResponse from .param_schemas import schema_sfz from pymod.plugins import sfz_check @api.add_route('/hello') class Hello(RequestHandler): def get(self): self.write('Hello World') @params_validate(schema_sfz) def post(self): sfz = self.get_json_arg("sfz") nl =self.get_json_arg("nl") # self.write(TrueResponse(sfz=sfz, nl=nl)) if sfz_check.check_sfzmhm(sfz): self.write(TrueResponse(hint="身份證明號碼驗證通過")) else: self.write(FalseResponse(hint="身份證明號碼驗證失敗"))

三、項目部署

程序調試 修改setting.py

# 開發模式下 運行的模塊名稱必須填寫

moles = ["mod1"] moles_config ={ "mod1": { "deny_ip": "", "allow_ip": "*" } }

啟動程序 python main.py

調試沒有問題,進入發布模式

在項目目錄下

pymod pack mod1

在target目錄下生成mod1.mod文件,將其復制到apps目錄中

修改setting.py

# 開發模式下 運行的模塊名稱必須填寫

moles = []

再次運行 python main.py 測試

一切OK,系統就可以發布了。

說不能保密的,是沒有研究過python的機制的。我做個一個項目,所有源代碼自定義加密,運行時解密。

閱讀全文

與python防反編譯相關的資料

熱點內容
python怎麼將電腦作為伺服器 瀏覽:775
腰椎壓縮性骨折算幾級傷殘 瀏覽:298
傳統資產配置策略加密貨幣市場 瀏覽:986
id加密門禁卡可以復制到手機嗎 瀏覽:672
路由器如何控制某個app 瀏覽:43
C51編譯器在標准C的基礎上 瀏覽:260
銀行卡掉了可以辦車貸解壓嗎 瀏覽:317
沒解壓可以貸款嗎 瀏覽:517
最小pdf閱讀器 瀏覽:808
游戲被加密了怎樣用電腦打開 瀏覽:300
藍燈如何手動選擇伺服器 瀏覽:85
伺服器設置在中國意味什麼 瀏覽:571
單片機不能進行選擇控制 瀏覽:694
咕咚手錶如何綁定手機app 瀏覽:530
命令虛擬語氣 瀏覽:405
戴爾系統命令 瀏覽:583
怎樣壓縮視頻文件大小 瀏覽:686
51單片機信號發生器 瀏覽:56
米拍攝影哪個app好 瀏覽:88
天津致遠曙光伺服器雲伺服器 瀏覽:117