MENU

Tags: c#

vPilot加密配置项处理全解析

VATSIM的新连线客户端vPilot出来挺久了,我一直都没去看,Hans倒是当天就开始研究了。vPilot有一个问题,就是它是VATSIM-Only的设定,除了VATSIM的那一票服务器外其他的都不能连。在它的配置文件中,有一项是这样的:pZ9u441bE4a2NCGgqMxKNvwAIy0qEA+AwXB8c3sV90c=。它看起来是用Base64编码的字符串,但是使用Base64去解码没有效果。紧随其后的,是名为CachedServer的标签,但是它的值也和NetworkStatusURL是一样无法解码的。

我今天怀着必胜的信念尝试解决这个问题。因为没有什么顾虑,此处我将披露所有技术细节。在开始前,我可以先说明最初的思路是错误的,但是这不要紧,这些分析方法不一定不适用于所有情况。当然,也算一次有意义的尝试。

Read More

使用WinForm实现无边框窗口

虽说新项目还没有提上议程,甚至第一次策划会议也一直没有召开,但是准备工作多多少少是有一点点了。项目难度最大的,就是开发桌面应用程序。这几乎是一个大家都没有多少了解的问题,所以下手比较困难。2013年初我们从TFDi Design处采购了smartCARS,同年7月Hans使用Visual Basic .Net开发了iTracker 2.0,这大概是我们选用.Net的原因吧。

2013年底(真正的年底),我开始使用Visual Studio 2013了。与Hans,不一样的是,我使用的是C#。我长期使用各种类C的程序语言,所以C#很快就能上手了。期间写过一些测试性的东西,写过一个即时通讯(上一篇日志提到过,服务端使用PHP with Swoole Extension)。VS的控件样式实话实说是很难看的;较新的VS,提供一些Flat的属性,磕磕巴巴地出来一些效果。如下图:

当然,我要寻求更好的解决方案。我找到了一篇文章Designing GitHub for Windows。自己向来非常认同GitHub的理念,便也想使用WPF尝试尝试。尝试的过程很艰辛,毕竟接触微软家的VS才一个月,Blend更是从来没有上过手。折腾了一个晚上,最后觉得太困难,还是暂时放弃了。我将目光转向WinForm。WinForm开发难度小得多,我刚开始使用VS便能顺利写出诸如“计算器”之类的小玩意儿;此时我甚至已有使用WinForm实现无边框窗口的想法。尝试了一下,确实可以。接下来我讲一讲我的做法。

Read More