2011-04-16 107 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

相关问题