2008年12月22日
Sogou 的浏览器(2)
对啊,privoxy不是可以乱改HTTP头的么。
所以,这样配置privoxy就可以了:
首先,建立user.filter,内容:
CLIENT-HEADER-FILTER: change-host-to-intel Change the Host to Intel!
s/Host:.*/Host: www\.intel\.com/
随后,建立sogou.action,内容:
{+add-header{X-Sogou-Auth:
4D929DA9BB4DF2966799B7761245A98B/55/bad36d282a55d332}}
.*
{+add-header{X-Sogou-Domain: 24181F5B2C160409035C061D3E}}
.*
{+add-header{X-Sogou-Timestamp: 494f30c4}}
.*
{+add-header{X-Sogou-Tag: 5bccdce35ecd20cab326fb0b746cce7b}}
.*
{+client-header-filter{change-host-to-intel}}
.*
最后,在privoxy配置文件里面加上:
actionsfile sogou.action
filterfile user.filter
forward / 118.228.148.27:80
之后,把 firefox 的代理设为 privoxy ,over!
经验证,这样可以上IBM,Adobe等,应该是没问题了。
这样就的确可以在 firefox 里面上了~
接下来要考虑修改user-agent了~
PS: 修改user-agent:
在action文件里面加上:
+hide-user-agent {Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)}
就可以了……
Sogou 的浏览器
还是测试版,的确能够在教育网上外国网站。
但是这个东西是ie内核的,我这里不能用。所以只好研究一下。
先用 tcpdump 看一眼,发现是和118.228.148.27~30的几个服务器的80端口通信,于是怀疑这个东西用了个http代理。
然后用 wireshark 抓下来,果然是代理。用nmap知道,那个代理是个linux,跑着squid。
找了个包头,然后一行一行删掉,剩下不能删的:
GET http://www.intel.com/ HTTP/1.1
Host: www.intel.com
X-Sogou-Auth: 4D929DA9BB4DF2966799B7761245A98B/55/bad36d282a55d332
X-Sogou-Domain: 24181F5B2C160409035C061D3E
X-Sogou-ResponseCode: 200
X-Sogou-Tag: 5bccdce35ecd20cab326fb0b746cce7b
X-Sogou-Timestamp: 494f30c4
把第一行的GET后面的地址替换成随便什么地方,貌似都行~ 也就是说,想去哪里就去哪里。
改了 GET 后面的值,然后用 nc,验证通过。
sogou 的弱的地方,在于只检查了 Host 后面的域,目前怀疑 X-Sogou-Domain 是 Host 后面的值的某种散列。
但是 squid 依靠 GET 后面的地址确定目标地址,而且不要求和Host一致…… 这样 sogou 的检查就等于白干。
实际到firefox里面,装个 Live HTTP Headers,然后把除了 GET 之外的东西复制到点
Replay...出来的那个框里面,然后点 Replay,并且指定118.228.148.27之类的作为代理,就能够获取网页内容~
有了这样的信息,开发一个能够直接利用那个代理的浏览器应该也很容易了,只要在每个请求后面加上那堆东西就可以了……
我怀疑一个脚本就能搞定……
另外,那个 squid 好像不care cookie一类的东西,本来 intel.com 就是有 cookie 的,删了也没有关系~
所以说,sogou 太弱了……
还有,那个包是虚拟机里的xp下抓的,所以应该看不出 IP 吧~
2008年12月16日
SunBird试用
从前用KDE4,然后用着Korganizer。虽然有各种各样的bug,而且速度不快,但是既然用着KDE,顺便也就用这个。
现在不用KDE了,但是还是要因为这个启动一堆KDE的东西,很浪费。然后就考虑替代品。我对Evolution没什么好印象,想起Mozilla有个什么bird的,然后搜了一下,叫
SunBird ,于是装上试试看。
最新的是0.9,然后 BSD ports 里面只有0.7。下了个预编译的,还会crash,上网发现 PR 里面已经有 0.9 的 patch
了,下了装上。貌似启动速度挺快的,资源占用方面没什么感觉。
看上去,SunBird 比 Korganizer 简洁,界面可定制性也比 Korganizer 好。添加事件的时候,界面很简单,但是我平时用到的功能都有了。
据说 SunBird 有 Korganizer 没有的远程发布功能,反正我也用不上。
详细的评价可以看看这个: Switching to Sunbird from KOrganizer: A comparative review
总的来说,SunBird 还是挺不错的。至于不能最小化到系统托盘的问题,目前用 AllTray 这个小工具就解决了。
2008年12月15日
桌面系统
1. 一个窗口管理器。没有窗口管理器,不能切换窗口,最大最小不能,连标题栏都没了……(窗口管理器和装饰器其实是分开的,但是一般都用一套的吧……)自然不行。
2. Notification Area(就是系统右下角显示很多小图标的地方) 本来想把这个东西叫system
tray,但是看见MSDN有一篇文章说这个是错误的叫法。但是我觉得好像人人都那么叫…… 大家都听得懂不就行了么。
没有Notification Area,各种喜欢缩在托盘里的程序就不行了……
3. 程序启动器 这个其实是可选的,也就是点一下运行一个程序那种图标。没有这个,有些路径复杂的程序就麻烦了……
4. 桌面小工具 这个也可选,但是屏幕上有个地方显示时钟也是不错的,不用扭头看时间了…… 顺便还能看个CPU占用率什么的。
5. 注销/关机/重启按钮 我知道可以用命令解决问题,但是点一下解决问题不更方便么……
所以说,其实桌面系统提供的很多功能并没有什么用处,比如说,我觉得桌面上的东西我几个月就没怎么碰过……
因此可以抛弃 KDE 和 GNOME,搞一个简单,干净,漂亮的桌面环境~
具体情况,过一会儿再写…… 现在基本上已经搞出来一个了,感觉性上比KDE4也不差~
2008年11月29日
事情总是有的
但是其实还是不够用的。不要说时间多了纠集人打dota的人多了,各个部门的工作也多了起来……
本周看着一个一个任务被干掉,想看看书,结果又是一个一个任务冒出来。
现在知道把作业全堆到周末,平时看书看片打游戏,是不行的。开学几周,常常周末完不成,出去通宵,一边想周一到周五都干嘛去了。
然后就渐渐把作业往前推,一开始周五完成一门,后来周五两门,现在到了周四一门的地步。
另外,周末总是能够有很多事情在你意想不到的情况下跑出来,打乱原来的做作业时间。不论是班级活动、社团活动,还是部门工作,都有可能占用大量时光,导致坐在桌前已经十一点……
毕竟现在还是周五周六才不断电,周五周六总是会弄到很晚。
晚了就得吃东西。不吃东西,一开始会感到肚子饿,时间长了也就没感觉了。估计脂肪燃烧了,话说这样上床睡觉会感到浑身发热,估计脂肪燃烧产生的热量不少。
上两天早上洗脸,照了下镜子,发现眼镜很好地掩盖了黑眼圈…… 其实眼睛下面一圈黑的,但是平时戴着眼镜照镜子,眼镜的影子正好覆盖了黑眼圈的范围,然后就是有黑眼圈浑然不自知……
但是由于各种原因,还是不会早睡的~
2008年10月29日
又近期中
前一段时间去了GNOME Asia Summit,见到了scim的作者James Su、Funda Wang大牛等。Funda Wang的发言改变了我对翻译工作的认识,他说把翻译当作工作,而不是兴趣来做,提到了launchpad翻译的东西的糟糕的情况(貌似他说Ubuntu用的就是launchpad的翻译),我想到我从前都是凭兴趣来做,这个貌似不太符合精神~
快要期中考试了,本学期比较BT的课也就模电,复变和高微到目前为止像多元微积分和基本微积分,离散2这个事情,毕竟搞了会竞赛,图论的东西还是知道一点。但是由于数学基础不佳,碰见难题也不好对付。大物本学期乖乖地选了B,目前热学已经over了,看上去还行。
现在每天需要好好控制时间,控制看片时间0.5h~1.5h,熄灯之后学习1.5h~2h,然后上床用本。第二天早上第一节课基本上还是不上,第二节还是去的。
话说大二为什么无聊地靠点名维持人气的课变多了,首先是复变,其次是离散。
复变老师YaoGuoWu,上课还行,但是喜欢点名,而且有愈演愈烈之势。他上课上到某个时间会开始讲习题,然后问下面的同学某些小问题。一般这些问题想一下其实能够想出来,但是大部分人选择回答不知道,因为大家知道他在点名…… 有时候有人回答出来了,他还继续问…… 这充分暴露了他这样做的目的……
话说今天上课,他点了3个人之后(一般此人至少点十几个),说:"我们点一个女同学吧。…… XXX。" 结果一个男生站了起来…… 全场爆笑…… 于是,他今天只点了4个人就尴尬地收场了……
离散二的老师是ZhangXiaoPing,其实讲得挺好,也喜欢点名…… 虽然他点名也是问问题,但是需要同学给出正确答案的,每次点一个。话说上次我们班某人在睡觉,老师喊道他的名字,他噌地站起来,说:"到!"…… 老师说,你是XXX么? 他说是。老师回过头去等他回答,结果…… 他坐回座位了…… 老师又喊,"XX!",他又站起来了…… 老师说,"怎么又是你?"…………
本学期体育课又要测3k米了,今天第一次下去练,跑了6圈,碰到了NieYT…… 和他*…… 然后回来和朱大说,然后朱大说他也去了,还看见NYT了…… 我怎么就没看见他呢……
SRT项目的老师终于批准我们专心研究Android了…… 毕竟iPhone只有第三方SDK,苹果干点什么事情,就没的混了……
2008年10月18日
SRT
SRT项目第一次讨论会上,进行了分组。有Nokia手机的一伙人加入了Symbian组,有Windows CE手机的一群人加入了Windows CE组。我和另一个学长,以及某没到场的同学,分到了iPhone/Android组。
从这个分组来说,我们基本上是分到了一个没人要的组。毕竟Symbian和Windows CE发布已经很久了,这两个平台上有众多的开发人员,也有许多相关的参考书籍和文献,设计起来比较容易,而iPhone和Android毕竟是新生事物,相关资料还很少。
Android情况还算比较好,毕竟Google当初宣传Android的一大优势就是开放,因此用Android写程序自然会比较容易,也有Google的支持。
经过研究,Android的开发,其实主要就是下载安装SDK,然后装个eclipse插件,就可以开发,调试了。SDK里面带有模拟器,用起来挺方便的(虽然启动很慢……)。
我下了Linux版SDK,发现模拟器没法用。后来找到了Google公布的源代码,原来是用qemu模拟的,SDL负责显示,不过都是Google修改过的版本……
编译出来一个静态的emulator,替换掉SDK里面的,就可以正常工作了。我写了个hello world之后,就去搞iPhone去了。现在,组里那位学长已经成功写出井字棋了。
iPhone就麻烦多了。虽然Apple出了SDK,但是只能在MacOSX上跑,并且要编译出能够在iPhone上跑的程序要99美元……
幸好hacker们搞了Jailbreak,破解了iPhone的限制,是个程序经过随便什么代码签名就能跑,但是我没有Mac阿……
Hacker们也搞出了第三方的SDK,基于 llvm-gcc 和 Open Darwin CC Tools。Google Code上有个iphone-dev,就是这个东西。
照着网上的说明,我先编译出了 iphone-dev 项目的结果。但是,拿这个编译个命令行Hello World还行,编译图形界面程序,就说有东西没定义。折腾了半天,知道这个只能用于1.x版本的iPhone,2.x版本需要新的第三方SDK…… iPhone在1.x到2.x的过程中,改变了Objective C的ABI…… 编译target也从arm-apple-darwin(其实是8)变成了arm-apple-darwin9
又折腾了至少十几个小时,终于搞出了新版SDK,编译出了图形化的程序…… Apple在新系统还引入了其他限制,图形界面的程序从命令行启动会被Kill,只有从SpringBoard(iPhone的类似于桌面的系统程序)才能启动…… 仿造了一个应用程序条目之后,终于从SpringBoard启动成功,图形化的Hello World阿~
话说Apple公布的SDK还是很有帮助的,让第三方SDK编译过程简化了不少…… 但是感觉第三方程序严重受制于Apple,Apple改变一点东西,第三方程序编写者就有很多东西要改,除非加入Apple的某计划……
总之,现在在iPhone和Android上面都能写带GUI的程序了~ hacker威武~



