python寫的軟體都可以被逆向嗎?

聽說c寫的文件可以打包成exe然後無法逆向,但是python就可以,是嗎?


如果只針對這個問題 @WinKaR 已經回答了。可以。

但是,逆向(工程)並不是計算機工程領域特有的,小到手錶大到火箭發動機都可以逆向。所以,軟體什麼的就不用說了。所以,只要能拿到產品,就可以逆向。

我不是很喜歡使用工程方法來保護產品,多數情況下這是徒勞,而且可笑的。原因是,對於真有價值的商業情報。挖人是最簡單,最有效,而且最暴力的方法。

另外題主的問題其實把代碼混淆和編譯混起來了。反編譯只是逆向中最簡單的一步,Python 這樣的動態語言,只是讓人家把這步省了。而如果真要的反逆向,C源碼也一樣要做代碼混淆。比如說這個: The International Obfuscated C Code Contest

最後還要提一下,有什麼樣的產品才會有什麼樣的需求。一般來說,像互聯網行業,一個網站,或者網遊,代碼是放在伺服器上。加強人員管理,網路安全才是正事。

如果是傳統一點的行業,用戶接觸得到代碼。那也需要看在什麼樣的情況下才需要防範用戶。現代工業到了這一步,人才是關鍵。擁有一個活躍的,有良好反饋的用戶社區,要遠比保護源代碼什麼的重要的多。


逆向一般指的都是逆可執行文件或者位元組碼. 也就是exe或者linux下的elf, 以及.class, .dex文件這種東西.

不要把看源代碼叫逆向...丟不起這人

不存在不可逆的程序, 只有逆向成本和難度高低的問題.


我想LZ問的是是否有可能把Python編的程序變異成exe或者dll?

可以,比如使用elmer http://elmer.sourceforge.net/

至於逆向的難度,我就不知道了。。


題主的意思是C代碼編譯到可執行程序.exe就無法直接查看到源代碼,而Python的可執行腳本.py可以直接看到源代碼吧?直接看到源碼≠逆向。題主所謂的c代碼到.exe的過程也不叫做打包而是編譯請自行百度。軟體中的逆向解決的是對底層的位元組碼通過反編譯還原到程序源碼或者偽碼,.py本來就是代碼文件,沒有經過編譯這個過程,更談不上逆向一說。在Python中,如果是對其編譯得到的.pyo或.pyc文件進行源碼的還原,才能叫做逆向。C語言也不是不能被逆向,現在都有很成熟的工具能基本逆向出一般的.exe,.dll的代碼。


誰說的c寫的文件打包exe就不能逆向了,逆向其中一種是反編譯,利用ollydbg,ida軟體,可以通過一些彙編代碼,了解其演算法,其實還可以單步調試去觀察,單步步入和單步步過。

python是腳本語言啊,解釋型的,可以通過代碼混淆啊。


推薦閱讀:

跟黃哥學習Python第一章
使用Celery
Python小工具: 發個周報郵件給老闆
如何真正零基礎入門Python?(第一節)
VisPy 中文文檔:簡介與安裝

TAG:Python | 編程 | Python庫 |