我见过一些密码揭示软件。他们中的大多数都有像指针一样的拍摄指针,您只需指向密码文本框,软件就会显示密码。
但受保护的软件和启示软件仍未互连。它们是在同一主机上运行的独立进程。
我的疑问是,
- 一个进程如何访问其他软件的信息?
- 有什么限制?
- 我可以用什么做法来防止这种情况?
醇>
编辑:是的,使用虚拟数据保存密码是最常用的解决方案。但是仍然可以将同样的理论应用于其他一些案例吗?例如,外部程序可以读取您的电子邮件,间谍程序可以记录您的活动等。甚至我们可以实现一些很酷的功能,如拖放支持IE到Mozilla:)
所以在这种情况下最有效 解决方案将是“阻止” 机制。反正有没有这样做? (避免访问进程的资源???)
答案 0 :(得分:2)
可能通过查找控件并向文本框发送消息,将“密码”字符更改为空白(即它将重新开始)。
所以:
通过向他们发送Windows消息
我记不清了,但我很确定你只需要窗口把手。
根本不要在密码字段中显示密码。只需将其放在内存中的某个位置,只有在用户特别要求时才显示它。
答案 1 :(得分:2)
正如silky所说,这只是发送Windows消息的问题,有一个非常简单的source可以同时显示所有密码字段。一个简单的对策是密码字段,它保存虚拟字符而不是真实密码。您可以捕获正在键入的内容,将其存储在变量中,并将其替换为密码字段中的虚拟字符。
答案 2 :(得分:0)
答案 3 :(得分:0)
密码的工作方式:
设置密码时,使用散列函数将密码转换为散列值,并且存储该散列值。密码永远不会存储。当用户登录时,密码被哈希并与存储的哈希值进行比较。如果两个哈希值匹配,则用户提交了正确的密码。
为了显示密码,必须将存储的哈希值与具有已知哈希值的某些内容进行比较,或者在哈希函数损坏的情况下,可以将哈希值猜测到提交的值中。这些可能性的后期是思科密码破解程序使用的方法,如果你可以进入框中,因为思科使用了一个众所周知的弱哈希函数。在以后的Windows操作系统中,使用的哈希函数是NTLM,它非常强大。在这种情况下,您必须将存储的哈希值与已知哈希值进行比较。此方法称为彩虹表。典型的字母数字和7位ASCII特殊字符14字符密码具有64gb大的彩虹表。这就是为什么更长的密码非常优越,因为将哈希值与数十亿其他值进行比较需要几分钟的时间。