同學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來實現我們的刷下載量的目的)
模擬登錄一下,看看服務器是怎樣處理用戶請求的.
用抓包軟件監測下:
- POST /storeUserbasicFacade/login.ssm HTTP/1.1
- Host: apps.ztems.com
- Connection: keep-alive
- Content-Length: 72
- Origin: http://apps.ztems.com
- User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.69 Safari/537.36
- Content-Type: text/plain;charset=UTF-8
- Accept: */*
- Referer: http://apps.ztems.com/newLogin.html
- Accept-Encoding: gzip,deflate,sdch
- Accept-Language: zh-CN,zh;q=0.8
- Cookie: JSESSIONID=811B619FA8744978B07238A82F1E6A8B.app42-1; zte_store_view=4028329f417e6dcd01419d5dafa21aa3-1131011170551%2C
- [{"email":"******","userPasswd":"****","checkCode":"3367"}]
http://apps.ztems.com/newLogin.html
/storeUserbasicFacade/login.ssm
這種東西由於水平有限暫時不知道如何去處理,所以就從cookies入手了.
得到了cookies我們就可以非常輕鬆的繞過後臺登錄了.
接下來用VC實現上述操作,利用win api
InternetSetCookie
Syntax
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).
- #include <iostream>
- #include <cstdio>
- #include <afxinet.h>
- using namespace std;
- CString getHtml(CString url)
- {
- CString content;
- CString data;
- DWORD dwStatusCode;
- CInternetSession session(TEXT("HttpClient"));
- CHttpFile* pfile = (CHttpFile *)session.OpenURL(url);
- pfile->QueryInfoStatusCode(dwStatusCode);
- if(dwStatusCode == HTTP_STATUS_OK)
- {
- while (pfile->ReadString(data))
- {
- content += data;
- }
- }
- pfile->Close();
- delete pfile;
- session.Close();
- return content;
- }
- int main()
- {
- CString url = "http://apps.ztems.com/fdpc?appcode=4028329f417e6dcd01419d5dafa21aa3";
- InternetSetCookie(url, NULL, TEXT("JSESSIONID=811B619FA8744978B07238A82F1E6A8B.app42-1; zte_store_view=;expires=Sat,01-Jan-2014 00:00:00GMT"));
- getHtml(url);
- }