- 浏览: 2163519 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1878)
- [网站分类]ASP.NET (141)
- [网站分类]C# (80)
- [随笔分类]NET知识库 (80)
- [随笔分类]摘抄文字[非技术] (3)
- [随笔分类]养生保健 (4)
- [网站分类]读书区 (16)
- [随笔分类]赚钱 (7)
- [网站分类].NET新手区 (233)
- [随笔分类]网站 (75)
- [网站分类]企业信息化其他 (4)
- [网站分类]首页候选区 (34)
- [网站分类]转载区 (12)
- [网站分类]SQL Server (16)
- [网站分类]程序人生 (7)
- [网站分类]WinForm (2)
- [随笔分类]错误集 (12)
- [网站分类]JavaScript (3)
- [随笔分类]小说九鼎记 (69)
- [随笔分类]技术文章 (15)
- [网站分类]求职面试 (3)
- [网站分类]其他技术区 (6)
- [网站分类]非技术区 (10)
- [发布至博客园首页] (5)
- [网站分类]jQuery (6)
- [网站分类].NET精华区 (6)
- [网站分类]Html/Css (10)
- [随笔分类]加速及SEO (10)
- [网站分类]Google开发 (4)
- [随笔分类]旅游备注 (2)
- [网站分类]架构设计 (3)
- [网站分类]Linux (23)
- [随笔分类]重要注册 (3)
- [随笔分类]Linux+PHP (10)
- [网站分类]PHP (11)
- [网站分类]VS2010 (2)
- [网站分类]CLR (1)
- [网站分类]C++ (1)
- [网站分类]ASP.NET MVC (2)
- [网站分类]项目与团队管理 (1)
- [随笔分类]个人总结 (1)
- [随笔分类]问题集 (3)
- [网站分类]代码与软件发布 (1)
- [网站分类]Android开发 (1)
- [网站分类]MySQL (1)
- [网站分类]开源研究 (6)
- ddd (0)
- 好久没写blog了 (0)
- sqlserver (2)
最新评论
-
JamesLiuX:
博主,能组个队么,我是Freelancer新手。
Freelancer.com(原GAF – GetAFreelancer)帐户里的钱如何取出? -
yw10260609:
我认为在混淆前,最好把相关代码备份一下比较好,不然项目完成后, ...
DotFuscator 小记 -
日月葬花魂:
大哥 能 加我个QQ 交流一下嘛 ?51264722 我Q ...
web应用程序和Web网站区别 -
iaimg:
我想问下嵌入delphi写的程序总是出现窗体后面感觉有个主窗体 ...
C#自定义控件:WinForm将其它应用程序窗体嵌入自己内部 -
iaimg:
代码地址下不了啊!
C#自定义控件:WinForm将其它应用程序窗体嵌入自己内部
首先列举比较重要的问题在前面。
1.关于QQ密码码的加密:
2.关于登陆是否需要验证码的校验。
3. 发日志的时候g_tk参数的算法。
分析过程。
1.登陆的时候,需要先判断是否需要使用验证码。
string url = String.Format("http://ptlogin2.qq.com/check?uin={0}&appid={1}&r=0.{2}", TxtUser.Text.Trim(), "2001601", Bases.GetGuid(Bases.RandEnum.Numeric, 16));
进行Get请示,如果返回值 是1开头结果的需要验证码,如果是0开头的,是不需要验证码的。
2.有验证码的情况 ,获得验证码图片地址,同时要记录验证码的cookie,在提交的时候需要用到。
string strImageUrl = String.Format("http://captcha.qq.com/getimage?&uin={0}&vc_type={1}&aid={2}&0.{3}",TxtUser.Text.Trim(),vcCode, "2001601", Bases.GetGuid(Bases.RandEnum.Numeric, 16));
3.进行登陆,
注:u:你的QQ号, p:加密过的QQ密码,verifycode:验证码
3.1 :QQ密码的加密代码:c#版的。
public static class qqPwdEncrypt
{
/// <summary>
/// 计算网页上QQ登录时密码加密后的结果
/// </summary>
/// <param name="pwd" />QQ密码</param>
/// <param name="verifyCode" />验证码</param>
/// <returns></returns>
public static String Encrypt(string pwd, string verifyCode)
{
return (md5(md5_3(pwd).ToUpper() + verifyCode.ToUpper())).ToUpper();
}
/// <summary>
/// 计算字符串的三次MD5
/// </summary>
/// <param name="s" /></param>
/// <returns></returns>
private static String md5_3(String s)
{
System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
byte[] bytes = System.Text.Encoding.UTF8.GetBytes(s);
bytes = md5.ComputeHash(bytes);
bytes = md5.ComputeHash(bytes);
bytes = md5.ComputeHash(bytes);
md5.Clear();
string ret = "";
for (int i = 0; i < bytes.Length; i++)
{
ret += Convert.ToString(bytes[i], 16).PadLeft(2, '0');
}
return ret.PadLeft(32, '0');
}
/// <summary>
/// 计算字符串的一次MD5
/// </summary>
/// <param name="s" /></param>
/// <returns></returns>
private static String md5(String s)
{
System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
byte[] bytes = System.Text.Encoding.UTF8.GetBytes(s);
bytes = md5.ComputeHash(bytes);
md5.Clear();
string ret = "";
for (int i = 0; i < bytes.Length; i++)
{
ret += Convert.ToString(bytes[i], 16).PadLeft(2, '0');
}
return ret.PadLeft(32, '0');
}
}
3.2 关于js版的加密方法,请直接查看源代码,从QQ的页面上读取。
4.登陆成功后,开始发日志,
发日志地址:http://b.qzone.qq.com/cgi-bin/blognew/blog_add?g_tk=" + gtkValue
1:g_tk的参数如何取:
gtkValue的值是也是经过QQ加密过的
加密原理:对于登陆成功后,会在登陆成功的cookie值中有一个skey的cookie,取该cookie的值,进行循环取单字符的二进制并取左值。
找了一个获得gtkValue的js方法:【期待谁可以翻译成c#版的,因为js的方法,在c#的调用不太方便,还要引用一个dll的控件才可以。】
js方法提供如下:
function getGTK(str){
var hash = 5381;
for(var i = 0, len = str.length; i < len; ++i)
{
hash += (hash << 5) + str.charAt(i).charCodeAt();
}
return hash & 0x7fffffff;
}
通过调用些方法后,就可以获得发日志的具体地址了、
5.进行post提供要发的日志内容【注:登陆的时候,是get请求,非post请求】
前面都很顺利,到这里把我卡住了,不知道为什么提交后,没有数据返回,相对应也就是没有发布成功,也怪调试不细心。
后来发现提交的时候,会catch到 “关于“服务器提交了协议冲突. Section=ResponseStatusLine"
经常查询问题根源:【网上找的,嘿嘿】
The server committed a protocol violation. Section=ResponseHeader Detail=CR must be followed by LF 微软没有容忍不符合RFC 822中的httpHeader必须以CRLF结束的规定的服务器响应。
通过修改配置文件解决:在app.config(WinForm)或web.config(Web)文件里修改。
WinForm下的app.config默认不存在,手动在Debug文件夹所在的同级目录下新建一个XML配置文件,内容为:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.net>
<settings>
<httpWebRequest useUnsafeHeaderParsing= "true " />
</settings>
</system.net>
</configuration>
编译以后会在Debug下面自动创建一个 程序名.exe.config 的配置文件
加入以上代码就OK了。
本文以记录分析过程,并留以后查看备忘 ,如果对大家无用,请飘了。哈
关于程序文章,或收藏一般同步发到javaeye,cnblogs,
关于其它文章,一般同步发到sina,QQ空间。
发成功了。哈哈。
发表评论
-
where T:new() 是什么意思
2014-04-18 09:26 1451where T:new() 是什么意思 经常看到方法后面 ... -
好久没写blog了
2012-05-21 18:43 2好久没写blog了 -
test
2011-03-19 09:48 815testddddddddddd -
test
2011-02-23 18:03 803test -
test
2011-02-23 17:53 874test -
为啥cnblogs的数据不能导了
2011-02-23 11:03 909为啥cnblogs的数据不能导了内容 -
如何保护.net中的dll文件(防破解、反编译)
2010-07-30 00:28 1486.net是一种建立在虚拟机上执行的语言,它直接生成 MSIL ... -
提搞网站访问速度可做哪些优化
2010-08-08 15:30 1116一、 服务器优化 ... -
ASP.NET(c#)如何判断浏览器是否支持cookies
2010-07-29 09:33 1711实例代码: 下面是写cookie ... -
N点虚拟主机管理系统(For Windows2003/2008)功能及介绍
2010-04-09 11:23 2258N点虚拟主机管理系统是 ... -
使用c#+(datagrid控件)编辑xml文件
2010-04-06 09:13 1163对xml文件的记录进行删除,修改,或增加新记录。 利用了d ... -
HTTP代理模块(HTTP Proxy)
2010-04-04 10:19 3045HTTP代理模块(HTTP Proxy ... -
Error 80040154 retreiving COM Class factory
2010-03-29 09:23 22481.ask: Greetings, I have ... -
petshop4.0 详解之二(数据访问层之数据库访问设计)
2010-03-27 11:08 1066在系列一中,我从整体上分析了PetShop的架构设计,并提及了 ... -
分享十五个最佳jQuery幻灯插件和教程
2010-03-25 09:17 2005<p>在网站前端中使用jQuery库已经变得越来越 ... -
20个软件开发常用设计文档大全下载
2009-08-27 10:22 965搜集了一些软件开发的常用文档,分享给大家 总下载地址: h ... -
asp.net 在线 mp3,wma, avi
2009-09-04 13:58 9291.前台js<script type="tex ... -
sql db link string
2009-09-06 21:52 978SQL Server ODBC Standar ... -
ASP.Net2.0小技巧 保持滚动条的位置 焦点移动到某个控件 $符号轻松的使用FindControl
2009-09-11 11:05 1293您可能不知道的ASP.Net2.0 ... -
总结@ 在C# 中的用法
2009-09-11 12:00 840总结@ 在C# 中的用法 一 字符串中的用法 ...
相关推荐
QQ空间日志用户采集器是一款专门针对QQ空间社交平台的工具,主要用于收集和分析特定日志的用户互动数据。这款软件的核心功能在于,通过输入一个指定的QQ空间日志URL,能够提取出在该日志中进行过点赞、转载以及留言...
为了解决这些问题,故而开发了此款软件,该软件不仅解决了上述问题,而且还支持对日志文件进行离线分析和导出备份,支持对日志内容的横向过滤和纵向过滤,且可通过ADB工具直连物理设备进行日志的监控和分析,无需...
而“取QQ空间日志”是指通过程序自动化的方式,获取特定用户或者公开的日志内容。这种功能通常需要处理网络请求、解析网页内容以及处理可能的安全问题。 易语言实现这个功能的关键在于对HTTP协议的理解和应用,因为...
为了解决这些问题,故而开发了此款软件,该软件不仅解决了上述问题,而且还支持对日志文件进行离线分析和导出备份,支持对日志内容的横向过滤和纵向过滤,且可通过ADB工具直连物理设备进行日志的监控和分析,无需...
为了解决这些问题,故而开发了此款软件,该软件不仅解决了上述问题,而且还支持对日志文件进行离线分析和导出备份,支持对日志内容的横向过滤和纵向过滤,且可通过ADB工具直连物理设备进行日志的监控和分析,无需...
为了解决这些问题,故而开发了此款软件,该软件不仅解决了上述问题,而且还支持对日志文件进行离线分析和导出备份,支持对日志内容的横向过滤和纵向过滤,且可通过ADB工具直连物理设备进行日志的监控和分析,无需...
5. **日志记录**:记录所有交互过程,方便后期分析和优化机器人的行为。 6. **扩展功能**:可通过插件或模块化设计,扩展更多实用功能,如定时任务、自动拉人、禁言管理等。 在这个名为"EQ V1.1(QQ机器人)"的压缩包...
### D1S3 - 智通运维及海量日志分析 #### 智能运维概念与发展 在当今数字化时代,随着IT系统复杂性的增加,传统的运维方式已难以满足高效管理的需求。因此,“智能运维”(AIOps,Algorithmic IT Operation)作为...
总的来说,"取QQ空间日志.rar"的源码分析和学习可以涵盖网络编程基础、网页抓取技术、HTML解析、模拟登录以及易语言的GUI编程等多个方面,对于提升编程技能,尤其是中文编程的理解具有很大帮助。如果你对这些领域感...
QQ群自动客服系统是一种智能化的在线服务解决方案,它模拟了腾讯QQ客服的工作模式,能够处理大量用户咨询,实现多人自动排队等待接入的功能。这个系统旨在提高客服效率,减少人工客服的工作压力,同时保证用户得到...
QQ空间日志查看是一个工具,专门用于访问非好友的QQ空间日志。这一功能的实现涉及到网络爬虫技术、网页解析以及数据提取等多个IT领域的知识。 首先,我们要了解QQ空间的架构。QQ空间是由腾讯公司推出的一个社交网络...
通过分析和学习QQ自动登录器的源代码,初学者可以学习到C#的基本语法、Windows Forms的界面设计、网络编程的原理以及自动化操作的实现,这些都是软件开发中的重要技能。同时,了解安全性和错误处理机制也有助于提升...
### Linux网络日志分析与流量监控 #### 一、引言 随着信息技术的快速发展,网络安全已成为企业和组织关注的重点。为了确保网络安全稳定运行,对网络日志进行有效的分析和监控至关重要。《UNIX+Linux网络日志分析与...
Apache日志分析是运维人员和网站开发者日常工作中不可或缺的一部分,它可以帮助我们理解网站的访问情况,检测潜在的问题,以及优化网站性能。"天智Apache日志分析器"是一款专为这项任务设计的工具,由VC++编程语言...
这个"Python实现QQ相册自动上传照片源码"就是一个很好的例子,它利用编程技术实现了无人值守的照片上传功能,对于个人或企业来说,这可以极大地节省时间和精力。 首先,我们要了解这个项目的核心——Python编程语言...
6. **错误处理与日志记录**:为了调试和优化,程序应包含适当的错误处理机制,并记录每次尝试添加好友的结果,以便分析和改进。 7. **数据输入**:用户可能需要提供一个QQ号码列表,程序将依次处理这些号码,尝试将...
10. **日志系统**:为了便于调试和监控,程序应当有完整的日志记录系统,记录登录成功、失败以及各种异常情况,以便于分析和优化。 源码的学习可以帮助开发者了解上述技术的实际应用,理解如何实现自动化登录的流程...
"IIS日志分析归类工具"就是针对这些日志进行深度分析和整理的软件,它能够帮助管理员高效地理解和解读IIS日志数据。 这款完全免费的IIS日志分析软件具备以下几个关键功能: 1. 数据导入:工具能够导入IIS日志文件...
在Windows操作系统中,日志分析是一项关键的任务,用于诊断系统问题、排查安全事件以及优化系统性能。"windowslog"描述的可能是一个专用于处理Windows日志的软件或插件。这个工具可能具备读取、解析、筛选和报告系统...