SmartQQ 로그 인

12130 단어 qq
SmartQQ 는 텐 센트 에서 새로 나 온 WebQQ 입 니 다. 로그 인 주 소 는 다음 과 같 습 니 다. http://w.qq.com/ 현재 의 WebQQ 는 계속 사용 할 수 있 습 니 다. 로그 인 주소: http://web2.qq.com/webqq.html SmartQQ 는 이전의 WebQQ 에 비해 간단 하고 상쾌 합 니 다. 그리고 핸드폰 쪽 에서 직접 방문 할 수 있 습 니 다. 텐 센트 가 모 바 일 에서 조정 한 것 같 습 니 다. 오늘 은 SmartQQ 의 로그 인 과정 을 분석 해 드 리 겠 습 니 다.
Http 프로 토 콜 에 대해 여러분 이 아직 잘 모 르 시 면 관련 자 료 를 찾 아가 서 공부 하 셔 도 됩 니 다. 지금 우 리 는 바로 주 제 를 향 해 달 려 갑 니 다.
Http 패 킷 의 캡 처 와 분석 에 있어 서 저 는 firebug 가 자체 적 으로 가지 고 있 는 것 을 사용 합 니 다. 물론 다른 유사 한 도구 (fiddler, httpwatch, http analyzer) 등 은 모두 가능 합 니 다. 제 취향 을 보 세 요.
먼저 로그 인 에 성공 한 http 프로 토 콜 의 그림 을 캡 처 합 니 다:
玩转SmartQQ之登录_第1张图片
 
 
관찰 분석 을 통 해 전체 로그 인 과정 은 대체적으로 다음 과 같다.
1. 사용자 가 아래 그림 의 사용자 이름 에 QQ 번호 나 메 일 주 소 를 입력 하면 비동기 요청 이 발생 합 니 다. https://ssl.ptlogin2.qq.com/check?uin=34310374&appid=501004106&js_ver=10046&js_type=0
&login_sig=IV9iX*D7tkypySsivwFDX-9K7DpgiKofym0JShvCrXYmXsScMK6bHuJ-UddPD3Th
&u1=http%3A%2F%2Fw.qq.com%2Fproxy.html&r=0.6170404219718775
玩转SmartQQ之登录_第2张图片
 
이 요청 은 현재 입력 한 계 정 이 인증 코드 로 로그 인 해 야 하 는 지 확인 하 는 것 입 니 다. 그 중에서 u 라 는 매개 변 수 는 사용자 이름 입 니 다. 위 링크 에 있 는 34310374 은 제 qq 번호 입 니 다. loginsig 는 로그 인 에 사용 할 서명 입 니 다. 로그 인 할 때마다 서명 이 다 릅 니 다. 이 값 은 잠시 후에 어떻게 추출 하 는 지 말 할 것 입 니 다. 이런 매개 변 수 는 필요 한 동적 매개 변수 입 니 다. 나머지 매개 변 수 는 현재 변 하지 않 는 것 을 발 견 했 습 니 다. 물론 그 매개 변 수 는 추출 할 수 있 습 니 다. 이런 매개 변 수 를 방지 하기 위해 저 는 동적 추출 을 통 해 만전 을 기 하 겠 습 니 다.
인증 코드 가 필요 한 인자 추출 여 부 를 검사 합 니 다.
먼저 불 러 올 때 http://w.qq.com 어떤 일 을 하 는 지 살 펴 보고 소스 코드 를 살 펴 보 세 요. 그 중에서 가장 유용 한 말 은:
 

 
iframe 의 src 는 구체 적 인 로그 인 주소 입 니 다. iframe 의 src 를 통 해 우 리 는 appid (텐 센트 의 모든 웹 제품 에 유일한 appid 가 있 음), login 을 얻 을 수 있 습 니 다.state 는 로그 인 상태 입 니 다. 10 은 온라인 을 표시 합 니 다. 기본 값 은 온라인 입 니 다.
src 주소 의 소스 코드 를 계속 보 니 소스 코드 에 이러한 스 크 립 트 가 있 습 니 다.
 
//        
var g_version=encodeURIComponent("201309220930");
var g_pt_version=encodeURIComponent("10047");//     
var g_qtarget=encodeURIComponent("-1");
var isLoadVC = false;
var g_appid =encodeURIComponent("501004106");
var g_uin = 0;
var g_domain = encodeURIComponent("qq.com");
var g_target = encodeURIComponent("_self");
var g_https = true;
var g_low_login=encodeURIComponent("0");
var g_login_sig=encodeURIComponent("2mK7RUAmDy6JI3tSvPOs3PkLas*mM6g2bqffMx6dIvs11MiWf8mMDkPhm0UW3htZ"); //    
var g_daid=encodeURIComponent("164");//    id
var g_regmaster=encodeURIComponent("");//    
var g_forget="http://ptlogin2.qq.com/ptui_forgetpwd";

 우 리 는 var g 를 통 해login_sig 의 가치 loginsig。
http 의 시 뮬 레이 션 요청 을 위해 HttpWebRequest 를 사 용 했 습 니 다.(구체 적 으로 이것 을 어떻게 사용 하 는 지 는 더 이상 말 하지 않 겠 습 니 다. 저 는 HttpHelper 의 요청 류 를 봉 인 했 습 니 다. 글 의 마지막 에 이 코드 를 첨부 하 겠 습 니 다)
요청 한 결 과 는 다음 과 같 습 니 다.ptui_checkVC('0','!XLF','\x00\x00\x00\x00\x02\x0b\x88\xe6'); , 0 ,1 。 0 , , uin, 。 , :
ptui_checkVC('1','dbec74e5b7b14c2479b675c7a1b76f5b8fd594067e8fd183','\x00\x00\x00\x00\x00\x34\x3f\xdf');
이 럴 때 두 번 째 값 은 소 용이 없고 인증 코드 는 스스로 입력 해 야 한다.
 
인증 코드 가 필요 할 때 인증 코드 그림 을 추출 해 야 합 니 다.
  https://ssl.captcha.qq.com/getimage?aid=501004106&r=0.3435333&uin=34310374
 같은 매개 변 수 는 appid 와 qq 번호 가 있 습 니 다.
 첫 번 째 로그 인
 
 QQ 의 로그 인 은 두 단계 입 니 다. 다음 로그 인 요청 주 소 를 먼저 보십시오.
  https://ssl.ptlogin2.qq.com/login?u=34310374&p=0317300ACEB416A6AE3A8CADE8657BB8&verifycode=!XLF&webqq_type=10&remember_uin=1&login2qq=1&aid=501004106
&u1=http%3A%2F%2Fw.qq.com%2Fproxy.html%3Flogin2qq%3D1%26webqq_type%3D10
&h=1&ptredirect=0&ptlang=2052&daid=164&from_ui=1&pttype=1&dumy=&fp=loginerroralert&action=0-18-15313
&mibao_css=m_webqq&t=1&g=1&js_type=0&js_ver=10046&login_sig=IV9iX*D7tkypySsivwFDX-9K7DpgiKofym0JShvCrXYmXsScMK6bHuJ-UddPD3Th
 
매개 변수 분석:
u 는 qq 번호 나 메 일 주 소 를 표시 합 니 다. p 는 암호 화 된 암호 입 니 다. verify code 는 인증 코드 를 표시 합 니 다. 앞에서 인증 코드 가 필요 하 다 고 감지 되면 이 값 은 입력 한 인증 코드 입 니 다. 그렇지 않 으 면 검 측 결과 의 두 번 째 값 입 니 다.login_sig 앞에서 우 리 는 이전에 추출 했다.
http 요청 을 계속 시 뮬 레이 션 합 니 다. 로그 인 에 성공 하면 결 과 는 다음 과 같 습 니 다.ptuiCB('0','0','http://ptlogin4.web2.qq.com/check_sig?pttype=1&uin=34310374&service=login&nodirect=0 &ptsig=DhJ8N-3qER1eSKmIoHFix*0LcUQN1IqG7XASHP1RzxE_&s_url= http%3A%2F%2Fw.qq.com%2Fproxy.html%3Flogin2qq %3D1%26webqq_type%3D10&f_url=&ptlang=2052&ptredirect=100&aid=501004106&daid=164&j_later=0&low_login_hour =0&regmaster=0', '0',' !', ' '); , 302 , cookie 。 , 。  
post ,
r= {"ptwebqq":"667ca0404f9256dba6fe58dc9440733cbabcdb813dd5b2b13703b684240447bb","clientid":53999199,"psessionid":"","status":"online"} 
그 중에서 ptwebqq 는 쿠키 에서 추출 한 것 이 고 clientid 는 자신 이 만 든 8 비트 랜 덤 9 비트 숫자 입 니 다.
post 요청 결 과 는 다음 과 같 습 니 다:{"retcode":0,"result":{"uin":34310374,"cip":2084660302,"index":1075,"port":47529,"status":"online","vfwebqq" :"1571c0e077478cad6b3a36c159a1845f391ce90909f155be3022f1 c87 42b60f526354e2513105467", "psessionid":"83 68046764001d636f6e6e7365727665725f77656271714031302e3133332e34312e383400003d8800001e a00162020b88e66d 0000000a406771476958665165796d000000281571c0e077478cad6b3a36c159a1845f391ce90909f155be3022f1c8742b60f526354e2513105467" , "user_state":0,"f":0}} retcode 0 , psessionid qq , 。 ,SmartQQ , HttpWebRequest cookie , cookie , cookie , , cookie 。 다운로드 코드 클릭, ,that'all。

좋은 웹페이지 즐겨찾기