今天有这样一需求,要求能够查询盛付通卡的状态,官网如下 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/

C#实现盛大盛付通充值卡状态查询的更多相关文章

  1. java基础:学员状态查询

    package kaoshi; /* * 学员状态查询 * @作者:向往的生活 * @时间:2017.3.7 */ import java.util.Scanner; public class Stu ...

  2. Oracle数据库的状态查询

    本文来源:huang_xw 的<Oracle数据库的状态查询> 1 状态查询 启动状态 SQL语句 结果 nomount select status from v$instance; ST ...

  3. (七)Activiti之历史活动查询和历史任务查询和流程状态查询

    一.历史活动查询 本章案例是基于上一章节案例的基础上,流程走完后进行测试的,也就是下图的流程从学生请假到班主任审批都已经完成,本章用来测试查询历史活动和历史任务的 activiti5的历史活动包括所有 ...

  4. 使用所学Spring知识,实现简易的图书查询系统功能。实现查询全部图书。 根据书籍编号查询信息。 根据书名查询书籍信息。 根据状态查询书籍信息。

    相关 知识 >>> 相关 练习 >>> 实现要求: 使用所学Spring知识,实现简易的图书查询系统功能. 要求如下: 查询全部图书. 根据书籍编号查询信息. 根据 ...

  5. 话付通SDK 聚合支付

    步骤 官网:http://www.71pay.cn/ 1.导入Jar包----将HeepayPlugin.jar,HftJuhePay.jar 包放入工程指定的libs目录. 2.配置清单文件---- ...

  6. MySQL库表状态查询

    一. 查看库的各链接状态 对于一个mysql连接或者一个线程,任何时刻都有一个状态,表示其当前正在做什么.一般使用show full processlist查看. +---------+------- ...

  7. svn在linux下的使用(svn命令行)ubuntu 删除 新增 添加 提交 状态查询 恢复

    合并步骤:(1)先切换到分支:(2)svn merge trunk . (3)svn sw trunk (4)svn merge --reintegrate branch . svn merge ht ...

  8. Linux 进程管理、系统状态查询

    1.内存给进程一段空间让他启动,让内核通过cpu来管理它. 2.ps命令查看命令信息. 用户.pid号.使用cpu.使用内存.虚拟内存.真实内存.控制台.状态.启动时间.运行时间.名 USER PID ...

  9. Oracle表空间状态查询、意义及修改方式

    查询表空间状态 select tablesapce_name,status from dba_tablespaces; 表空间的状态属性主要有在线(online),离线(offline),只读(rea ...

随机推荐

  1. maven添加docker插件无法引入,运行时报错 No plugin found for prefix 'docker'

    maven 安装不上docker插件,运行 提示:docker:bulid时No plugin found for prefix 'docker' 原因是maven不能识别 docker-maven- ...

  2. Java并发编程原理与实战十六:AQS

    一.概述 谈到并发,不得不谈ReentrantLock:而谈到ReentrantLock,不得不谈AbstractQueuedSynchronized(AQS)! 类如其名,抽象的队列式的同步器,AQ ...

  3. Table of Contents

    程序设计 Java JavaSE Apache Commons Servlet & JSP Maven JMS ActiveMQ WebService CXF Jersey HttpClien ...

  4. 你知道吗?10个精妙的 Java 编码最佳实践

    这是一个比Josh Bloch的Effective Java规则更精妙的10条Java编码实践的列表.和Josh Bloch的列表容易学习并且关注日常情况相比,这个列表将包含涉及API/SPI设计中不 ...

  5. Python练习-跨目录调用模块

    层级结构: dir1 ---hello.py dir2 ---main.py 其中,hello.py: def add(x,y): return x+y main.py如何能调用到hello.py中的 ...

  6. php中路径斜杠的应用,兼容win与linux

    更多内容推荐微信公众号,欢迎关注: PHP中斜杠的运用 兼容win和linux 使用常量:DIRECTORY_SEPARATOR如:"www".DIRECTORY_SEPARATO ...

  7. 使用vue的一些经验

    虽然说VUE是数据驱动视图的框架,但有时候不得不获取DOM来获得一些样式属性,做一些操作,这时候就需要VUE获取DOM对象的方法. vue获取DOM对象的方法: 如果是操作组件内部的DOM,可以通过给 ...

  8. plsql链接数据库配置

    一. 目录结构 D:\install\PLSQL        |-- instantclient_11_2            |-- tnsnames.ora        |-- PLSQL ...

  9. 读后感+资源-----java8函数式编程pdf

    花了两周时间工作之余抽空读完了这本书,对lamdba以及java的理解又有了一个新的认识(装个逼,哈哈) 以前看视频学习的还是太基本了,感觉读书更容易理解背后的设计思想和编程思路 这本书还是挺不错,就 ...

  10. phpStudy apache无法启动 apache启动后又停止

    一.是防火墙拦截: 二.是80端口已经被别的程序占用,如IIS,迅雷等: 三.是没有安装VC9运行库,php和apache都是VC9编译: 四.虚拟机配置路径中有中文: 五.在检测端口后强制重启 把配 ...