惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

AI
AI
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Google DeepMind News
Google DeepMind News
T
Tenable Blog
博客园_首页
S
Securelist
Spread Privacy
Spread Privacy
Google Online Security Blog
Google Online Security Blog
Forbes - Security
Forbes - Security
Engineering at Meta
Engineering at Meta
U
Unit 42
L
LINUX DO - 热门话题
量子位
T
Threat Research - Cisco Blogs
博客园 - 【当耐特】
C
Cyber Attacks, Cyber Crime and Cyber Security
K
Kaspersky official blog
MyScale Blog
MyScale Blog
P
Proofpoint News Feed
The Last Watchdog
The Last Watchdog
Google DeepMind News
Google DeepMind News
GbyAI
GbyAI
Martin Fowler
Martin Fowler
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Security Latest
Security Latest
Scott Helme
Scott Helme
V
Vulnerabilities – Threatpost
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
I
InfoQ
Know Your Adversary
Know Your Adversary
Cisco Talos Blog
Cisco Talos Blog
The Register - Security
The Register - Security
T
The Blog of Author Tim Ferriss
aimingoo的专栏
aimingoo的专栏
V2EX - 技术
V2EX - 技术
T
Tailwind CSS Blog
月光博客
月光博客
Recent Announcements
Recent Announcements
G
Google Developers Blog
F
Full Disclosure
W
WeLiveSecurity
宝玉的分享
宝玉的分享
腾讯CDC
G
GRAHAM CLULEY
Vercel News
Vercel News
Simon Willison's Weblog
Simon Willison's Weblog
美团技术团队
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Help Net Security
Help Net Security

博客园 - Jailu

如何在IIS5.1/IIS6.0上使用ASP.NET URL Routing 如何在Web Form中使用URL Routing? Linq to SQLite使用笔记 Response.ContentType 详细列表 如何利用Google Code的SVN显示Html页面 Windows7下IIS7的安装及ASP配置方法 [原]分享几个日常开发中经常用到的软件 ASP.NET中Cookie问题求教 解决FF中的bug:JavaScript focus() throws "Permission denied to get property XULElement.selectedIndex" [原]请留心asp:Image控件中的ImageUrl属性 开心网辅助程序--开心网争车位助手正式发布(含源码) 开心网辅助程序开发手记(四):贴条功能+逻辑停车+简单界面 HTML:对话框插件thickbox使用技巧 - Jailu - 博客园 开心网辅助程序开发手记(二):获取好友私家车位信息 [程序收藏]把Unicode转成汉字 开心网辅助程序开发手记 原来.NET Framework 2.0也是支持母版页嵌套的 Fire event in IE & Firefox 【转】FireFox与IE开发上的一些区别
开心网辅助程序开发手记(三):实现停车功能
Jailu · 2008-12-12 · via 博客园 - Jailu

系列手记:

开心网辅助程序开发手记

开心网辅助程序开发手记(二):获取好友私家车位信息

在前面的两篇手记中,较为详细的介绍了如何借助工具对网页进行分析及如何编写代码实现一些简单的功能。如果还有后续手记,笔者将只简单记录《开心网辅助程序》开发过程中碰都的主要问题及解决方法。

在这篇手记中,笔者将简单描述如何实现简单的停车功能,并且制作一个简单的界面用于呈现系列手记的开发成果。

一、识别好友私家车位中的免费车位:把车停到免费车位中可是会分文无收到,所以千万不能把车停到免费车位上了。

  通过Firebug调试发现,当玩家点击“争车位”中部Flash中的停车按钮时,parking-7.js中第169行当parking_park方法将被执行。

Code

在parking-park中,有以上代码。其中传入参数parkid就是在《开心网辅助程序开发手记(二):获取好友私家车位信息》获取的好友私家车位信息中的parkid。对Javascript不了解到朋友看到这段代码可能会犯晕,不明白其中的含义。

    1. Javscript中的位运算符">>":关于JS中的位运算符,请参考http://www.w3school.com.cn/js/as_js_operators_bitwise.asp。其实在C#中,右移运算符也是">>"。如:67174403 >> 16 = 1025;

    2.0xff:这个其实是以16进制表达的数字,对应着十进制中的255

在程序中,笔者在ParkingInfo这个实体类中添加了一个属性IsParkFree来标志车位是否免费

Code

二、模拟停车:在识别出免费车位后,终于可以模拟停车了。

在页面上进行停车,通过Firebug,我们可以发现每次成功停车都会有两个post。一个是park.php:该Post进行停车;另一个是user.php:该post是用来更新玩家车辆停车情况的。当然,在下图中还有一个newmsg.php这个post,该post是用来检查是否有短消息的。

 

 下图是park.php的post情况截图:除了acc和verify,其他的数据都可以从之前程序中获取的JSON中取得;verify在之前的手记中也取到了,现在就差acc了。那么acc是个什么玩意儿呢?

 

 在app.php?aid=1040上,可以找到一个叫做acc()的方法,没错了,acc就是由这个方法生成的。经过几天的观察,貌似这个方法中的代码是有变化的。。。那么该如何做程序中获取acc呢?经过搜索发现,原来在.NET中也是可以执行Javascript的。下面是一篇在google上找到的参考文章:http://www.west-wind.com/WebLog/posts/10688.aspx。

其实说白了就是调用Microsoft.JScript.Vsa.VsaEngine和Microsoft.JScript.Eval来编译并执行一段JS脚本。下面是我写的测试代码:

Code

现在看来,只要能从app.php?aid=1040上分离出acc()相关的JS脚本,再调用EvalJavascript方法执行就可以了

Code

下面就是具体的停车代码(由于Response也是JSON,所以定义了一个实体ParkResult):

Code

下面是对Post Params的介绍:

1. acc:上文获取的acc

2. carid:将进行停车的汽车ID

3. first_fee_parking:玩家的first_fee_parking

4. neighbor:好友是否和玩家是邻居,该数据应来自ParkerFriendInfo

5. park_uid:好友的车库ID,来自ParkerFriendInfo

6. parkid:私家车位ID

7. verify:前文获取的verify

 下面是测试代码:

Code

点击下载示例源码