Security 密码展示器是如何工作的?

Security 密码展示器是如何工作的?,security,winapi,ipc,password-protection,Security,Winapi,Ipc,Password Protection,我见过一些密码显示软件。他们中的大多数人都有一个像射击指针一样的指针,你只需指向密码文本框,软件就会显示密码 但受保护的软件和探测仪软件仍然没有相互连接。它们是在同一主机上运行的独立进程 我的问题是, 一个进程如何访问另一个软件的信息 它的局限性是什么 我可以使用哪些实践来防止这种情况 编辑:是的,使用虚拟数据保存密码是最常用的解决方案。但同样的理论也可以应用到其他情况,对吗?例如,一个外部程序可以读取您的电子邮件,一个间谍程序可以记录您的活动等,甚至我们还可以实现一些很酷的功能,如对IE到Mo

我见过一些密码显示软件。他们中的大多数人都有一个像射击指针一样的指针,你只需指向密码文本框,软件就会显示密码

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

我的问题是,

  • 一个进程如何访问另一个软件的信息
  • 它的局限性是什么
  • 我可以使用哪些实践来防止这种情况
  • 编辑:是的,使用虚拟数据保存密码是最常用的解决方案。但同样的理论也可以应用到其他情况,对吗?例如,一个外部程序可以读取您的电子邮件,一个间谍程序可以记录您的活动等,甚至我们还可以实现一些很酷的功能,如对IE到Mozilla的拖放支持:)

    所以在这种情况下最有效的 解决方案将是“阻塞” 机制。有什么办法可以这样做吗?(避免访问流程的资源??)


    可能是找到控件并向文本框发送消息,将“密码”字符更改为空(即,它将重新生效)

    因此:

  • 通过向他们发送windows消息

  • 我想不起来了,但我很确定你只需要窗户把手

  • 根本不在密码字段中显示密码。只需将其保存在内存中的某个位置,并仅在用户明确要求时显示


  • 正如silky所说,这只是发送windows消息的问题,有一个非常简单的方法可以一次显示所有密码字段。一个简单的对策是使用一个密码字段来保存伪字符,而不是真实的密码。您可以捕获正在键入的内容,将其存储在变量中,并在密码字段中将其替换为伪字符。

    IIRC自从Windows XP SP2之后,这个“弱点”就被消除了?无论如何,我敢肯定用于密码的标准Windows textbox控件得到了升级,因此您不能仅仅使用Spy++之类的工具窥视被屏蔽的实际文本。

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


    为了显示密码,必须将存储的散列值与具有已知散列值的内容进行比较,或者,在散列函数损坏的情况下,可以将散列值猜测为提交的值。如果你能进入这个盒子的话,后面一种可能是思科密码破解者使用的方法,因为思科使用了一个出了名的弱散列函数。对于更高版本的Windows操作系统,使用的哈希函数是NTLM,它非常强大。在这种情况下,必须将存储的哈希值与已知的哈希值进行比较。这种方法称为彩虹表。典型的字母数字和7位ASCII特殊字符14字符密码有一个64gb大的彩虹表。这就是为什么较长的密码会有很大优势,因为将一个哈希值与数十亿个其他值进行比较需要几分钟。

    Windows窗口设置的一个陷阱。您可以从任何进程中窥探和修改“窗口”(读取:任何类型的控件)。