VC设置cookies实现文件刷下载量

VC设置cookies实现文件刷下载量

VC设置cookies实现文件刷下载量

分类: c/c++2013-10-11 17:22 250人阅读 评论(0) 收藏 举报

目录(?)[+]

同学XXX提问:

大家好,我们做的Android应用已经成功在中兴汇天地成功上架了,打开“中兴汇天地应用商店”http://apps.ztems.com/,搜索栏搜索“睿云”就能找到了,但是需要你注册一个应用商店的账号,完成后就可以下载了,还可以给我们评论。最简单的刷下载量请直接点击http://dl5.ztems.com/tmpfile/cst2009/2009001/appSoft/2013/10/9/ruiyun.apk(经测试可以下载,不能增加下载量)
以上两种方法均可,第一种更好,第二种也可。但是在大家空闲的时候还是推荐第一种。XXX在此谢谢各位的帮助了。

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

类似这样的app下载网站,是不会验证IP,更不会验证MAC,来实现仅仅让一个客户端下载一次.(验证IP,我们可以用代理IP来实现我们的刷下载量的目的)

模拟登录一下,看看服务器是怎样处理用户请求的.

用抓包软件监测下:

[plain] view plaincopy

  1. POST /storeUserbasicFacade/login.ssm HTTP/1.1
  2. Host: apps.ztems.com
  3. Connection: keep-alive
  4. Content-Length: 72
  5. Origin: http://apps.ztems.com
  6. User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.69 Safari/537.36
  7. Content-Type: text/plain;charset=UTF-8
  8. Accept: */*
  9. Referer: http://apps.ztems.com/newLogin.html
  10. Accept-Encoding: gzip,deflate,sdch
  11. Accept-Language: zh-CN,zh;q=0.8
  12. Cookie: JSESSIONID=811B619FA8744978B07238A82F1E6A8B.app42-1; zte_store_view=4028329f417e6dcd01419d5dafa21aa3-1131011170551%2C
  13. [{"email":"******","userPasswd":"****","checkCode":"3367"}]

http://apps.ztems.com/newLogin.html

/storeUserbasicFacade/login.ssm

这种东西由于水平有限暂时不知道如何去处理,所以就从cookies入手了.

得到了cookies我们就可以非常轻松的绕过后台登录了.

接下来用VC实现上述操作,利用win api

InternetSetCookie

Syntax

C++

BOOL InternetSetCookie(
  _In_  LPCTSTR lpszUrl,
  _In_  LPCTSTR lpszCookieName,
  _In_  LPCTSTR lpszCookieData
);

Parameters

lpszUrl [in]

Pointer to a null-terminated string that specifies the URL for which the cookie should be set.

lpszCookieName [in]

Pointer to a null-terminated string that specifies the name to be associated with the cookie data. If this parameter is NULL, no name is associated with the cookie.

lpszCookieData [in]

Pointer to the actual data to be associated with the URL.

Return value

Returns TRUE if successful, or FALSE otherwise. To get a specific error message, call GetLastError.

Remarks

Cookies created by InternetSetCookie without an expiration date are stored in memory and are available only in the same process that created them. Cookies that include an expiration date are stored in the windows\cookies directory.

Creating a new cookie might cause a dialog box to appear on the screen asking the user if they want to allow or disallow cookies from this site based on the privacy settings for the user.

Caution  InternetSetCookie will unconditionally create a cookie even if “Block all cookies” is set in Internet Explorer. This behavior can be viewed as a breach of privacy even though such cookies are not subsequently sent back to servers while the “Block all cookies” setting is active. Applications should use InternetSetCookieEx to correctly honor the user‘s privacy settings.

For more cookie internals, see http://blogs.msdn.com/ieinternals/archive/2009/08/20/WinINET-IE-Cookie-Internals-FAQ.aspx.

Like all other aspects of the WinINet API, this function cannot be safely called from within DllMain or the constructors and destructors of global objects.

Note  WinINet does not support server implementations. In addition, it should not be used from a service. For server implementations or services use Microsoft Windows HTTP Services (WinHTTP).

[cpp] view plaincopy

  1. #include <iostream>
  2. #include <cstdio>
  3. #include <afxinet.h>
  4. using namespace std;
  5. CString getHtml(CString url)
  6. {
  7. CString content;
  8. CString data;
  9. DWORD dwStatusCode;
  10. CInternetSession session(TEXT("HttpClient"));
  11. CHttpFile* pfile = (CHttpFile *)session.OpenURL(url);
  12. pfile->QueryInfoStatusCode(dwStatusCode);
  13. if(dwStatusCode == HTTP_STATUS_OK)
  14. {
  15. while (pfile->ReadString(data))
  16. {
  17. content += data;
  18. }
  19. }
  20. pfile->Close();
  21. delete pfile;
  22. session.Close();
  23. return content;
  24. }
  25. int main()
  26. {
  27. CString url = "http://apps.ztems.com/fdpc?appcode=4028329f417e6dcd01419d5dafa21aa3";
  28. InternetSetCookie(url, NULL, TEXT("JSESSIONID=811B619FA8744978B07238A82F1E6A8B.app42-1; zte_store_view=;expires=Sat,01-Jan-2014 00:00:00GMT"));
  29. getHtml(url);
  30. }
时间: 2024-10-05 05:01:51

VC设置cookies实现文件刷下载量的相关文章

django设置cookies

登录页面和首页分开 index.html: <html> <head> <title>首页</title> </head> <body> <div>这是首页,当前登录用户是:<span style="color:green">{{currentuser}}</span> </div> </body> </html> userlogin.html

VC释放EXE资源文件

原文地址:http://blog.csdn.net/wangningyu/article/details/4378378 今天有个朋友问到VC能否释放多个EXE.DLL或WAV等文件,我便做了个实例给他. (注意:以下释放资源代码是不受文件扩展名所限制的,你可以释放更多类型文件) 下面是我写了个很方面的函数给大家用! 1.工程A要释放的程序是一个简单的MessageBox,源码如下: [cpp] view plaincopyprint? #include <windows.h> int WIN

VS VC++ 设置版本号

我并不是专职的VC++的开发者,只是有时候偶尔要开发一些C++的DLL,每当要发布新版本的时候,隔得时间长一点总会忘记了在那里设置生成文件的版本号. 在这里把VC++设置的步骤记录下来,以备忘! 设置步骤 在解决方案浏览器中点开资源文件目录 双击打开*.rc文件 如果没有Version文件夹的话,就点击右键,选择“Add Resource",新建一个Version. 点开Version文件夹在的子菜单,就可以在VS编辑器中设置版本等相关的生成文件信息

VC++读取资源中文件

//查找目标资源 HRSRC hResource = FindResource(GetModuleHandle(NULL), MAKEINTRESOURCE(IDR_MAINPROG), TEXT("exe")); if(hResource) {      //加载资源      HGLOBAL hg = LoadResource(GetModuleHandle(NULL), hResource);       if(hg)       {          //锁定资源       

前台JS设置Cookies后台读取刚设置的Cookies

今天在整理代码的时候,发现以前做到一半的功能没有实现.今天完善一下,并无私的将代码分享给大家. 前台代码: 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 3 <html xmlns="http://www.w3.org/1999/xht

xcode5设置自定义*.xib文件为main interface

从xcode5/iOS SDK 7.0开始,新建Single View Application默认界面是*.storyboard文件 如果删除*.storyboard新建自定义的xib文件,然后在Project Settings里设置的Main Interface为xib文件的话,运行时会报NSNullException错误. 用以下方法修改 AppDelegate.h/AppDelegate.m两个文件就可以使用自定义的xib做Main Interface 首先Project Settings

eclipse 设置打开java文件代码自动折叠

eclipse 设置打开java文件代码自动折叠 java: windows/preference/java/editor/folding->enable folding 可以在里面设置所要折叠的内容

sqlserver2008附加sqlserver2005数据库目录出错,需要设置mdf后缀文件夹“管理员取得所有权”,并用windows管理权限登录数据库不要用sa

看来,倒霉的不是我一个啊,不过我还是发现一个问题,那就是使用了Windows身份验证,如果不使用Windows身份验证会是怎么样一个情况呢?退出SQL2012管理器,用SA重新登陆了一下,然后再执行这个附加操作,居然一下就成功了! 问题终于解决了,但是我也纳闷了,这是为什么呢?经检查,我的数据库文件原来的权限是这样的: 我有理由相信,这个是一个数据库文件的正常权限,加了everyone的所有权限控制那才不正常呢.同时MSSQL$SQLEXPRESS是留给SA登陆的SQLServer管理使用的权限

vc++基础班[21]---文件的基本操作之CFile

①.文件的创建.打开.关闭: 文件的创建.打开:CFile::Open 文件的关闭:CFile::Close CFile::modeCreate:以新建方式打开,如果文件不存在,则新建:如果文件已存在,把该文件长度置零,即清除文件原有内容: CFile::modeNoTruncate:以追加方式打开,如果文件存在,打开并且不将文件长度置零,如果文件不存在,会抛出异常. 一般与CFile::modeCreate一起使用,则文件不存在时,新建一个文件:存在就进行追加操作: CFile::modeRe