11Oct/094
Password Reader for CuteFTP Pro 8【含工具下载】
平时都直接用CuteFTP来管理各个服务器,竟然把密码都忘记掉了。痛定思痛,确定从CuteFTP中把密码挖出来。
CuteFTP Pro中,密码显示都是*号,即使用里面的站点管理器(Site Manager)导出,用的也是星号。用Spy++查看密码框,是空的,也就是说那个框只能用来输入。
那么,要找出密码,可以有三种方法:
一、抓包
用Wireshark(即Ethereal)等工具,可以简单地根据FTP协议分析出来。这个方法以前用过,但似乎对于SSL等连接,这种方法变得不切实际。
二、分析内存
用OllyDbg等工具,调试分析之,然后从内存中找出来。此方法费时费力,每次找都要花一番功夫。
三、读取CuteFTP Pro的文件
我们知道CuteFTP Pro的密码都保存在sm.dat文件中。那么只要分析出sm.dat的结构和密码存储的方法,就可以读出来了。
分析过程不多说,只说结果:
在sm.dat文件中,对于每个站点,都用相同的结构。每个站点前是 0B 00 00 00,接下去是“记录名”,然后是几条类型数据,再下去就是站点,用户名,密码等。(其他不累赘了)密码当然不是用明文,而是加密过的。加密后的密码和原文长度一致,是一一对应的。下面是我分析出其规则后写的解密算法:
uint L = code & 0xF; L = L > 7 ? L - 8 : L + 8; uint H = ((code & (byte)0xF0)) - 0x80; H = H > 0x30 ? H - 0x40 : H + 0x40; byte PCode = (byte)(L + H);
随手写了个CuteFTP Pro 的密码读取器,用MPL协议发布
CuteFTP Pro Password Reader
上面是编译后的文件下载地址。
注意:运行这个程序需要.NET Framework 2.0 或以上版本
想对其扩展的朋友,可以联系我拿源码。