2011-04-16 106 views
1

我有一個應用程序,我不希望人們訪問,除非有明確的許可(通過密碼)。更具體地說,除非用戶輸入密碼,否則此應用程序需要在一天中的特定時段「鎖定」。我可以使用密碼保護應用程序嗎?

檢查時間的能力很簡單。鎖定應用程序的能力是我不知道該怎麼做的。這需要完成的原因是公司不信任用戶註銷並且不希望任何未經授權的訪問應用程序。這是爲了以防萬一,作爲最後一種措施。

雖然我沒有寫應用程序,所以我不能在其中嵌入密碼。該機器只有一個用戶,我不想創建其他用戶。我的用戶也是管理員,因此大多數使用os來提供安全性的選項不會起作用。

有關如何完成此任何想法? 我正在處理Mac OS X,但更喜歡獨立於操作系統的解決方案。歡迎任何涉及CC++的解決方案。

謝謝!

+0

簡答:沒有。 – msw 2011-04-16 15:23:33

+0

我想長一個答案。 – chacham15 2011-04-16 19:45:02

+0

我想問一個無法回答的問題。你試圖防範什麼樣的情況?您構建用例的方式對應用程序沒有保護。您的用戶擁有root權限,因此可以執行任何操作,包括複製軟件並提供密碼。 – msw 2011-04-16 20:51:19

回答

6

如何將應用程序嵌入到加密磁盤映像包中?只要使用它永遠不會從那裏將它複製和正確的唯一用戶事後卸載捆綁,我認爲這將完成你想要的:

  1. 創建一個新的加密磁盤使用磁盤工具映像(DMG) (這允許您輸入密碼),將其存儲在用戶主目錄中的任何位置。
  2. 掛載DMG,並把你要保護裏面
  3. 創建的別名安裝DMG內的應用程序,將它放在桌面
  4. 卸載的DMG

後的應用程序當用戶雙擊桌面上的別名時,會提示用戶輸入DMG的密碼。如果它是正確的,DMG將被掛載並且應用程序會自動直接啓動。

自動卸載之後也許你可以腳本的東西,使用diskutil shell命令,就像這樣:> diskutil unmount /Volumes/DMG_NAME

所有您需要做的就是:

  • 去除任何未加密的副本系統應用程序
  • 明確通知您的用戶在完成使用應用程序時卸載DMG(或腳本自動執行)
  • 向您的同伴StackOverflowers解釋您正在解決的實際問題。 Msw有一點,我希望你能詳細闡述一下。
+0

事情是,用戶即時編寫這不是一個程序員,並且對計算機知之甚少。我想提供一個界面,他雙擊一個exe文件,並提示提示輸入密碼,並且只有在密碼正確的情況下才運行可執行文件。幾乎就像我做了msw的建議,但以某種方式將當前的可執行文件嵌入到我自己的內部。 – chacham15 2011-04-16 19:48:58

+0

那麼你是在試圖保護應用程序的人呢?沒有對這個問題的回答,安全問題就毫無意義。你說這個用戶不是計算機專家,但有root權限。您是否試圖保護他免於訪問您的應用程序?我希望不會,因爲他已經向操作系統驗證身份,因此擁有無限的特權,而您的額外障礙只會令人煩惱。你是否試圖防止有人訪問root的登錄會話,但不是無知的?然後,她已經有權訪問,而另一個密碼不會阻止她。 – msw 2011-04-16 20:30:35

+1

這幾乎是一個解決方案,我可以在應用程序退出時以編程方式卸載磁盤嗎?即我可以(使用C#術語)訂閱應用程序退出事件並使用它來卸載卷嗎? – chacham15 2011-04-17 06:33:27

0

顯然,使用這種設置沒有什麼是100%安全的,但對於臨時用戶,您可以使用密碼加密應用程序,然後編寫啓動應用程序,在輸入密碼時解密並啓動應用程序,並刪除退出時的應用程序。

0
#include <stdio.h> 
#include <string.h> 

char buf[BUFSIZ] 
puts('what is the secret password? '); 
fgets(buf, BUFSIZ, stdin); 
if (strcmp('secret', buf)) exit(1); 

如果您還不代碼工作,以及別的,並具有簡單性和便攜性的優勢。

+0

有一個老問題,在同一行中有很多答案:使用在可執行文件中常用/找到的單詞,因此搜索二進制文件會生成很多匹配項等等......我似乎無法找到它現在 – rubenvb 2011-04-16 15:21:22

+0

正如我所說,我不能將代碼嵌入到程序中,因爲我沒有編寫程序。也就是說,除非你知道如何將代碼嵌入到現有的可執行文件中。 – chacham15 2011-04-16 17:59:59

相關問題