忘记服务器密码,在Xshell7中查看已保存密码

目录

前言

很久以前在Xshell中登录服务器时填写了服务器密码,最近想在另一台电脑上登陆时,找不到密码了,所以想是否有方法查看Xshell7中已保存的密码。

一、下载星号密码查看器

星号密码查看工具有很多,这里推荐一款经过实际测试的软件AsteriskPassword,该软件2013年发布,目前找不到作者和发布来源了,相对来说安全一些,毕竟查看的是服务器密码,还是要注意数据安全,使用时注意切断网络,使用后删除,下次再重新解压,以防万一。

我上传了一份,设置的0积分,不知道能不能随意下载:
星号密码查看器-AsteriskPassword

软件来源:
百度网盘 提取码:ugep

二、查看星号密码

在要查看密码的会话上右键,选择属性

点击用户身份验证,可以看到之前保存的密码,只是显示为小黑圆点

解压压缩包,可以看到AsteriskPassword上次修改日期为2013年,当然发布日期有可能更早,解压后只有602KB

软件打开如下,如果系统提示不安全不用管,把网断了就行,这个放大镜就是查看按钮

鼠标点住放大镜拖动,这个截不到,鼠标指针会变成放大镜的样子,移动到密码的区域,在查看工具中的编辑框文本后面就会显示原来的密码文字了

三、原理分析

使用这个工具能查看密码的本质原因是原位置存放的就是正确密码,只不过在展示的时候用星号替换了,应该是存在内存里,这个工具就是查每个元件在内存中对应的文本(猜测)

测试一下,这部分的文本是"Tree1"

"密码(P):"对应的是"密码(&P):"

换一个软件Navicat就没办法了,这里可能存的就是星号,也可能对这种查看方式做了防范

问一问deepseek,和预想的差不多

plaintext 复制代码
// 伪代码:星号密码查看器逻辑

// 步骤1:获取当前聚焦的窗口句柄
HWND focused_window = GetFocus();

// 步骤2:验证窗口类是否为"Edit"(编辑框)
if (GetClassName(focused_window) == "Edit") {

    // 步骤3:检查是否启用ES_PASSWORD样式
    DWORD style = GetWindowLong(focused_window, GWL_STYLE);
    if (style & ES_PASSWORD) {

        // 步骤4:获取密码文本长度
        int length = SendMessage(focused_window, WM_GETTEXTLENGTH, 0, 0);

        // 步骤5:分配缓冲区并获取明文密码
        char[] buffer = new char[length + 1];
        SendMessage(focused_window, WM_GETTEXT, length + 1, buffer);

        // 步骤6:输出或显示密码
        Print("Recovered Password: " + buffer);
    }
}

还找了两个提供源码的工具,等有时间自己也写一个

GitHub:https://github.com/gh0stkey/AsteriskPassword

吾爱破解:Windows 自己写的一款星号密码查看器

参考

Xshell7如何查看登录密码

相关推荐
uhakadotcom7 小时前
get_event_loop(),和 get_running_loop() + ThreadPoolExecutor 有啥区别
后端·面试·github
Lang-12107 小时前
CentOS Linux服务器完整迁移方案
linux·服务器·centos
工一木子7 小时前
GitHub 入门:从代码托管到认识技术世界的一扇门
github
TCW11217 小时前
Linux操作系统系列.动态加载
linux·服务器
lisanmengmeng7 小时前
gitlab 免密配置
linux·服务器·gitlab
普马萨特7 小时前
Wi-Fi (802.11) 协议演进
运维·服务器·网络
vortex57 小时前
深入探讨 Linux/Unix 传统设计哲学
linux·运维·unix
袁小皮皮不皮7 小时前
2.HCIP OSPF路由基础(优化版)
运维·服务器·网络·网络协议·智能路由器
JieDavid7 小时前
专利流程岗上岸实录|奇智创达知识产权系统实操经验分享
大数据·运维·人工智能·经验分享·产品运营·产品经理
云计算磊哥@7 小时前
运维开发宝典027-MySQL03数据库的增删改查
运维·数据库·运维开发