揭秘 微软校园品牌大使问卷上传 客户端
作为一个微软校园品牌大使,上传问卷是一个必须的工作,而上传工作又有一个专门的客户端……
然后我就对这个客户端产生了兴趣,首先,这个客户端的图标就很……
首先看下目录里面都有什么,一个db3的数据库文件,另外还有SQLite的程序集,这就表明了这数据库应该就是SQLite了吧……
以前只是在书上看过ildasm,这次我正好尝试一下……
先用ildasm打开程序,看看能找到些什么:
这么多的Form+number,哎……不管了,随便打开一个看看吧……
IL中间语言的这一个方法都10000行,真没心思看,换点别的内容吧。
还有个config文件,这么重要的文件打开看个究竟吧
这里看到了2个连接字符串,有SQLServer 和 Access 的……怎么这么乱啊,到底用的哪个数据库呢?鉴于db3的尺寸,还有可以离线登录,不支持修改密码这些特性,可以肯定的是用户名密码一定存在数据库里面。
下载一个SQLite的客户端程序,附加上数据库,总是提示那个不是正确的数据文件,是不是因为我不知道数据库的密码呢?
先不管数据库了(话说居然用的是Debug版本……)
注意config中的endpoint,这应该是WCF的服务地址吧,也就是说知道这个的具体内容就可以知道些什么了。走,去看看元数据去。
新建一个工程,随便什么类型都可以,然后添加服务引用,目的就是看看元数据是什么:
这些方法究竟是干什么的,这些类怎么会这么多……感觉好乱啊……
最恶心人的是一个有那么多String类型的方法,如果不知道具体传的什么参数,以及该怎么赋值那就不能很好的利用了。
要知道这些值怎么办呢?既然经过了网络传输,下载个抓包软件看看吧……虽然以前没有用过抓包软件,但我相信这个会给我带来些有用的结果的。
用WSExplorer,选择问卷的进程,然后输入一份问卷,保存,上传。
得到这么四条数据,那让我们详细看看WSASend这条:
好吧,这基本上就都知道了……
只是今年我们的问卷貌似没有这两道题,说明工作量减轻了,所以一份问卷才直接收益不到1.82元么?
只有SurveyName一项不知道,看了看HTTP的标头,发现这是用utf8编码的,我也就猜测这个名字也是utf8的,找到二进制的数据,自己写个小程序,用Encoding.UTF8.GetDecoder()的编码器把二进制编码,发现正好是原来的名字,这一切就都搞定了。
现在只需要盗用WCF服务即可自动上传……
不过,话说回来,虽然这个客户端略蛋疼,只用了Mac的就不能装Windows 操作系统吧……
但自己写个程序也是很难提高录入效率的……所以也就老老实实的填问卷吧……
话说如果一次上传多份问卷其实就相当都多次传1份问卷,没有什么优化的……然后据说还占用UI线程处理的……
这个,作为我博客园的第一篇随笔,就写这么多吧……