跑跑卡丁车卡密自动充值工具
主要为了实现将世纪天成卡号密码直接冲入用户帐户的功能,由于时间紧,没有使用线程,因此是采用的阻塞的方式来实现的,充值过程会造成系统假死;
验证码采用自动识别
postwww := tstringlist.Create ;
StartTag:= True;
For i:=0 To LstViewCard.Items.Count-1 do begin
if LstViewCard.Items.Checked then begin
strCard:= LstViewCard.Items.Caption;
strPass:= LstViewCard.Items.SubItems.Strings[0];
if LstViewCard.Items.SubItems.Count<2 then
LstViewCard.Items.SubItems.Add(EdtGameAccount.Text) //充值帐号
else
LstViewCard.Items.SubItems.Strings[1]:= EdtGameAccount.Text;
if LstViewCard.Items.SubItems.Count<3 then
LstViewCard.Items.SubItems.Add('开始利用该卡密进行充值...') //充值帐号
else
LstViewCard.Items.SubItems.Strings[2]:= '开始利用该卡密进行充值...';
strImgUrl:= 'http://pay.tiancity.com/Modules/Validate.aspx';
strUrl:= 'http://pay.tiancity.com/Payment/CardConfirm.aspx';
TStm := TMemoryStream.Create();
IdHTTP1.Get(strImgUrl,tstm);
strRnd := GetValidCode(TStm,1081,'POPNETSOFT-CNTLIS');//通过之前的验证码识别组件来进行识别
postwww.Text:= 'txt_userName='+ EdtGameAccount.Text
+ '&txt_userName2='+ EdtGameAccount.Text
+ '&txt_cardno='+ strCard
+ '&txt_cardpwd='+ strPass
+ '&txt_validatecode='+ strRnd
+ '&sdfdsf.x=31&sdfdsf.y=4';//要提交给充值服务器的数据
IdHTTP1.Request.Referer:= 'http://pay.tiancity.com/Payment/CardRegistration.aspx';//服务器禁止了外部提交数据,因此要模拟Referer
try
strhttp:= IdHTTP1.post(strUrl,postwww);
except
sleep(1000);
try
strhttp := IdHTTP1.post(strUrl,postwww);
except
sleep(1000);
try
strhttp := IdHTTP1.post(strUrl,postwww);
except
end;
end;
end;
strMsg:= URLDecode(MidStr(strhttp,
pos('../Modules/Message.aspx?msg=',strhttp)+ 28,
pos('" ;</script>',strhttp)-pos('../Modules/Message.aspx?msg=',strhttp)-28));//判定是否充值成功
//strRedirect:= IdHTTP1.Redirecturl;
if pos('充值成功',strMsg)>0 then begin
if LstViewCard.Items.SubItems.Count<3 then
LstViewCard.Items.SubItems.Add('冲值成功') //充值帐号
else
LstViewCard.Items.SubItems.Strings[2]:= '冲值成功:';
WriteLog('卡号:'+strCard+ ',密码:'+strPass+'对账户'+LstViewCard.Items.SubItems.Strings[1]
+ '充值成功;');
end else begin
if LstViewCard.Items.SubItems.Count<3 then
LstViewCard.Items.SubItems.Add('冲值失败,系统返回原因:'+strMsg) //充值帐号
else
LstViewCard.Items.SubItems.Strings[2]:= '冲值失败,系统返回原因:'+strMsg;
WriteLog('卡号:'+strCard+ ',密码:'+strPass+'对账户'+LstViewCard.Items.SubItems.Strings[1]
+ '充值失败;系统返回原因:'+ strMsg);
end;
Delay(1000*StrToInt(EdtSecond.Text));//这个地方是由于充值服务器禁止在几秒钟之内同时充值,其实可以通过多线程来实现,这样就不用来延迟
end;
end;
验证码采用自动识别
postwww := tstringlist.Create ;
StartTag:= True;
For i:=0 To LstViewCard.Items.Count-1 do begin
if LstViewCard.Items
strCard:= LstViewCard.Items
strPass:= LstViewCard.Items
if LstViewCard.Items
LstViewCard.Items
else
LstViewCard.Items
if LstViewCard.Items
LstViewCard.Items
else
LstViewCard.Items
strImgUrl:= 'http://pay.tiancity.com/Modules/Validate.aspx';
strUrl:= 'http://pay.tiancity.com/Payment/CardConfirm.aspx';
TStm := TMemoryStream.Create();
IdHTTP1.Get(strImgUrl,tstm);
strRnd := GetValidCode(TStm,1081,'POPNETSOFT-CNTLIS');//通过之前的验证码识别组件来进行识别
postwww.Text:= 'txt_userName='+ EdtGameAccount.Text
+ '&txt_userName2='+ EdtGameAccount.Text
+ '&txt_cardno='+ strCard
+ '&txt_cardpwd='+ strPass
+ '&txt_validatecode='+ strRnd
+ '&sdfdsf.x=31&sdfdsf.y=4';//要提交给充值服务器的数据
IdHTTP1.Request.Referer:= 'http://pay.tiancity.com/Payment/CardRegistration.aspx';//服务器禁止了外部提交数据,因此要模拟Referer
try
strhttp:= IdHTTP1.post(strUrl,postwww);
except
sleep(1000);
try
strhttp := IdHTTP1.post(strUrl,postwww);
except
sleep(1000);
try
strhttp := IdHTTP1.post(strUrl,postwww);
except
end;
end;
end;
strMsg:= URLDecode(MidStr(strhttp,
pos('../Modules/Message.aspx?msg=',strhttp)+ 28,
pos('" ;</script>',strhttp)-pos('../Modules/Message.aspx?msg=',strhttp)-28));//判定是否充值成功
//strRedirect:= IdHTTP1.Redirecturl;
if pos('充值成功',strMsg)>0 then begin
if LstViewCard.Items
LstViewCard.Items
else
LstViewCard.Items
WriteLog('卡号:'+strCard+ ',密码:'+strPass+'对账户'+LstViewCard.Items
+ '充值成功;');
end else begin
if LstViewCard.Items
LstViewCard.Items
else
LstViewCard.Items
WriteLog('卡号:'+strCard+ ',密码:'+strPass+'对账户'+LstViewCard.Items
+ '充值失败;系统返回原因:'+ strMsg);
end;
Delay(1000*StrToInt(EdtSecond.Text));//这个地方是由于充值服务器禁止在几秒钟之内同时充值,其实可以通过多线程来实现,这样就不用来延迟
end;
end;
应某些朋友需要,将编译以后的软件发布出来供大家下载研究
由于时间紧迫,程序非常简陋,但是不影响使用
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述