4

我见过一些密码泄露软件。他们中的大多数都有一个类似指针的射击指针,您只需指向密码文本框,软件就会显示密码。

但是受保护软件和泄露软件仍然没有互连。它们是在同一主机上运行的独立进程。

我的疑问是,

  1. 一个进程如何访问另一个软件的信息?
  2. 它的局限性是什么?
  3. 我可以使用哪些做法来防止这种情况发生?

编辑:是的,使用虚拟数据保存密码是最常用的解决方案。但是同样的理论仍然可以应用于其他情况,对吗?例如,外部程序可以读取您的电子邮件,间谍程序可以记录您的活动等。甚至我们可以实现一些很酷的功能,例如将 IE 拖放到 Mozilla 的支持 :)

所以在这种情况下,最有效的解决方案是“阻塞”机制。有没有办法做到这一点?(避免访问进程的资源???)

4

4 回答 4

2

可能是通过找到控件并向文本框发送一条消息,将“密码”字符更改为空白(即它将重新计算)。

所以:

  1. 通过向他们发送 Windows 消息

  2. 我不记得了,但我很确定你只需要窗把手。

  3. 根本不要在密码字段中显示密码。只需将它保存在内存中的某个位置,并且仅在用户特别要求时才显示它。

于 2010-01-19T04:03:30.660 回答
2

正如丝绸所说,这只是发送Windows消息的问题,有一个非常简单的来源可以一次显示所有密码字段。一个简单的对策是使用包含虚拟字符而不是真实密码的密码字段。您可以捕获正在输入的内容,将其存储在变量中,然后用密码字段中的虚拟字符替换它。

于 2010-01-19T04:12:41.390 回答
0

IIRC 这个“弱点”自 Windows XP SP2 起就被消除了?无论如何,我很确定用于密码的标准 Windows 文本框控件得到了升级,因此您不能只使用 Spy++ 之类的工具来查看被屏蔽的实际文本。

于 2010-01-19T04:22:14.833 回答
0

密码的工作方式:
设置密码时,使用哈希函数将密码转换为哈希值,并存储该哈希值。密码永远不会被存储。当用户登录时,密码被散列并与存储的散列值进行比较。如果两个哈希匹配,则用户提交了正确的密码。

为了揭示密码,必须将存储的散列值与具有已知散列值的东西进行比较,或者在散列函数损坏的情况下,可以将散列值猜测为提交的值。这些可能性中的后者是思科密码破解者使用的方法,如果你能进入盒子,因为思科使用了一个众所周知的弱散列函数。在后来的 Windows 操作系统中,使用的哈希函数是 NTLM,它非常强大。在这种情况下,您必须将存储的哈希值与已知的哈希值进行比较。这种方法称为彩虹表。典型的字母数字和 7 位 ASCII 特殊字符 14 字符密码具有 64gb 大的彩虹表。这就是为什么更长的密码要好得多的原因,因为将哈希值与数十亿个其他值进行比较需要几分钟。

于 2010-01-19T18:04:37.610 回答