相信很多朋友都对QQ伴侣等农场外挂十分好奇吧!其实我也是,然而不幸的是很多像我一样的兄弟在模拟农场登录时,就被JS函数加密的密码字符串给挡在门外,于是百度来google去,始终没有一个完整的代码或例子。
登录时用OmniPeek捕获得到的数据包如下(QQ号1、密码123456、验证码1234):
其实QQ网页登录密码加密方式(包括空间、农场、WEB QQ等)都是一样的。
http://imgcache.qq.com/ptlogin/js/comm.js
周末自己便将腾讯JS加密文件给下载下来了。
(腾讯的JS文件居然一个回车符都没有,真够BT的!害我花了二小时才整理完毕!)
关于JS代码,我是第一次接触,于是利用自己C++的浅薄“功底”,半天时间让我去完全掌握JavaScript确实猥琐....
1、QQ网页登录密码加密(空间、农场、WEB QQ等)
参考某前辈的文档,三次MD5 + 验证码,再MD5,下面的JS文件是我整理后的:
http://hi.baidu.com/lihn1987/blog/item/7511f0d04ec109da562c846d.html
[java] view plaincopyprint?
- /* this functions used to encrypted */
- function preprocess(A)
- {
- var B="";
- B+=A.verifycode.value;
- B=B.toUpperCase();
- A.p.value=md5(md5_3(A.p.value)+B);
- return true
- }
- /* 这里测试123456 验证码 */
- function preprocess2(form)
- {
- var str="123456";
- /*form.toUpperCase();*/
- str=md5(md5_3(str)+form);
- /* alert(str); */
- return str;
- }
- function preprocess3(password,verifycode)
- {
- var str = md5(md5_3(password) + verifycode);
- /* alert(str); */
- return str;
- }
/* this functions used to encrypted */
function preprocess(A)
{
var B="";
B+=A.verifycode.value;
B=B.toUpperCase();
A.p.value=md5(md5_3(A.p.value)+B);
return true
}
/* 这里测试123456 验证码 */
function preprocess2(form)
{
var str="123456";
/*form.toUpperCase();*/
str=md5(md5_3(str)+form);
/* alert(str); */
return str;
}
function preprocess3(password,verifycode)
{
var str = md5(md5_3(password) + verifycode);
/* alert(str); */
return str;
}
2、VC如何调用JS函数
上面这些JS代码都是能在百度找到的,现在的问题就是VC里如何调用JS函数。
这个问题在我百度google许久后,始终都没有一个理想的答案,再者自己一个JS小白,要谈熟练确实不敢恭维...
至于而今水贴泛滥成灾的CSDN论坛,所以一直不喜欢在CSDN论坛提问(贴子质量有待提高)
而自己英文不好(但一直没有放弃努力地学习 ^_^),于是硬着头皮在codeproject论坛里发贴求助,终于有位美国朋友ARJ 09告诉了我VC调用JS的方法,并提供了实例代码,再此深表感激!
原贴链接地址:
http://www.codeproject.com/Messages/3238776/How-to-use-JavaScript-Functions-in-VC6.aspx
3、VC调用JavaScript函数实例代码
(需要登录)下载地址:http://www.codeproject.com/KB/COM/ScriptDemo/ScriptDemo_demo.zip
相关文档:http://www.codeproject.com/KB/COM/scriptdemo.aspx
4、程序运行截图:
演示完毕,QQ网页密码加密的问题终于搞定了!
from:
http://blog.csdn.net/wangningyu/article/details/4699619