c#登录验证码编写代码,

  c#登录验证码编写代码,

  这两天,本来想花点时间研究一下即时通信软件空间、农场外挂,于是抓包分析一了下,只可惜,在即时通信软件网页登录时进行了加密处理,可惜我对网页编程一窍不通。有些朋友曾讲过那些是通过射流研究…代码进行加密,可惜我射流研究…也是一片空白,真是"出师未杰身先死",惭愧惭愧.

  于是只好挑程序员这类简易一些的尝试学习一下(仅供学习交流),下面是学习笔记:

  程序运行截图:

  1、本机环境:Windows XP SP3、ADSL

  2、开发工具:WildPackets OmniPeek V5.1.4

  Visual C 6.0

  IE6.0

  FlexEdit V2.3.1871

  3、数据包截图:

  (QQ登录时,在密码2222加密时卡壳了,我尝试过很多加密算法,最终以失败告终.)

  4、验证码显示使用输入流和图片来显示:

  【cpp】查看plaincopyprint?/************************************************************************//* 函数说明:获取应用程序当前目录/* 参数:无/* 返回值:返回目录路径、CString类型字符串/*作者:Koma 2009年。10 .13 11:23/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */CString C * * * Dlg:GetExePath(){ char path buf[260];int pathlen=:GetModuleFileName(NULL,pathbuf,260);//替换掉单杠while(TRUE){ if(path buf[path len-]==//)break;} path buf[path len]=0x 0;CString fname=pathbuf返回fname}

  【cpp】查看plaincopyprint?/************************************************************************//* 函数说明:下载验证码图片/* 参数:无/* 返回值:无/*作者:Koma 2009年。10 .13 11:50/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */void C * * * Dlg:down image(){ CInternetSession会话;CString结构文件*pFile,out充电缓冲器[512];CString strPath//产生八位随机数数组成验证码int nrand 1=rand()0000 10000;int nrand 2=rand()0000 10000;斯特鲁尔。格式(‘http://护照。csdn。net/showexpwd。aspx?temp=%d%d ,nRand1,n rand 2);strPath=GetExePath()//test。tmp ;pFile=会话OpenURL(strUrl);出去. Open(strPath,CFile:mode create CFile:mode write);while(pFile- Read(buff,512)){ out .写(buff,512);}出flush();出去. close();}

  【cpp】查看plaincopyprint?/************************************************************************//* 函数说明:显示验证码图片/* 参数:无/* 返回值:无/*作者:Koma 2009年。10 .13 13:12/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */void C * * * Dlg:ShowImage(){:CoInitialize(NULL);//初始化COM HRESULT HRC文件文件;CString strPathCPaintDC dc(这个);strPath=GetExePath()//test。tmp ;文件. Open(strPath,CFile:modeRead CFile:shared ynone);DWORD dwSize=file .GetLength();h全球hMem=*全球分配(GMEM _可移动,dw尺寸);LP void LP buf=:全局锁(hMem);文件ReadHuge( lpBuf,dwSize);文件. close();*全球解锁(hMem);//由h全球得到IStream,参数真实的表示释放输入流的同时,释放内存HR=:createstreamongglobal(hMem,TRUE,p stream);断言(成功(HR));hr=:OleLoadPicture(pStream,dwSize,TRUE,IID_IPicture,(LPVOID *)PP icture);ASSERT(HR==S _ OK);long nWidth,nHeight//宽高MM_HIMETRIC模式,单位是0.01毫米p图片-get _ Width(nWidth);//宽p图-get _ Height(n Height);//高CSize sz(nWidth,n height);//原大显示华盛顿HIMETRICtoDP(SZ);//转换MM_HIMETRIC模式单位为MM_TEXT像素单位pPicture- Render(dc.m_hDC,10,100,sz.cx,sz.cy,0,nHeight,nWidth,-nHeight,NULL);CRect rect(10,100,sz.cx 10,sz。cy 100);//将图片区域保存,以便后面只刷新图片区域m _ PicRect=rectif(pPicture) //释放图片指针p图-发布();if(pStream) //释放输入流指针,同时释放hMem p流-释放();* coun initialize();}

  5、经过抓包软件抓包分析得到:

  登录时邮政格式:

  _ _ _ _ _ event target=_ _ _ event arguments=/wepdwurmilymzu 0 nzzdkpfgiebmlzafn 0y xlnfgmd 2 qwbaidxychggruzxh 0 bqzlkjmilbvlvlvlvlvlvlbzgbycagmpzfib 1 zpc 2 libgvozgbbr 5 FX 0 nvbnryb 2 x mvxdwlyvbvc 3 rcynrs 2 v5x 18 wague 3 rsmdakq 1 bix 0 nvbnbnqky

  至于其他动作的话,自己抓包分析吧!

  之前看到博客园深蓝居一篇文章关于页:1写的程序员提交表单

  33 358 www。cnblogs。com/study/archive/2008/05/08/1187626超文本标记语言

  所以在前辈的基础上,我增加了你呢获取客户端密钥饼干值,下面是员额配置表代码:

  [cpp]视图plaincopyprint?请参见c * * * DLG:ont log in(){//全部:在此处添加您的控制通知处理程序代码已更新(真);如果(m_strUser).IsEmpty()) { MessageBox(用户名不能为空我的天,提示、MB _ iconerror MB _ ok(ceit *)getdlgitem(IDC _ edit _ user)-设置焦点();返回;} if( m_strPassword).IsEmpty()) { MessageBox(密码不能为空我的天,提示、MB _ icon error MB _ ok(ceit *)getdlgitem(IDC _ edit _ password)-setfocus();返回;} cstring strry { cinternetsessionchttpconnection * phttpconnect=会话gethttpconnection( passport。csdn。net ):if(phtpconnect){ chtpfile * pfile=phtpconnect-open request(chtpconnection:http _ verb _ get,_T(/UserLogin.aspx )、NULL、1、NULL、internet _ flag _ no _ cookies//获取客户端密钥饼干值第五十届会议;会话数打开网址(‘http://护照。csdn。网络/用户登录。aspx’);如果(!会话数getcokie( http://护照。csdn。网络/用户登录。aspx ,_T(ClientKey )和m _ strcookies ){ messagebox(获取饼干(饼干)时出错我的天);返回;} cstring strKey=m _ strcookiesint result=strKey .查找( ClientKey=, 0);m_strClientKey=strKey .Mid(结果10);已更新(TRUE):cstring szformdata= _ _ _ event target=_ _ _ event arguments=/view state=/wepdowullte 4 ndgzmdi 2 njcpfgifkzpmlzafn 0y xload 2 qwbaidxychgruzxh 0 bqzlkjmilbvlvlbkgzgbzgbycpfegib 1 zpc 2 libgvozbgr 5 FX 0 nvbnryb 2 x mvxdwlyvbvc 3 rcynrs 2 V5 x18 wage 3 rsmdakq 1 if(pfile){ PFIaspx http/1.1/r/n );pfile-addrequestheaders( accept:image/gif,image/x-xbitap,image/jpeg,image/pjpeg,application/x-shockwave-flash,application/vnd.ms-excel,application/vnd.ms-powerpoint,application/msword,application/QVOD,application/QVOD,*/*/r/n );pFile- AddRequestHeaders(参考:http://护照。csdn。网络/用户登录。aspx/r/n );pfile-addrequestheaders( accept-language:zh-cn/r/n );pfile-addrequestheaders( content-type:application/x-www-form-URL encoding/r/n );pfile-addrequestheaders( accept-encoding:gzip,deflate/r/n );pfile-addrequestheaders(用户代理:Mozilla/4.0(支持);msie 6.0windows nt 5.1SV 1;波图(RR:28031409:0:553822);Mozilla/4.0(支持;msie 6.0windows nt 5.1SV 1;CLR 2.0.50727网络;页:1:pfile-addrequestheader( connection:keep-alive/r/n );pfile-addrequestheaders( cache-control:no-cache/r/n );pfile-addrequestheaders(SZ formdata);pfile-send请求();//返回的html cstring s;while(pfile-read string(s))str=s;//messagebox(str);pfile-close();删除CFile文件;文件,文件. Open(Test.aspx,cfile:mode create cfile:mode write,null);文件,文件。写(str,str).get length());文件,文件flush();文件,文件. close();phttpconnect关闭():删除phttpconnect:} wchar _ t * pw char=NULL:S7-1200可编程控制器://将新浪网页UTF-8格式格式编码转换成unicode nlen 1=多重位元组ToWideChar(CP_UTF8,0,str,str).GetLength()、pWChar、0);pWChar=新建wchar _ t[nln 11];memset(pWChar,0,(nln 1 1)* sizeof(wchar _ t));多重位元组ToWideChar(CP_UTF8,0,str,str).GetLength()、pWChar、nln 1;char* pChar=NULL:S7-1200可编程控制器:nln 2=widchartombyte(CP _ ACP,0,pWChar,nlen 1,pChar,0,NULL,NULL);pChar=新坦克[nln 2 1];memet(pchar,0 . nln 2 1);widchartombyte(CP _ ACP,0,pWChar,nlen 1,pChar,nlen 2,NULL,NULL);//查找登录时服务器时返回的信息海峡。格式(" %s "," pchar ");邮箱(str);} catch(cint exception * e){ e-delete();} }

  (编程水平有限,代码也没有经过严格的测试,难免会有一些不足。请理解!)

  6.下载源代码:

  http://download.csdn.net/source/1740481

  出发地:

  http://blog.csdn.net/wangningyu/article/details/4667954

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • qq短信验证码发送失败怎么回事,qq验证码失败是怎么回事
  • ,,使用阿里大于(大鱼)平台进行发送手机验证码的流程
  • ,,SpringSceurity实现短信验证码登陆
  • android读取短信验证码,
  • android读取短信验证码,,Android使用MobSDK短信验证
  • android自动获取短信验证码功能在哪,安卓自动获取短信验证码
  • android自动获取短信验证码功能在哪,android自动获取短信验证码功能失效,Android自动获取短信验证码功能
  • android实现短信验证码自动填写功能是什么,安卓短信验证码自动填充 实现
  • android实现短信验证码自动填写功能是什么,安卓短信验证码自动填充 实现,Android实现短信验证码自动填写功能
  • android如何通过手机自动获取短信验证码信息,安卓自动获取短信验证码
  • android如何通过手机自动获取短信验证码信息,安卓自动获取短信验证码,Android如何通过手机自动获取短信验证码
  • ,,python网络爬虫实现发送短信验证码的方法
  • ,,Python实现滑块拼图验证码详解
  • ,,python3 破解 geetest(极验)的滑块验证码功能
  • 发验证码不在桌面显示,验证码能收到桌面上不显示怎么回事
  • 留言与评论(共有 条评论)
       
    验证码: