找回密码
 注册
搜索
查看: 2262|回复: 19

离开好几年了 给现在还在奋斗的童鞋们一点福利

[复制链接]
门派:不明
发表于 2014-11-18 14:14:51 | 显示全部楼层 |阅读模式
书剑的LostLetter是一个让很多人很纠结的事情,无数人想做但是又没时间,现在给大家提供一个做LostLetter的思路。
1.验证码图片下载  这个很多人都做到了 无非就是模拟登陆论坛 查看验证码图片和下载
2.图片识别  因为书剑的验证码都是汉字 机器识别难度较高 但是如今有很多现成的打码平台 可以介入一个打码平台进行识别 以目前的收费方案来说 一个号一天大概几块钱
3.识别内容回传MUD  以前我是取得识别内容后存入文件 由ZMUD来取得 现在想想 可以通过系统API模拟键盘事件回填ZMUD
稍后发布部分源代码
门派:不明
发表于 2014-11-18 14:39:49 | 显示全部楼层
思路不错啊,很有想法
门派:不明
发表于 2014-11-18 14:47:16 | 显示全部楼层
高手出现啦!!!!!!!!!
门派:不明
发表于 2014-11-18 20:12:36 | 显示全部楼层
呃 对于我等robot残废来说,简直是看天书一样。
门派:不明
发表于 2014-11-18 22:34:06 | 显示全部楼层
啥意思。。。。。。。
门派:不明
发表于 2014-11-18 22:44:45 | 显示全部楼层
nice,感谢分享。正愁没人教呢
门派:不明
 楼主| 发表于 2014-11-19 09:29:18 | 显示全部楼层
  1. public static bool Login(string uid, string passwd)
  2.         {
  3.             try
  4.             {
  5.                 string formHash = GetFormHash();
  6.                 thash = formHash;
  7.                 HttpWebRequest request = CreateHttpWebRequest(string.Format(Const.LoginUrl, formHash, uid, passwd));
  8.                 request.Referer = "http://www.sjever.net/bbs/forum.php";
  9.                 request.CookieContainer = finalcontainer;
  10.                 Encoding e = Encoding.GetEncoding("GBK");
  11.                 string s = string.Format("username={0}&password={1}&quickforward=yes&handlekey=ls", uid, HttpUtility.UrlEncode(passwd, e));
  12.                 byte[] bytes = e.GetBytes(s);
  13.                 request.CookieContainer = finalcontainer;
  14.                 request.Method = "POST";
  15.                 request.ContentLength = bytes.Length;
  16.                 request.ContentType = "application/x-www-form-urlencoded";
  17.                 using (Stream stream2 = request.GetRequestStream())
  18.                 {
  19.                     stream2.Write(bytes, 0, bytes.Length);
  20.                 }
  21.                 Stream responseStream = null;
  22.                 responseStream = ((HttpWebResponse) request.GetResponse()).GetResponseStream();
  23.                 StreamReader reader = new StreamReader(responseStream, Encoding.Default);
  24.                 if (reader.ReadToEnd().IndexOf("欢迎您回来," + uid + "。现在将转入登录前页面。") > 0)
  25.                 {
  26.                     return true;
  27.                 }
  28.                 LoginOnUcCenter1();
  29.                 return false;
  30.             }
  31.             catch
  32.             {
  33.                 return false;
  34.             }
  35.         }
复制代码
登陆部分代码 因为论坛已经升级为3.2 所以部分POST参数发生了变化
门派:不明
 楼主| 发表于 2014-11-19 09:29:55 | 显示全部楼层
  1. public static HttpWebRequest CreateHttpWebRequest(string url)
  2.         {
  3.             HttpWebRequest request = (HttpWebRequest) WebRequest.Create(url);
  4.             request.Timeout = 0x6d60;
  5.             request.KeepAlive = true;
  6.             request.ContentType = "application/x-www-form-urlencoded";
  7.             request.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.2)";
  8.             request.Accept = "image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*";
  9.             request.Headers.Add("Accept-Language", "zh-cn");
  10.             request.Headers.Add("Accept-Encoding", "gzip, deflate");
  11.             return request;
  12.         }
复制代码
门派:不明
 楼主| 发表于 2014-11-19 09:31:50 | 显示全部楼层
  1. HttpWebRequest request = CreateHttpWebRequest(string.Format("http://www.sjever.net/bbs/loseletter.php?uid={0}&code={1}", Uid, Code));
  2.                 request.Timeout = 0x6d60;
  3.                 request.CookieContainer = finalcontainer;
  4.                 Console.WriteLine("正在获取验证码图片,稍候......");
  5.                 try
  6.                 {
  7.                     Stream responseStream = null;
  8.                     response = (HttpWebResponse) request.GetResponse();
  9.                     while (responseStream == null)
  10.                     {
  11.                         responseStream = response.GetResponseStream();
  12.                     }
  13.                     StreamReader reader = new StreamReader(responseStream, Encoding.Default);
  14.                     string str2 = "";
  15.                     StreamReader reader2 = new StreamReader(responseStream, Encoding.Default);
  16.                     str2 = reader.ReadToEnd();
  17.                     while (reader == null)
  18.                     {
  19.                         Console.WriteLine("获取失败,再次获取。");
  20.                         reader = new StreamReader(response.GetResponseStream(), Encoding.Default);
  21.                     }
  22.                     Console.WriteLine("图片获取完毕。");
  23.                 }
  24.                 catch (WebException)
  25.                 {
  26.                     return;
  27.                 }
复制代码
获取验证码图片部分代码
门派:不明
发表于 2014-11-19 14:19:53 | 显示全部楼层
好贴,好人,继续说明用法。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|书剑永恒MUD ( 闽ICP备14012032号|闽公网安备 35050202000162号 )

GMT+8, 2025-7-12 01:44 , Processed in 0.037742 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表