在没有安装MSN Shell时,MSN的谈话是未加密的,Fetion的也是如此,所以只要对数据包进行反编码即可获得聊天内容,下面是程序片断,其中Raw为IP(byte[])包,enumType=enumEncode.enumUTF8。
源码下载
public string MakeMSNContent(byte[] Raw , enumEncode enumType)
{
//从0x28位置开始搜索 OD OA OD OA的位置,把之后的内容转换成正文
string strMSNContent = "";
if (Raw.Length > 40)
{
for (int i = 40; i < Raw.Length - 4; i++)
{
if (Raw[i] == 0x0d && Raw[i + 1] == 0x0a && Raw[i + 2] == 0x0d && Raw[i + 3] == 0x0a && i != Raw.Length - 4)
{
switch (enumType)
{
case enumEncode.enumUTF8:
strMSNContent = System.Text.Encoding.UTF8.GetString(Raw, i + 4, Raw.Length - i - 4).Trim();
break;
case enumEncode.enumUnicode:
strMSNContent = System.Text.Encoding.Unicode.GetString(Raw, i + 4, Raw.Length - i - 4).Trim();
break;
default:
strMSNContent = System.Text.Encoding.Default.GetString(Raw, i + 4, Raw.Length - i - 4).Trim();
break;
}
if (strMSNContent.Length > 0 && strMSNContent[0] == 0x0) strMSNContent = "";
break;
}
}
}
return strMSNContent;
}