• 邮件反馈
  • 支持 TK
  • 那年今日
  • 微博

    • 看看最新
    • 那年今日
    • 随便看看
    • 过去一年
  • 文章

    • 皮相专栏
    • 百度空间
    • 焦点博客
  • 探索

    • TK猴子

  • 支持
上个页面过去一年
下个页面百度空间

点右侧微博标记去微博订阅真爱粉群👉

加入tk真爱粉群
微信公众号

皮相专栏

共 69 篇文章

老黑客的圣诞节

2020-12-25

每年圣诞节大家都有各种温馨浪漫的过节方式。其实我们黑客也有黑客的浪漫,只是一般人不容易感受到。 2014,xmas.futile.net 2014 年圣诞节的时候,如果你对 xmas.futile.net 这个域名执行 traceroute 操作,首先会看到一棵圣诞树,然后还有《Let It Snow! Let It Snow! Let It Snow!》《Jingle Bells》等几首圣诞歌曲的歌词:

图片描述 by gemini-3-flash-preview

要实现控制多行 traceroute 返回结果其实并不需要真有这么多路由,用一台配置了多个 IP 地址的服务器就可以。只要在服务器上根据收到的 traceroute 请求中的 TTL 值以相应的 IP 返回 ICMP Time Exceeded Message 报文即可。 至于控制 traceroute 返回结果中的文本内容,大家首先想到的可能是 Reverse DNS。但如果你仔细看上面图中的内容就会发现这里用的一定不是 Reverse DNS。具体是什么,留给你们琢磨。 当然,现在 xmas.futile.net 已经失效了,再去 traceroute 也看不到上面的效果。毕竟在 IPv4 下玩这个游戏需要用接近一百个 IP 地址,还是有点费钱的。不过以后想玩的话可以用 IPv6,物美价廉。 1997,nmap -sX 1997 年,nmap 发布了第一个版本。这个扫描器一诞生,就在网络上掀起了不小的风浪。因为 nmap 可以说把 TCP/IP 协议用到了极致,实现了各种奇特的扫描方式。有些方式速度非常快,有些方式可以躲过入侵检测系统,还有些方式甚至可以穿透防火墙。 这些扫描方式中有一种叫 Xmas 扫描,即“圣诞扫描”。为什么叫这个名字呢?这个问题甚至绝大部分黑客也都不知道答案。 在 RFC 1025 中,把同时设置了 SYN、FIN、PSH、URG 四个标志位的 TCP 数据包称作 Christmas Tree Packet。因为当所有标志位都设置上,就像同时点亮圣诞树上所有的灯一样。 不过 nmap 在执行圣诞扫描时只会发出设置了 FIN、PSH、URG 三个标志位的数据包,并不会加上 SYN。因为圣诞扫描的目的是为了探测端口是否开放。当请求发出,如果收到 RST 报文,该端口就被认为是关闭的;没有响应则意味着端口是开放或被过滤的。而根据 RFC 793,只有不包含 SYN,RST,或者 ACK 位的报文会导致一个 RST 返回。所以圣诞扫描的报文肯定不能加上 SYN。 圣诞扫描所发出的报文不会出现在正常通信中,所以很容易被网络安全设备检测到。而且在当前的网络环境下,这种扫描方式也很难在互联网上得到有效返回结果。所以这种技术已经基本没有实用价值。不过如果你在圣诞节这天使用圣诞扫描同时又加了 -v 参数,nmap 还是会祝你圣诞快乐: tk@Debian:~$ sudo nmap -sX -v 192.168.0.1 Starting Nmap 7.91 ( https://nmap.org ) at 2020-12-25 11:05 CST Nmap wishes you a merry Christmas!Specify -sX for Xmas Scan (https://nmap.org/book/man-port-scanning-techniques.html). Initiating Ping Scan at 11:05 Scanning 192.168.0.1 [4 ports] Completed Ping Scan at 11:05, 0.00s elapsed (1 total hosts) Initiating Parallel DNS resolutionof 1 host. at 11:05 Completed Parallel DNS resolution of 1 host. at 11:05, 0.01s elapsed Initiating XMAS Scan at 11:05 Scanning router (192.168.0.1) [1000 ports] Completed XMAS Scan at 11:06, 1.23s elapsed (1000 total ports) Nmap scan report for router (192.168.0.1) Host is up (0.0090s latency). Not shown: 997 closed ports PORT STATE SERVICE 53/tcp open|filtered domain 80/tcp open|filtered http 443/tcp open|filtered https Read data files from: /usr/bin/../share/nmap Nmap done: 1 IP address (1 host up) scanned in 1.29 seconds Raw packets sent: 1007 (40.272KB) | Rcvd: 998 (39.908KB) 1988,phillipps.c 各种编程比赛中,有一个资格很老又很另类的,叫“国际C语言混乱代码大赛 ”,International Obfuscated C Code Contest,简称 IOCCC。 IOCCC 创办于 1984 年,目标是选出最有创意且最让人难以理解的 C 语言代码。所以 IOCCC 的获奖作品大多不长,甚至只有一两行。但都非常难以阅读,源码比编译出来的二进制还难懂。 1988 年,英国的 Ian Phillipps 凭借下面这段代码获得了 IOCCC 的“最不可能成功编译奖”: main(t,_,a ) char * a; { return! 0t? t3? main(-79,-13,a+ main(-87,1-_, main(-86, 0, a+1 ) +a)): 1, t_? main( t+1, _, a ) :3, main ( -94, -27+t, a ) t == 2 ?_ 13 ? main ( 2, _+1, "%s %d %d\n" ) :9:16: t0? t-72? main( _, t, "@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l,+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){nl]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#n'wk nw' iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c ;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/") : t-50? _==*a ? putchar(31[a]): main(-65,_,a+1) : main((*a == '/') + t, _, a + 1 ) : 0t? main ( 2, 2 , "%s") :*a=='/'|| main(0, main(-61,*a, "!ek;dc i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry") ,a+1);} 这个“最不可能成功编译奖”真的实至名归,怎么看也不像是能编译通过的样子。但偏偏就可以编译。不但能编译,而且编译出来的程序执行后会打印出《圣诞节的十二天(The Twelve Days of Christmas)》这首歌的完整歌词: tk@Debian:~$ ./a.outOn the first day of Christmas my true love gave to me a partridge in a pear tree. On the second day of Christmas my true love gave to me two turtle doves and a partridge in a pear tree. On the third day of Christmas my true love gave to me three french hens, two turtle doves and a partridge in a pear tree. On the fourth day of Christmas my true love gave to me four calling birds, three french hens, two turtle doves and a partridge in a pear tree. On the fifth day of Christmas my true love gave to me five gold rings; four calling birds, three french hens, two turtle doves and a partridge in a pear tree. On the sixth day of Christmas my true love gave to me six geese a-laying, five gold rings; four calling birds, three french hens, two turtle doves and a partridge in a pear tree. On the seventh day of Christmas my true love gave to me seven swans a-swimming, six geese a-laying, five gold rings; four calling birds, three french hens, two turtle doves and a partridge in a pear tree. On the eighth day of Christmas my true love gave to me eight maids a-milking, seven swans a-swimming, six geese a-laying, five gold rings; four calling birds, three french hens, two turtle doves and a partridge in a pear tree. On the ninth day of Christmas my true love gave to me nine ladies dancing, eight maids a-milking, seven swans a-swimming, six geese a-laying, five gold rings; four calling birds, three french hens, two turtle doves and a partridge in a pear tree. On the tenth day of Christmas my true love gave to me ten lords a-leaping, nine ladies dancing, eight maids a-milking, seven swans a-swimming, six geese a-laying, five gold rings; four calling birds, three french hens, two turtle doves and a partridge in a pear tree. On the eleventh day of Christmas my true love gave to me eleven pipers piping, ten lords a-leaping, nine ladies dancing, eight maids a-milking, seven swans a-swimming, six geese a-laying, five gold rings; four calling birds, three french hens, two turtle doves and a partridge in a pear tree. On the twelfth day of Christmas my true love gave to me twelve drummers drumming, eleven pipers piping, ten lords a-leaping, nine ladies dancing, eight maids a-milking, seven swans a-swimming, six geese a-laying, five gold rings; four calling birds, three french hens, two turtle doves and a partridge in a pear tree. 《圣诞节的十二天》歌词本来就有大量重复内容,所以代码可以比打印出来的歌词还短并不奇怪。而通过简单的位移加密也很容易做到让源码里没有任何歌词的痕迹。但能够如此善于利用 C 语言的各种特性,把嵌套递归用到极致,让看起来一片混乱的代码可以正常工作,就真当得起“精妙”两个字了。 看了这段代码你应该也能想明白一个问题:为了自证清白而开放源代码只是一种姿态,因为想通过源码审计来找后门,是没那么容易的。 顺便说一句:《圣诞节的十二天》是一首非常古老的歌曲,诞生时间以追溯到 1780 年。所以歌词内容看起来非常古朴。其实念一下就明白了,这就是外国贯口。不信和西河大鼓《玲珑塔》的词对照看看: twelve drummers drumming,eleven pipers piping,ten lords a-leaping, nine ladies dancing,eight maids a-milking, seven swans a-swimming, six geese a-laying, five gold rings; four calling birds, three french hens,two turtle doves and a partridge in a pear tree. 玲珑塔,塔玲珑,玲珑宝塔十二层。十二张高桌四十八条腿,十二个和尚十二本经,十二个铙钹十二口磬,十二个木鱼十二盏灯。十二个金铃,四十八两,风儿一刮响哗愣。
阅读全文

电影《姜子牙》杂谈

2020-10-02

人物造型整体还可以。我唯一不能理解的是姜子牙小腿为什么那么细。小腿那么细,又披了一身疑似羽毛的衣服,光看下半身,以为是个鸟:

图片描述 by gemini-3-flash-preview

小九的造型是很好的,一出场就很惊艳:

图片描述 by gemini-3-flash-preview

奇幻界一直偏爱这种身世坎坷英气倔强的战斗美少女:

图片描述 by gemini-3-flash-preview

等到兜帽一摘,大家想要的娘化百里玄策也有了:

图片描述 by gemini-3-flash-preview

写故事需要才华,思考哲学也需要才华。这是两种不同的才华。而如果要写一个多少探讨点哲学的故事,就需要作者集两种才华于一身。这其实挺难的。绝大部分编剧没这个能耐。能踏踏实实把故事写好,就很了不起了。 《姜子牙》的编剧显然就想在电影里强行加一点思想内涵,于是闪着腰了。当你想讨论的问题太大,大到超过了自己的思维能力,强行“文以载道”,就会这样。 这种情况倒不是中国的特产。好莱坞这样的情况也很多。可能编剧们写了几个作品后,看着自己的文字变成了一个个亦幻亦真的世界,就容易膨胀。 当然,外因也是有的。 《封神演义》原著里指使狐妖乱商的幕后大佬是女娲。然而女娲是中华民族的创世神。把女娲写成反派这片子肯定就被毙了。所以,《姜子牙》把勾结狐妖残害苍生的锅安到了“师尊”头上。 姜子牙的师傅是元始天尊。“师尊”当然就是元始天尊。然而,当年尹志平三个字都楞改成了“甄志丙”。尹志平不过是个道士,而元始天尊乃道教三清之一。“元始天尊”这四个字当然更不能用作反派的名字。 所以,反派没名字,就叫“师尊”。 不光人名不能用,道场的名字也不能用。姜子牙那一派的道场是玉虚宫。电影就给改成了静虚宫。 电影里从头到尾都没有“师祖”,提都没提。最后几分钟在旁白里忽然就冒出了一个“师祖”,告诉观众姜子牙扳倒“师尊”是在“师祖”的支持下完成的。这一段突兀至极,可谓机械降神、倪匡附体。一个合理的推测就是旁白里这几句交代是拍完后出于某种原因加进去的。为什么加呢?因为必须加。 故事本身除了强行文以载道闪了腰之外,别的其实还行。 再就是一些配音有瑕疵。举个例子:姜子牙在归墟看到九尾杀过来,意识到负责拦截九尾的申公豹可能遭遇不测了,不由自主念了一声“申公豹”。这一声应该是下意识的低语,而电影里是大喊。给人的感觉不是看到九尾杀过来,而是看到申公豹杀过来。 画面是主要优点,但也有问题。问题不在特效。这个片子特效是非常好的。但一些人物动作做的比较尴尬。最突出的是打完九尾后,几人骑着四不像跑路时给姜子牙的特写,以及姜子牙抱着小九往归墟跑时给姜子牙的特写。这两个镜头奇怪得就像是那些为了省钱让演员自己上下晃拍出来的骑马镜头一样——然而你这是动画片啊! 电影里把打神鞭和“太公钓鱼”的鱼竿合二为一了。这个设定本身我觉得很不错。然而电影把姜子牙的武技也和鱼竿做了关联,让打神鞭的攻击方式是鱼钩带着鱼线,去缠绕拖拽对手。 于是呢,小九长得像百里玄策,姜子牙打得像百里玄策。 如果不往百里玄策上想,就更可怕了。别忘了,“太公钓鱼”用的是直钩。直钩,不就是针吗?用针线做武器的,不就是东方不败吗…… 虽然挑了这么多刺吧,但实话实说,优点还是比缺点多。我的整体评价是:问题不少,值得一看——几十块钱买张票看百里玄策娘也值啊!
阅读全文

航班奇遇之紧急出口

2020-09-26

我很少乘深航,大概有一年多没坐过了。上周偶然买了一张深航的票。 上飞机刚坐下,空姐就过来很亲切地叫了于先生。给了一条毯子,说不冷也没关系可以放在后背垫着。问我是不是自己选的这个紧急出口旁的座位,因为发现我平时一般都是坐前面某排。然后空姐又指指旁边的置物袋,说已经放好了一瓶水。我一看,瓶子上还贴了爱心小纸片,上面印着一段共克时艰之类的话。 我平时确实都习惯选前面某排的座位。这天坐紧急出口也不是为了宽敞。我娇小的身材并不需要太宽敞的空间。但手机快没电了,飞机上又不能用充电宝。我不确定这个航班的座位有没有充电口。但作为海淀区信息检索 TOP5,我知道当天执飞的机型上给保洁员准备的吸尘器电源插座就在紧急出口旁边。 但空姐的这一套贴心服务是金卡以上才有的待遇。而我只是个卑微的凤凰知音普卡会员啊! 所以我很惊诧。心想难道疫情已经导致航空公这样高强度争取乘客了吗?但看了看左右,似乎别的乘客也并没这个待遇。 不一会儿,一个光头走过来,在我旁边坐下。我发现空姐对他也很热情。送餐时,空姐问他要不要辣椒酱。他说要。空姐就说你是不是很喜欢吃。他说是的。于是空姐说一会儿如果辣椒酱没分完我拿两瓶给你带回家吃。降落前,空姐居然真送了两瓶辣椒酱过来。 于是我更惊诧了,完全想不明白为什么会这样。 飞机降落后,空姐过来解除滑梯预位。光头站起来拿行李。他的保温杯放在紧急出口的台子上。空姐为了方便操作,就把那个保温杯放到了他的座椅上。 光头看到了,极不高兴地拖长声音说了一句: “不要动我的杯 za——” 空姐赶紧解释这是为了解除滑梯预位。 这时候光头用拖得更长的声音说: “kuǒ 以喊我来 lá。就 cà là 几秒 zōng?” 我先是觉得有点不可理喻。人家空姐服务那么热情,还送辣椒酱,现在挪一下杯子就这么—— 想到这里我忽然顿悟了!刚才空姐这一套贴心服务也许就是因为航空公司考虑到总归会有些精神不正常的人选紧急出口的座位,那么稳定这些人的情绪对飞行安全就尤为重要!
阅读全文

欧洲的猫是怎么保住耳朵的?

2020-03-11

如果让你说三个法国地名,大概第一个是巴黎,后两个可能会是奥尔良和勃艮第。奥尔良是因为圣女贞德,勃艮第是因为葡萄酒。勃艮第人以前过狂欢节有两个项目,一是找个被戴了绿帽子的男人出来戏弄,二是找一只猫来活拔毛。你拔一把,我拔一把,猫叫人欢笑。 而巴黎人就简单多了,他们会把猫用布袋装了丢到火里烧。有些地方的人不用布袋,直接把猫点着了让它跑,然后一群人在后面追。还有绑到柱子上烤的、扔起来往地上摔的。相比较起来,伦敦人只是简单地把猫剃掉胡子后吊死,简直就是慈善家了。 欧洲人现在看起来非常 Love Peace,扫地恐伤蝼蚁命,爱惜飞蛾纱罩灯,跟唐僧一样。要不是看了罗伯特·达恩顿的《工人暴动:圣赛佛伦街的屠猫记》,我也很难想象中世纪的欧洲人这么爱虐猫杀猫——而且还不是为了吃,纯粹就是娱乐,当然有时候也是为了治病。 比方说你从梯子上摔下来,腿摔断了。某位祖传老西医可能会找只猫来,一刀把尾巴剁掉,然后让你拿起半截尾巴嘬血。而如果有人得了肺炎,老西医开出的药方可能会是猫耳朵血配红酒。鸡尾酒里没有鸡尾,猫耳酒里可真有猫耳。 当然,现在他们已经就不信这些了。要不然此刻欧洲的猫恐怕都在担心自己的耳朵。
阅读全文

骆宾王的蝉和康熙的蝈蝈

2020-02-07

唐高宗仪凤三年,也就是公元 678 年,骆宾王当上了侍御史。二十多年后,郗云卿奉唐中宗之命搜集骆宾王的遗文。他在《骆宾王文集序》里写道:“骆宾王仕至侍御史,后以天后即位,频贡章疏讽谏,因斯得罪。” 御史大家都听说过,“侍御史”是什么呢?侍御史是御史的子集。唐朝按管辖范围把御史分为台院、殿院、察院。台院的官叫侍御史,殿院的官叫殿中侍御史﹑察院的官叫监察御史。不少文人都当过御史,比如王维当过殿中侍御史,元稹当过监察御史。骆宾王是侍御史,职能大约类似现在的中央监察委员会委员。 “天后”是谁呢?当然是武则天。这时候武则天还没正式当皇帝,但给自己加了“天后”的尊号。有了“天后”,是不是还得有“天皇”?没错。武则天给自己弄了个“天后”,也给唐高宗弄了个“天皇”。“天后”和“天皇”一起,并称“二圣”。不过,“天皇”虽然看起来气派,但估计后来皇上们一看到这个词就想起武则天,也没人再用。 按郗云卿的说法,骆宾王是因为总写些怪话,得罪了武则天,于是被诬陷了一个贪赃罪,关进了牢里。 文王拘而演《周易》,读书人坐牢就要写点东西。骆宾王在牢里写了一首《在狱咏蝉》。这首诗写的当然很好,然而诗的序更值得一读。在这首诗的序里,骆宾王详细讲了为什么不咏蛐蛐不咏蚂蚱专门要咏蝉: “声以动容,德以象贤。故洁其身也,禀君子达人之高行;蜕其皮也,有仙都羽化之灵姿。候时而来,顺阴阳之数;应节为变,审藏用之机。有目斯开,不以道昏而昧其视;有翼自薄,不以俗厚而易其真。吟乔树之微风,韵姿天纵;饮高秋之坠露,清畏人知。” 古人没学过昆虫学,以为蝉不吃饭,就靠喝西北风喝露水过日子,所以觉得蝉是一种品行高洁的虫。同时,蝉这个东西,嗓门也很大。虞世南的咏蝉诗里说:“居高声自远,非是藉秋风”。就是说蝉的声音传的远,主要是靠自己趴树上大声疾呼,不是靠别的。 但蝉毕竟是虫,一入秋,天气一冷,就逐渐走向生命尽头,慢慢地不叫了。所以中国有个成语,叫“噤若寒蝉”;日本有个动漫,叫《寒蝉鸣泣之时》。秋风肃杀,我花开后百花杀,杀杀杀杀杀杀杀。一个虫哪儿禁得住秋去冬来四时变化。 英文“Chilling Effect”这个词如果直译就是“寒冷效应”,里面根本没提蝉。但译作“寒蝉效应”格外信达雅。一个前些天还在枝头高唱,现在只能趴树上瑟瑟发抖的怂虫形象跃然眼前。 寒蝉效应的厉害之处在于靠的不是杀虫剂,就是冷一点。秋去冬来嘛,看起来好像没什么,没怎么样,甚至很有礼貌。天冷怎么了?人家蝈蝈照样叫啊,天冷人家不也活得挺好吗? 康熙皇上就写过咏蝈蝈的诗: “秋深厌聒耳,今得锦嚢盛。经腊鸣香阁,逢春接玉笙。物微宜护惜,事渺亦均平。造化虽流转,安然比养生。” 皇上家的蝈蝈那生活条件当然是可以的。有吃有住有暖气,所以不光秋天能叫,冬天也能叫,一直能叫到第二年春。乾隆那孙子详细介绍过他爷爷养蝈蝈的事: “皇祖时,命奉宸苑使取络纬种育于暖室,盖如温花之能开腊底也。每设宴,则置绣笼中,唧唧之声不绝。遂以为例云。” 就是说康熙每次请人吃饭,就会把蝈蝈们都摆出来,让它们一起叫唤。据说这有个讲究,叫“万蝈来朝”。
阅读全文
1...891011121314