惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Simon Willison's Weblog
Simon Willison's Weblog
P
Privacy International News Feed
www.infosecurity-magazine.com
www.infosecurity-magazine.com
T
Troy Hunt's Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
Attack and Defense Labs
Attack and Defense Labs
S
Secure Thoughts
V2EX - 技术
V2EX - 技术
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
O
OpenAI News
Cloudbric
Cloudbric
Google Online Security Blog
Google Online Security Blog
Schneier on Security
Schneier on Security
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Help Net Security
Help Net Security
Cyberwarzone
Cyberwarzone
G
GRAHAM CLULEY
L
Lohrmann on Cybersecurity
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Spread Privacy
Spread Privacy
NISL@THU
NISL@THU
N
News and Events Feed by Topic
T
Tenable Blog
S
Security @ Cisco Blogs
N
News and Events Feed by Topic
The Hacker News
The Hacker News
C
CXSECURITY Database RSS Feed - CXSecurity.com
宝玉的分享
宝玉的分享
月光博客
月光博客
酷 壳 – CoolShell
酷 壳 – CoolShell
美团技术团队
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google DeepMind News
Google DeepMind News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tailwind CSS Blog
V
Visual Studio Blog
P
Proofpoint News Feed
Webroot Blog
Webroot Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 三生石上(FineUI控件)
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Jina AI
Jina AI
雷峰网
雷峰网
T
The Blog of Author Tim Ferriss
Hugging Face - Blog
Hugging Face - Blog
腾讯CDC
L
LangChain Blog
The Register - Security
The Register - Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 聂微东

博客园 - Enhydraboy

[ZT]MSN Messenger的口令获取源代码, MSNMessenger的口令是经过DPAPI加密后保存在注册表中 ADO Connection Strings[转贴] 农民造“飞碟”后记 Tomcat's Thread Pool Source(BT) - Enhydraboy 使用 jakata DBCP package 作 DB Connection pooling[ZT] 数据类型的不匹配可能会导致索引失效 msnlib中的MimeMessage.parse代码需要修改 我的MSN机器人终于有了自己的头像 Field6的类型说明 MSN协议中关于Send DP的研究 搞懂了MSN协议中的client id是怎么得到的 Java正则表达式详解[转载] MSN P2P资料转载 MSNP10中修改自己的FRIENDLY NAME改成了RPR命令 msp10协议中的SYN好像发生了变化 准备让MSN机器人可以显示头像 jMSN开发指南 我自己的msn机器人诞生了 中国足球进步了
MSN协议中的msnobj浅析
Enhydraboy · 2004-06-23 · via 博客园 - Enhydraboy

在MSN Messenger通讯中,都会看到关于msnobj的信息
如:
>>CHG 140 NLN 805306468 %3Cmsnobj%20Creator%3D%22xxxx%40hotmail.com%22%20Size%3D%2233630%22%20Type%3D%223%22%20Location%3D%22TFR7.dat%22%20Friendly%3D%22AAA%3D%22%20SHA1D%3D%22fUp1qsbEAHWV3IFgjMglKlT%2FC5k%3D%22%20SHA1C%3D%22b%2BF7JnnL2K5ysdNzW727SjSJKoQ%3D%22%2F%3E

后面那串urlencode过的部分,其实就是msnobj。
我们用urldecode以后,就可以看到真实的内容。
<msnobj Creator="xxxxx@citiz.net" Size="24588" Type="3" Location="TFR73.dat" Friendly="AAA=" SHA1D="Tf/ZG8+rFqIK3YMrvo2dzq0afgs=" SHA1C="pIz9DyWNXhtdDw5pd/QTkcBw99I="/>

msnobj中有些元素,大家一看就明白是怎么回事了。
size是指文件大小,location就是文件名,friendly是固定的,我也在研究中。
type是一个类型说明,3就是头像,其他可能代表了emotion等等,sha1d,sha1c接下来会说明。
对方的MSN Messenger获得了你的<msnobj>后,就知道,你的msn的头像信息,就会发起一个p2p的请求。

sha1d是对于你这个文件的数字摘要,把TFR73.dat这个文件所有的字节读入,然后进行sha-1算法的运算,获得一个20字节流,再用base64进行加码获得的。
sha1c是对于msnobj各项元素串进行数字摘要的结果。

根据这个原理,我们就可以很容易编程实现sha1d,sha1c。
try{
//get an object of SHA-1
java.security.MessageDigest alga=java.security.MessageDigest.getInstance("SHA-1");

//read file byte stream
File f=new File("TFR73.png");
int len=(int)f.length();
FileInputStream fi=new FileInputStream(f);

byte[] buf=new byte[len];
fi.read(buf);
fi.close();

//create sha1d value
alga.update(buf);
byte[] digesta=alga.digest();
String sha1d=Base64.encodeBytes(digesta);

//create sha1c value
StringBuffer sb=new StringBuffer(50);
sb.append("Creator");
sb.append("enhydraboy_robot01@citiz.net");
sb.append("Size");
sb.append(len);
sb.append("Type");
sb.append(3);
sb.append("Location");
sb.append("TFR73.dat");
sb.append("Friendly");
sb.append("AAA=");
sb.append("SHA1D");
sb.append(sha1d);

alga.update(sb.toString().getBytes());
digesta=alga.digest();
String sha1c=Base64.encodeBytes(digesta);
System.out.println("SHA1D=\""+sha1d+"\"");
System.out.println("SHA1C=\""+sha1c+"\"");

}catch(Exception e){
e.printStackTrace();
}

结果如下:
SHA1D="Tf/ZG8+rFqIK3YMrvo2dzq0afgs="
SHA1C="pIz9DyWNXhtdDw5pd/QTkcBw99I="