一個都不能死源碼
『壹』 電影《源代碼》結局什麼意思
現實中,主角本來的身體就只剩下了半截,靠維生設備維持著腦波之類的東西。那個瘸子科學家就用這點僅存的腦波進行試驗。在火車上的是另外一個人,可能他們的腦波頻率等很多特徵都接近,就借用了他的身體去解除炸彈。
由於平行理論,火車上的人在另外一個平行空間還活著。當主角的半截身體還活著時,主角的思維已經在火車上那個人身上了,切斷維持半截身體的供給,半截身體死亡,主角的靈魂或思維就寄存在了火車上那個人身上了,以那個人的身份生活下去了。
(1)一個都不能死源碼擴展閱讀
影片《源代碼》是由鄧肯·瓊斯執導,傑克·吉倫哈爾、維拉·法米加、米歇爾·莫娜漢等人聯袂出演。影片於2011年4月1日在美國上映。
影片講述了一位在阿富汗執行任務的美國空軍飛行員柯爾特·史蒂文斯,醒來時發現自己正處在一輛前往芝加哥的火車上,並就此經歷的一系列驚心動魄的事件。
「咚,咚」「呼,呼」,急促的心跳聲和喘息聲震耳欲聾。一切都開始模糊,繼而扭曲變形。然後,一陣尖銳的火車汽笛聲,將柯爾特·斯蒂文斯上尉(傑克·吉倫哈爾 飾演)拉回了現實。窗外,是疾馳倒退的綠地。坐在他對面的女子(米歇爾·莫娜漢 飾演)疑惑地看著走神的他,又繼續著話題,柯爾特突然覺得頭皮發麻。
柯爾特意識到只有一種方法可以證明真相。他沖向洗手間,直愣愣地盯著裡面的鏡子,出現在鏡子里的人,是一個身著呢子大衣、藍色襯衫,眼中帶著幾分驚恐的中年男子。不是他自己,至少不是他印象中的自己。還沒等他驚魂落定,一股強大的爆炸氣流襲來,整列列車在烈火中被炸成碎片。猛然睜開雙眼,柯爾特驚疑地看著四周,他發現自己身處一個獨立的空間里,穿著本就屬於他的軍服。
『貳』 怎麼提取軟體源碼
問題一:怎樣提取一個軟體的源代碼 想看到源代碼?我覺得不可能,不是有些嘩序不能看到,而是所有的程序通過正當的途徑都不能看到源代碼,除非這個程序是你自個寫的。因為幾乎所有的程序在發布之前都會進行加密、加殼的操作。即使你知道人家採用什麼技術進行的加密也不太可能會原樣的還原出來源代碼。所謂的破解也並不是把原程序的源代碼給還原了之後給你破解的。破解軟體也只不過是反編譯了軟體的匯編代碼而已!
問題二:怎樣獲取軟體的源代碼 這個問題,如果僅有EXE,是不可能獲取到源碼的。
除非你跟開發者要。
問題三:怎麼從excel表格里提取源代碼? 例如表的名稱是sheet1,則在sheet1的標簽上點右鍵,查看代碼就行
問題四:怎麼才能得到一個軟體的源代碼 你好。
軟體源代碼一般來說就是軟體公司產品發布時間一定期限後,自己公布出來的。
當然。使用反編譯也是可以的。不過破解工作很復雜,足夠再開發新軟體了。得不償失。
問題五:求一款網站源碼提取工具 20分 這種軟體是沒有的
因為要獲取整站源碼 必須獲取空間的許可權
才能整站下載
否則獲取的是網站模板
問題六:如何用apktool提取源代碼 准備的工具除了jdk還有以下內容(在Google官網都有):
把apktool-install-windows-2.1_r01-1.zip,dex2jar-0.0.7-SNAPSHOT.zip解壓到一個盤的根目錄下(這里我選擇H盤),同時把AXMLPrinter2.jar,apktool.jar和你想解包的apk軟體也放在同一個目錄下,然後「運行--cmd」打開控制台,輸入cd /d h : / 進入H盤的根目錄然後輸入以下內容(控制台不要關,為了後面方便):
其中apktool.jar是解包工具,d表示解包,memo.apk是我要解包的軟體,memo表示解包後輸出到這個文件夾,等待片刻,就會生成memo文件夾,打開裡面會有res文件夾下的所有文件和AndroidManifest.xml,用記事本就可以查看了。
以上是獲得.xml文件和圖片,下面獲得裡面的.java源代碼:
用winRar或者好壓打開memo.apk,截圖如下:
把裡面的classes.dex文件解壓到H盤根目錄下,然後重新打開控制台,輸入dex2jar.bat classes.dex
得到一個名為classes.dex.dex2jar.jar的文件,此時用jd-gui.exe打開classes.dex.dex2jar.jar就可以看到所有源代碼了!
如果想把反編譯好的文件變回apk文件,只要在控制台輸入
apktool.jar b memo就可以了
其中b就是重新封包的意思,memo是你剛才解包出來的文件夾,前提是確保所有文件都在memo文件夾里!!
問題七:能不能破解一個軟體從而獲得其所有源代碼? 你是在說反編譯嗎?沒有軟體可以反編譯。只能靠人來反編譯,但十分麻煩。
問題八:.apk文件能獲取源代碼嗎? 你做的APP 為什麼你不知道源碼。
在沒有做混淆處理的情況下 是可以通過程序反編譯出來的,源碼也可以得到。
做了混淆的話,就比較棘手了
問題九:為什麼無法獲得軟體源代碼? 編譯型軟體的源代碼幾乎無法獲取,可以這樣子給你解釋為什麼從理論上無法獲取:
源代碼需要經過編譯之後變成一連串的0和1,這一連串的0和1打包起來,就是我們日常所說的可執行文件,也就是你平時用的軟體了。
OK,你想通過可執行文件,也就是這一連串的和0和1逆推回源代碼,這幾乎是不可能的事情,因為高級語言的源代碼和最終生成的0和1不是死死的一一對應關系。高級語言需要先被轉為匯編語言,然後匯編語言再轉為0和1,匯編語言與0和1是一一對應關系的,但是高級語言和匯編語言就不一定了。
即便是同樣的幾句高級語言代碼,在不同的編譯器裡面,也完全有可能是完全不同的匯編代碼。而且同樣邏輯的代碼,即便是只有稍微幾個關鍵字的不同,或者是變數的不同,都會產生不同的匯編代碼。
所以,由二進制的0,1可執行文件,逆推高級語言,理論上可行,實際上不可行,因為工作量太大。類似大型軟體,好幾個G的,那是多少億行的0和1,哪怕是全世界的程序員在一起逆推,都不知道需要多少年可以完全逆向出源代碼。
那我們平時所說的逆向工程是什麼呢?
OK,其實軟體是可以逆向的,但是不是說逆向出真正的源代碼,而是逆向出這個軟體的匯編代碼。但是需要注意,匯編代碼在某種程度上並不能成為這個軟體的源代碼,因為匯編代碼量極大,而且不具備良好的可讀性,一句普通的高級語言源代碼,可能就會生成好幾十條匯編代碼。所以匯編代碼量是極大的。
同時,匯編代碼幾乎是不具備有架構性的,也就是說,即便你拿到了一個軟體的匯編代碼,你最多就是稍稍改改一些關鍵邏輯,比如說注冊邏輯(用於破解)之類的,但是你要說通過匯編代碼去改這個軟體的功能,幾乎就是不可能的事情。所以,匯編代碼是無法用於開源的,你公開出來了,別人也沒精力去看。
『叄』 源代碼里結局超過了8分鍾男主不死
感覺樓上都沒看懂,這是我理解的,請勿吐槽。
其實是男主回到過去改變了將來要發生的事。
博士和女上尉以為自己創造的源代碼只能保持8分鍾,是不能改變過去的。但並不是如此。也不是什麼所謂的世界A、B。認真看就有個細節,影片66分鍾的時候,男主角問女上尉,如果當初沒結婚,或者沒離婚,只是嫁了人,會不會有另一個版本的她。女上尉打斷他,說男主看到的都只是幻象,源代碼這個技術不是用來改變過去的,而是影響未來。但男主堅信可以改變,他一再說要回到列車上拯救乘客,他們沒必要死,並說女上尉錯了。事實上,到故事結尾,發現男主確實的對的。因為女上尉送他回到列車之後,他拯救了乘客,也讓罪犯落網。當他親吻克里斯丁娜的時候,他以為8分鍾之後所有都在他創造的美好環境中結束了,但是沒有,時間延續下去了。所有人都得救了,而且不是在源代碼世界裡(因為源代碼的世界只能保持8分鍾)他才發現這個技術其實是可以改變過去的,他真實的拯救了那些人,並且發簡訊給女上尉,說「你和我一起阻止了這次爆炸」,這句話是重點,因為當時是他說服女上尉讓他回到列車上救人的。還有,如果他們在兩個不同的平行世界,女上尉是不能收到男主的簡訊的。所以可以證明,他們在同一個空間。而那次爆炸也並沒發生。簡訊最後說,「古德溫,如果沒猜錯,在源代碼設備的某個位置上,有一個柯爾特.史蒂文斯上尉,正整裝待命,答應我,你要幫助他,並且告訴他一切都會好起來的。」意思就是,讓女上尉幫助他回到過去拯救自己。讓他在阿富汗的任務中避免死亡。有人可能會說,他既然能發簡訊給女上尉,那麼他並沒死,為什麼要拯救自己?因為發簡訊的人是肖恩,並不是柯爾特.史蒂文斯上尉。看影片最後,男主和克里斯丁娜在芝加哥那個哈哈鏡(= =不知道是啥)面前的時候,鏡中人是肖恩,他的身體也是肖恩。所以當他發現這個源代碼真正秘密的時候,他想讓古德溫幫他拯救自己,然後回到自己父親身邊。
『肆』 公司如何保護源代碼不被員工泄漏
您好。感謝您給我這次回答的機會。
首先,我認為這個有兩種方法,看你怎麼選。
第一種:
限制代碼庫只能在公司內網訪問,公司之外懷能下載代碼;
限制只能用公司的電腦下載代碼、編寫代碼、提交代碼;
限制訪問代碼庫的許可權,發人員不授予訪問和自己不相關代碼庫的許可權;
能訪問代碼的電腦上安裝監控軟體,號稱可以監控所有員工活動;
設置公司網路防火牆,禁止訪問github這樣的開源網站;
把上面所有的規矩記錄下來,教育員工知道,讓他們簽字畫押必須遵守,鈑者開除而且報警。
第二種:
招募受過良好教育、品行良好、專業團隊工作經驗的開發者;
對開發者友善,讓他們不會對公司心懷怨恨;
把開發者的利益和公司利益關聯起來,讓他們不想為了蠅頭小利犧牲公司利益。
其次,你可能不知道的東西。
1.絕大部分的公司(bat另說) 手中的源代碼商業價值根本不高。
2.絕大部分的公司的源碼質量都比不過github的哪些開源類庫。
3.絕大部分的公司的源碼都屬於高度定製化的開發(就是換個公司,這個軟體幾乎就沒有什麼價值了)。
4.絕大部分的公司都不是靠「軟體技術」賺錢的。
5.絕大部分的人都不會傻到直接把偷來的源碼用於「商業活動」(非但不一定賺錢還可能吃官司,還不如去github上扒開源代碼)
6."防禦"的成本數倍於"重新開發一套"軟體.
所以看淡一點源碼,它在絕大多數公司中其實並不值」幾個錢「雖然它的創造成本可能」很貴「。
所以說,這些東西掌握以後,就基本上不用擔心代碼被泄露了。
理論上做到公司電腦無法和外界連通,進出人員不得攜帶任何外設就可以徹底解決代碼泄漏的問題。但是商業公司比較難做到。下面我們來的分析一下員工有沒必要竊取代碼,有沒能力竊取到下完整的代碼。
現在有一定規模的公司應用都是服務化的,不同的小組負責不同的服務,有各自的代碼查看許可權。所以一個或者幾個程序員無法拿到全部代碼。
超大規模的應用就更復雜了,有前台,中台,後台,APP等,架構也極其復雜,就算某個程序員獲得到了全部代碼,也沒有能力搭建並運行起來。
小規模公司的代碼基本都是業務邏輯代碼,泄不泄漏可能也沒有太大關系。
防止別人偷拿代碼是很難的,倒不如加強企業文化,提高員工的職業素養。尊重是互相的,做到用人不疑,我想大部分人也不會以怨報德。
說說我們公司是怎麼做的吧:
1. 封了網路文庫、網路網盤、CSDN等網站凡是能上傳文件的網站,我們公司都封了,這樣就防止員工把內部文件上傳到這些網站被泄密。但是這樣做的一個後果就是員工想查一些資料,在這些網站都打不開,只能用自己的手機去查了,造成了一些工作的不便。
2. 封了USB、藍牙介面,以及光碟機凡是能從電腦上拷貝文件到外部的介面,我們公司都封了,這樣員工就無法把公司的文件拷到外面了,避免了泄密。這樣做的後果也給我們帶來了一些工作上的不便。比如以前我們做藍牙測試的時候,需要把測試的App拷貝到手機上舊非常困難。後來公司了解了我們的困難,允許我們提申請,經過上級領導的批准後,可以給電腦開通USB許可權,但是拷貝的內容也是被公司監控,所以也只能拷貝需要的內容。申請的時候有選擇開通的時間,到期後,USB許可權自動關閉了。
3. 禁止將公司電腦帶出公司為了防止員工私下裡想辦法把公司電腦的文件拷走,公司禁止把電腦帶出辦公室。如果需要帶電腦去客戶那裡,則需要向公司提出申請,申請的時候也要選擇帶出和帶回的時間,這樣基本上就杜絕了員工泄密的可能。如果員工在外出途中丟失了電腦,這就會成為一個大事件,會匯報到公司最高層,對員工個人的影響也很大。公司有一套流程專門應對這類事件。曾經我們公司有人帶電腦去客戶那裡,跟客戶吃飯喝醉了,打車回家把電腦弄丟了,引起了很大的後果,這個事經常會作為事例來教育全體員工。
4. 電腦里安裝監控軟體公司的電腦里都安裝有監控軟體,網管可以監控到每一台電腦。員工在電腦上列印,發傳真、發郵件這些活動都受到監控。列印機也能看到每個人列印、傳真的內容。員工如果有泄密的行為都可以及時監控到。至於員工對著電腦拍照,公司應該也能檢測到。所以公司的電腦不要做一些私人的事情,很容易被監控到。
5. 封了QQ、微信等可以傳輸文件的社交軟體QQ、微信這類可以傳遞文件的社交軟體在公司的電腦上是不能安裝的,也防止了員工通過這些軟體把文件傳輸到外面。公司內部只能使用微軟自帶的聊天工具Lync,這個軟體也不能傳輸文件,只能聊天。如果公司內部需要傳輸文件,只能用公司的伺服器或者郵件。有些大的文件,只能盡量壓縮,否則傳輸會非常不方便。
6. 禁止員工安裝公司允許之外的軟體嚴格監控員工的軟體安裝列表。公司給出了允許安裝的軟體列表,超出范圍的安裝軟體會被監控到,讓員工刪除掉。這樣員工無法安裝一些上傳文件的軟體了,防止泄密了。員工也不能隨意從網路上下載安裝文件,防止一些木馬病毒藏在軟體里,盜取公司文件。
公司防止員工泄密的手段是很多的,每年還要對員工進行安全教育,規范員工的行為。
虛擬化桌面伺服器,使用虛擬桌面和瘦客戶機,瘦客戶機禁止usb存儲。瘦客戶機不能聯網但可以連虛擬化伺服器,伺服器不能連外網。單獨設立一台機器可以聯網,也可以連接一台ftp虛擬機(虛擬化伺服器中的FTP用於內外網共享文件),聯網機器下載的東西了上傳到ftp供其他桌面虛擬機使用。桌面虛擬機上傳的文件需要管理員通過才能被這台外網機器看到下載。
1,不允許攜帶電子設備進入工作區域,進門經過金屬探測。
2,公司電腦不允許連接外網。
3,封死USB等外設介面。
4,機箱鎖死,防止拆硬碟。
5,安裝攝像頭對准每一個工位,一旦發現使用拍照設備等,進行相應處罰。
這幾個只有一起用才能完全防止泄露,否則都有辦法。
你去看看某研究院的一些規章。禁止筆記本等帶入,不小心帶入了,對不起,設備留置24小時,徹底格式化。手機,存儲設備也一樣禁止帶入。開發機全部內網。沒有WIFI,滑鼠鍵盤全部有線,粘死。機箱上鎖。USB等介面全部封掉。人員許可權限制,絕大部分人員不能下載全部代碼。
首先管理層面,領導要重視信息安全,然後按照iso27000系列信息安全標准去做。信息安全和物理安全是要互相配合的。辦公區要根據安全級別設置不同的管理措施,信息資產要根據價值設置不同的標簽,區分關鍵資產和非關鍵資產,另外信息資產只能有一個出口要經過審批後才能出去。技術層面的措施也可以用,但是不能亂用。另外開發環境安全可以參考15408的站點審查部分。
防止不了,有合作公司管理嚴格,我們都用手機拍照溝通,所以除非禁用手機和一切拍照設備,否則都給你拍出來。
我覺吧吧,關鍵是人。而不是制度。
這么說吧,光有源代碼屁也不是。要是沒人build都困難。別說上線和運行了。
所以,你要是選信任的人,而不是選信任的方法。那麼就算別人真偷了,拿一堆源代碼回去,都沒辦法build,有什麼用?
反之,就算沒有源代碼。人家拍拍屁股走人。然後還他媽實現,你有什麼辦法?
『伍』 軟體公司都是如何防止源碼泄露的
基本上靠自覺,畢竟開發人員如果不接觸代碼那還開發個啥。既然接觸到了代碼,泄密不泄密就是自己選擇的事情了,遠程伺服器代碼不能FTP下來我就復制粘貼回來,不讓復制粘貼我就截圖下來,不讓截圖我就拍照,不讓拍照我就手抄,根本不可能杜絕。
有的公司會用一些保密軟體,基本上就是說開辟一個保密盤空間作為所有開發人員的地盤,可以拷出去,這個空間裡面所有數據的流出都會被加密,你再拷回來又給解密了。
也有公司直接用IBM全套系統,開發測試機所有文件傳輸共享服務關閉只留telnet,無外網,軟體下載不能,只有自帶的vi,連vim都沒有,遠程登錄過去撐死你一次就看到30行,整個機器上百兆源代碼都是碼農們一個字一個字打上去的,機器上滿地都是大家寫的各式各樣開發shell腳本...同事外派出去幹活看到別的碼農用花花綠綠大屏幕分屏IDE神馬的敲代碼就嘩嘩淌哈喇子
『陸』 使用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的機制的。我做個一個項目,所有源代碼自定義加密,運行時解密。