C#實現盛大盛付通充值卡狀態查詢


今天有這樣一需求,要求能夠查詢盛付通卡的狀態,官網如下 http://www.801335.com/status/index.htm

剛一打開網址,發現兩個輸入框加一個驗證碼,心中一喜不是小  case 驗證碼沒有粘貼也沒怎么變形手到擒來,三五兩下識別做完了  正確率還不錯,90+%..

驗證碼做發了,開始抓包,一下就懵了,發現他的數據好像被加密了,先上一張圖

回過頭來后,仔細看了下他的界面,發現了貓膩,他卡號和密碼輸入的地方是 flash  UesTextInput-1.4.swf 文件名是這個,再看了看,他的  JS代碼發現關鍵的幾行

// 獲取加密Key
var encryptedKey = document.getElementById(swfObjId).GetKey($("#base64Cert").val());
$("#"+keyEleId).val(encryptedKey);
// 獲取加密數據
var encryptedData = document.getElementById(swfObjId).GetValue();
$("#"+dataEleId).val(encryptedData);

原來,他是通過  flash把輸入的文本加密后再賦值給 input 輸入框. 即然知道他的現實,我馬上就有思路了

方案一

C# 調用  flash 的Com組件來實現,通過模擬鍵盤來輸入卡號和密碼來實現加密並批量查.  具體的實現這里不講了,

程序是跑起來了,但是發現一個問題.在多線程的情況下,flash加密存在一個問題,不能同步,沒辦法,你不同步我給你同步吧,加了一個同步機制,可以了沒問題了  一是一 二是二,但是同步后,查詢的速度下來了,差不多  1-2秒才能查一張卡,奶奶的受不了,還不如我手工查得快,沒辦法是 革命沒有成功,還是繼續

 

方案二

你不是用的flash加密嗎 你加密碼再厲害還不是在客戶端完成的,只要是在客戶端完成的 我就不信我拿你沒辦法,呵呵,  經過幾年的開發積累,什么都沒有,有的就是積累的小工具, 

flash是吧,把我N年前有的 閃客精靈用上試下

 

比較古老的一個版本,沒關系,只要能派上有場就行....

 

歐啦 ,什么出來了,現在要做的  就是  A3代碼轉成我們可愛 C#代碼,就一切搞定了

其實需要重寫的方法也只有兩個,剛才在上面就是JS調的那兩個

 

GetKey GetValue 就這兩個,重寫的代碼就不貼了,最后再上張軟件的效果圖

開  10個線程,速度杠杠的.............

 

--幸福海

博客地址:http://www.cnblogs.com/ningqhai/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM