周克的技术Blog

在.Net的海洋里面寻找真我

感情 程序 祭

感觉自己也快成了标题党,起了个这么吓人的名字,发一个以前写的小程序,同时也算是自己以前一段感情的一篇祭文,谁让俺是程序员呢,写祭文都要写得这么有社会主义特色。

她是我的一个师妹,几年前大家都在深圳,但由于各种原因也没有太多的接触,说句老实话本来对她就挺有好感的,可是后来她回南京了,结果大家天各一方。她也是一个很有才的mm,经常搞些古灵精怪的东西出来,比如有一次她让我测一下我对她的了解有多少,给了我一个网址:http://www.testren.com/mylist.aspx?userid=2656967(提醒一下各位gg,这是我自己的,她的没有经过她同意我也不可能放上来,对这篇文章里面技术感兴趣的TX也可以自己申请一个玩玩)。看看这个网站就知道了,它的创意主要就是给用户自己在上面出一些题目,然后发给自己的亲戚朋友姨妈姑爹,测一下对自己的了解程度有多少,后来还增加了点击广告提示答案(蛮有创意的)。开始我也觉得是小女孩喜欢玩的把戏,没多大放在心上,随便测了一下得了可怜的40分。

后来也不知道怎么地开始和她在网上有一搭没一搭的闲聊起来,我猜她有男朋友,当然她说没有(不过事实后来验证了我的直觉)。为了满足自己"罪恶"的偷窥欲,进一步了解她,我决定把她以前给我的测试题答案都迭代出来(嘿嘿,迭代,每个程序员都很熟悉的一个词)。

一、思路:

  1. 首先获取一下要偷窥的页面出了多少道题(总分是100分),假设所有题目的选项是A(总共ABCD四个选择),提交页面后算一下返回来的分数是多少,这个分数作为一个基准,保存在maxPoint变量里面,留给下面的迭代用。
  2. 然后开始迭代,先改变一下第一道题目的答案,把A改成B,提交,获取新的分数,如果分数大于maxPoint就说明改动的选项是正确答案,不然分数怎么会增加呢,对吧?好,分数增加就把分数和答案都保留下来,作为下一轮迭代的参考基准。第1题答案迭代完了就开始迭代第2题,依此类推。最后迭代的结果就是把最高分100和对应的答案选项迭代出来了。

二、准备知识:

但是也用到了一些关于Http请求和正则的一些知识,http协议可以在网上搜一下关于孙鑫老师的HTTP协议视频教程,正则的话就不说了,网上一大把,下面要用到的工具Fiddler2自身也有个视频教程。

三、页面分析:

借助web开发居家旅行必备工具:IEDevelopToolbar、Fiddler2。

  1. 题目总数:可以通过正则表达式(\d+)、获取,匹配有多少个就有多少道题目(我的主页有20道题)

  2. 获取要提交的数据,首先我们可以手工提交两道题目,用Fiddler2分析一下提交的数据,

    作为有代表性的两道题目,我选择了第一道和最后一道,还要把答题者、email和所在地填上:

    分析Fiddler2截获的提交数据

    由于信息比较多,我把与提交请求页相关的信息截到下面这张图里

         

    重要的信息都标注出来了,说明一下:

    ViewState和EventValidation可以通过http://www.testren.com/mylist.aspx?userid=2656967的请求页返回的html页面分析通过正则id=\"__VIEWSTATE\" value=\"(?<VIEWSTATE>.*?)\"和id=\"__EVENTVALIDATION\" value=\"(?<EVENTVALIDATION>.*?)\"获得,答案部分就需要我们自己去根据迭代的内容添加进去了,如果有20道题就要添加20个,相关的input标签的name可以参照上面用红色圈起来的部分,第1题的序号是从102开始,最后一题是102+19=121。其他的提交信息简单的处理办法就是照猫画虎,有样学样附加进去就得了。

    顺便用IEDeveloperToolbar确定一下,我们要找的ctl00$ctl00$ctl00$MainContent$MainBodyContent$MainBodyContent$mylist$ctl21$selectRBL的位置(4个选项的name都是它,值就是1或者2,3,4),很稀饭IEDeveloperToolbar的这个Select Element by Click功能,给大家推荐一下。

    最后把返回页面里面的得分通过正则(\d{1,3})分过滤出来就可以了。

四、代码:

界面比较简单,提交后要过一会才能显示答案,另外有一点不好,就是网站会记录下你的迭代过程,其实作弊还是可以看得出来的)。

另外一个比较重要的地方是为了保存一个统一的访问session,我们必须使用 CookieContainer cookie = new CookieContainer();来装载第一次访问产生的cookie,同时每次请求的时候都要附上这个CookieContainer

Code

 

相关代码下载

最后借助这个小工具把mm的题目答案都弄下来了,假装不经意的告诉她的时候,收到两个字答复,乖乖!(相信在南京呆过的人都会会心一笑)。估计有人会8一下问我后来怎么样了,后来只能说无疾而终,据说她和男朋友去了距离天堂最近的地方巴厘岛旅游后就分手了。呵呵,如果是你的话会继续追她吗?感情真的是一种很奇怪的东东~~

ps:如果你也有和技术有关的感情故事,欢迎你也来晒一下啊 呵呵

一蓑烟雨任平生

posted on 2008-01-03 03:36 周克 阅读(2975) 评论(43)  编辑 收藏 网摘 所属分类: WebForm

Feedback

#1楼 2008-01-03 04:08 sban      

不错   回复  引用  查看    

#2楼 2008-01-03 04:08 怪怪(未登录)[未注册用户]

你, 你, 你真行...   回复  引用    

#3楼[楼主] 2008-01-03 04:21 周克      

@怪怪(未登录)
还没睡啊
  回复  引用  查看    

#4楼 2008-01-03 04:24 怪怪(未登录)[未注册用户]

嗯, 赶了会儿工, 抽点时间出来游荡一下, 看看最近有什么值得一学的东西.   回复  引用    

#5楼 2008-01-03 08:21 兰亭      

都说黑色背景对眼睛好,我怎么觉得看得那么累呢?尤其是下面的评论,看来真是人老眼花了-_-   回复  引用  查看    

#6楼 2008-01-03 08:22 兰亭      

不过文章写得确实好,赞一个^-^

嘿嘿,学以致用
  回复  引用  查看    

#7楼 2008-01-03 08:34 阿不      

呵呵,学以致用啊。   回复  引用  查看    

#8楼 2008-01-03 08:34 阿不      

@兰亭
我们想到同一个词了,我可以没有看到你的。发完才看到你也跟我写得一样的词,词气词都差不多
  回复  引用  查看    

#9楼 2008-01-03 08:35 大石头      

楼主倒是非常有创意   回复  引用  查看    

#10楼 2008-01-03 08:42 zhouyou96      

有点意思   回复  引用  查看    

#11楼 2008-01-03 09:00 巫云      

后来,我终于学会了如何去爱,可是你,已经远去消失在人海。   回复  引用  查看    

#12楼 2008-01-03 09:03 真吓人[未注册用户]

当时大概把MM吓得半死,

乖乖。
  回复  引用    

#13楼 2008-01-03 09:10 预备役中尉      

乖乖,好熟悉的啊.其实我也很郁闷.感情是个什么东西.   回复  引用  查看    

#14楼 2008-01-03 09:18 Mekk[未注册用户]

不错不错   回复  引用    

#15楼 2008-01-03 09:23 蛙蛙池塘      

牛,有创意   回复  引用  查看    

#16楼 2008-01-03 09:35 Clark Zheng      

这个,这个,厉害   回复  引用  查看    

#17楼 2008-01-03 09:59 Solog      

8错8错,赞个,呵呵   回复  引用  查看    

#18楼[楼主] 2008-01-03 10:15 周克      

@兰亭
开始我也不习惯,多看看就习惯,感觉这个皮肤还行
  回复  引用  查看    

#19楼[楼主] 2008-01-03 10:16 周克      

@阿不
哈哈 人有多大胆 地有多大产
  回复  引用  查看    

#20楼 2008-01-03 12:46 Yoshow      

你太牛逼了 佩服啊   回复  引用  查看    

#21楼 2008-01-03 13:04 egmkang      

不错不错
就是能不能把这个字体的颜色改一下,稍微再亮一些的.要不然看起来真得挺费劲的.
  回复  引用  查看    

#22楼 2008-01-03 13:17 Justin      

这个背景太累眼了,若不是lz文章太好,我估计看一会儿就放弃了。   回复  引用  查看    

#23楼 2008-01-03 13:27 杨正祎      

乖乖,楼主追女孩子还真有一手。   回复  引用  查看    

#24楼 2008-01-03 14:03 Enzo      

记得这个网站是一个参加“赢在中国”还是什么节目的人做的项目。这个网站刚推出流量就往上直飚,不过不知道现在访问量如何?   回复  引用  查看    

#25楼 2008-01-03 14:12 AndyFish      

乖乖,LZ牛人也   回复  引用  查看    

#26楼[楼主] 2008-01-03 15:39 周克      

改背景了,虽然很稀饭变形金刚   回复  引用  查看    

#27楼 2008-01-03 16:20 Leem      

小Y头想法到是蛮多的,女人太聪明了反而也不好,是我的话就不会去追这样的女孩.可能不太了解.   回复  引用  查看    

#28楼 2008-01-03 16:46 破曉之陽      

分手了的,別追。   回复  引用  查看    

#29楼 2008-01-03 18:29 静旅      

测试了一下,好象不准,是不是逻辑出了点问题。。
才65分。。
  回复  引用  查看    

#30楼 2008-01-03 19:25 K'[未注册用户]

请问楼主,你的那两个IEDevelopToolbar Fiddler2 能否给发个到我邮箱里?
我到处都找不到。谢谢
  回复  引用    

#31楼 2008-01-03 19:52 hnboy2005[未注册用户]

哈哈 好玩   回复  引用    

#32楼 2008-01-03 20:17 Blue Sky      

牛!!!!   回复  引用  查看    

#33楼[楼主] 2008-01-03 20:58 周克      

@静旅
不好意思 更正过来了,原来这句
if (temp < 10)
{
pattern = HttpUtility.UrlEncode("$ctl0" + temp + "$selectRBL") + "=";
}
的selectRBL后面多了个等号,去掉就好了
  回复  引用  查看    

#34楼 2008-01-03 22:03 风过 无痕      

太有才了。
我前前后后看了几遍,准备写篇类似的论文出来。呵呵
  回复  引用  查看    

#35楼 2008-01-04 00:49 蜡人张      

8错!   回复  引用  查看    

#36楼 2008-01-04 21:28 cfans      

我追我女朋友的时候做了我第一个个人网站(topic: cfans & sing)。后来因此学习了asp脚本,再后来是asp.net开发。也算因此搞上技术了。
只可惜,我们分手了。不过我和她都算深圳人,都在深圳。
  回复  引用  查看    

#37楼[楼主] 2008-01-04 22:01 周克      

@cfans
看得出来 你当初挺痛苦的 你和我一个同事一样为了追mm在大学的时候帮人家狂做网站
  回复  引用  查看    

#38楼 2008-01-05 11:58 何广      

有意思!赫赫   回复  引用  查看    

#39楼 2008-01-06 00:07 郁闷的mm[未注册用户]

竟然以此为生日礼物, 晕死!
还有, 楼主直觉太烂了~~
  回复  引用    

#40楼[楼主] 2008-01-06 00:37 周克      

不要小看这份生日礼物,花了我不少时间和心血写的,大小姐   回复  引用  查看    

#41楼 2008-03-12 15:31 THIN      

原来你那时搞这个是为了追
MM啊
  回复  引用  查看    

#42楼 2008-06-13 10:20 武广敬      

周老师......用心良苦!!!!! 服你了   回复  引用  查看    

#43楼 2009-01-23 22:51 小平在线      

奔驰也疯狂啊。   回复  引用  查看    





发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 1023887




相关文章:

相关链接: