千八,千八

应刀队要求将3/17号千八徒步的功课交上,户外徒步玩起来开心,但功课做起来却相当费神费力。千八行程 03/17

为什么要取名“千八,千八”呢?首先,这是第二次徒步千八线路;再者,走过两次,还是没能完成既定线路,说起来稍有点沉重。

两次千八都没能按计划走完,原因比较复杂:1)计划本身比较激进 2)人员安排、选择 3)天气多变 4)千八线路的强度是名副其实的华东第一虐。

PART 0: 何为千八

“千八”的名称源于老狼,浙江一位致力于探路的前辈,详细内容见于:http://www.shanlu.org/thread-1296-1-1.html

PART I:前期线路规划

D1: 仁坑村(656M) - 林场 (1390M) - 凤阳山北峰(1826M) - 凤阳山南峰(1842M) - 凤阳庙/
     
龙泉山景区(1450M) - 黄茅尖主峰(1929M, GPS数据: 1932M) - 黄茅尖南二峰(1924M) -
      黄凤垟(1861M) - 麻连岱营地(1080M)
     
里程:17KM 海拔升/降:2KM/1.6KM

D2: 麻连岱(1080M) - 黄垟山(1746M) - 烧香岩(1841M) - 天堂山(1811M) - 大天堂(1838M) -
      南溪村(1105M) - 茶枚淤(1420M) - 百山祖(1856.7M) - 百山祖景区管理处(1560M)
      里程:26KM 海拔升/降:2.2KM/2.2KM

PART II:准备工作

出发前一周一直关注天气预报,周末有雨的可能性很大,预报上来看周末前肯定有雨。遂决定全队轻装,毕竟重装的话加上路滑速度肯定提不上去。但是,轻装走的话,虽然机动灵活,中间营地的选择上则又相当棘手:

  • 1, 麻连岱营地:营地在路线上,但第一天行程太短,约17KM,海拔上升2KM;第二天约26KM,上升2.2KM。
  • 2, 横溪村营地:两天行程差不多,但横溪村不在路线上,从烧香岩到横溪村要多走4KM里,海拔要损失约1KM,关键是第二天还要走回来。
  • 3, 南溪村营地:营地在线路上,不必绕路,但第一天行程太长,达31KM, 海拔上升约3.2KM。

考虑到下雨、塌方可能、包车、人员等不确定因素,周五晚上未必能休息好,在麻连岱营地扎营相对是个较好的选择。第二天走不动的队员可以做坐车直接去百山祖,剩下的队员则可以一路狂飙。

此次徒步对队员的选择也较苛刻,毕竟队伍中没有人曾走过全程,对路线都不熟悉,所以要求所有参与人员的体能、素质都不能低,必须是强驴。

参加人员(来自江浙沪三地):

杭州:天堂、刀队、小蜗牛、大力、二娘、四大、独驴、一修

苏州:玉米、缘起、丹丹

上海:罐头

刀队是最后临时加入的,他表示对我们不太放心。也正因为刀队的加入,让我们此行有了不同的玩法,收获颇多。

招集贴:http://www.outdoor2007.com/forum.php?mod=viewthread&tid=41171&extra=page%3D2

PART III: 实际行程

D0: 03/16 19:30 - 03/17 01:20 5小时40分钟
杭州黄龙体育中心出发,走杭新景-长深-S229(原S054)-安于线-乡道-均山村-左转过小桥-仁坑村

D1: 03/17 06:57 - 03/17 18:58 12小时, 里程:28.5KM 海拔上升/下降:2549M/2162M
天气晴好,最高气温有20度;晚有阵雨

06:57: 仁坑村出发
08:56: 林场
10:09: 凤阳山北峰
10:40: 凤阳山主峰,罐头和小蜗牛从凤阳主峰北面探路下降至防火道
11:30: 龙泉山景区凤阳庙: 景区内花了不少时间讨论线路。天堂和小蜗牛探路走通黄茅尖北峰线路
12:08: 黄茅尖景区入口(台阶路)
13:02: 黄茅尖主峰,队伍修整、吃中饭
13:31: 黄茅尖南一峰
13:53: 黄凤垟
14:31: 瓯(ou)江源,出景区时罐头和小蜗牛走了不同路径
15:49: 未名峰南高点(1813M),罐头和大力探路未名峰
17:46: 黄垟山
17:52: 到达栗阳岔道(1700M)
18:58: 栗阳村营地(1026M)

D2: 03/18 09:18 - 03/18 18:14 5小时,里程:9KM 海拔上升/下降:881M/410M
天气阴,有些凉意,早上阵雨转小雨

因为下雨及人员体力问题,调整计划去斋郞探路,探寻一条通往百山祖的可能路径,具体细节后面详述。

07:43 从栗阳村出发,小雨,阵雨已停,
07:48 小探 了一下栗阳村-南溪村的古道,仅走了入口一段,全是机耕道,路况良好。老乡说50分钟左右可走至南溪,驴友普通行走的话估计要1.5小时
07:50 坐车出发去斋郞
08:50 到达斋郞,大家闲游红军指挥部,农家购特产(蘑菇、蜂蜜)
09:20 在一峡谷处发现古道入口,路况良好,遂全队一起边探边走
12:14 与百山祖轨迹汇合
12:52 到达瞭望台
12:22 百山祖顶峰,顺便探路东北向山脊,山脊上有明显路径,推测通往锅帽尖2,直到兰荒线公路
14:10 百山祖管理站,走了一段北向台阶路直到冷杉拯救基地
14:20 上车回杭州,中间在安仁腐败,到杭州已是19号凌晨1点多

PART III: 路线的调整与讨论

1,关于徒步起点,如果想走凤阳山的话,从仁坑或官浦垟村出发均可以,刀队建议,既然曾走过仁坑村,那么第二次尽量走不同的线路。官浦垟村至林场也有路,下次千八时会考虑。

2,队员的速度差异比较大,体力不好的的队员选择不登凤阳山北峰、黄凤垟尖等,以保存体力。

3,人员各有特长,亦充分利用,比如体力过剩者可适当探探新路径。刀队在这点上是运筹帷幄,是所有领队学习的榜样。

4,凤阳山主峰北向探路:山脊上有冲刷成的水沟从面形成路迹,但山脊向下并无明显路迹,好在阴面林木稀疏,加上海拔有1800,灌木、荆棘很少,向下走还算轻松,可直达机耕道。

5,龙泉山景区至黄茅尖现成的轨迹要走龙泉大峡谷,海拔上下降近100米。经问询过老乡,景区内公路可通景区,倒 是峡谷线路要绕些路。刀队指派天堂和小蜗牛去探查有没有绕过景区去黄茅尖的路,大队人马走公路至黄茅尖景区。天堂和小蜗牛最后于黄茅尖主峰和大部队汇合。他们走的路径基本上是直上,台阶路基本废弃,路比较陡,但道路明显,直通到黄茅尖北峰。

6,从黄茅尖景区至瓯江源景区,基本全是台阶路,膝盖有老伤的话要有心理准备。

7,对中间营地的选择,刀队建议栗阳村,不走麻连岱。距离上栗阳村更合理一些,大家都没走过,轨迹上也没有准备,但老狼地图上确有栗阳村营地,所以决定不妨一试。回过头来再看,栗阳村设营地对想走全程的人来说也不太合适,毕竟栗阳村不在路线上,从路线下降到栗阳村要1.5小时,后半程路况不太好,海拔损失约674M。综合考虑,如果想走全程的话(荒村尖、新兰尖不走),第一天高强度直接走至南溪村是完全可能的,相比仁坑至栗阳,仁坑至南溪村里程上多7KM,海拔上升多515M左右(中间有几处还有近路可绕)。这样一来,第二天的行程相对轻松,可以早点回家,或加量荒村尖、新兰尖。

8,出瓯江源景区后,刀队指派罐头和大力去探未名峰。我们俩人从一滑坡处上升,但阳坡灌木太多太密,基本上全是强穿。选择最短路径直上山脊线,到达未名峰南高点,随后发现北向有明显更高的山头,山脊线上线路还算清晰,但走了一段之后路迹消失,又是密林灌木了,二人遂决定下撤,沿着山脊线往大南坑头方向下降,但山脊线上路迹断续,时不时要强穿,在山脊线上走了约一半距离时便择路下降至往黄垟山路径。

9,从5岔口到栗阳村的线路相当清晰,一路上有几处岔路,均可根据大方向判定,但后面一段路程较陡,速度提不快,但没有岔道,路迹明显。

10,栗阳村晚饭后,大家讨论第二天的线路,大体上有几种方案:

  • a) 原路返回,从5岔口处接着计划轨迹走,估计行程上约有28KM,路线上太长,仅从栗阳到5岔口就要3小时左右
  • b) 从栗阳村走小路到天堂山,老乡反应说路迹已荒废,不大好走
  • c) 走栗阳村-南溪村古道,中间南拐走锅帽尖,然后至茶枚淤,回到计划轨迹上。但锅帽尖线路也不好走。
  • d) 走栗阳村-南溪村古道至南溪村,回到计划轨迹上。老乡反应路况相当好,1.5小时全队应该可走完。
  • e) 坐车去斋郞,探路至百山祖。

经商定,选定方案d。但无奈18号早上又开始下雨,遂改选方案e,既然全程肯定走不完了,不如趁此机会去探探新路,这也正是刀队所希望的。出发后不多久,小雨便停了,至斋郞后大家正好闲游了一会。

11,车子过斋郞向南开不久便发现峡谷口有一明显路径,正好吻合之前根据地图所推测的至百山祖的古道入口。遂决定探探看,全程走下来,结果非常完美,此路径相当成熟,直通百山祖景区。探路过程中几次遇到路迹消失,再寻找路径,还曾遇到岔路,但有惊无险,全队完成古道穿越。

PART IV: 总结与检讨

1,计划、功课做的明显不够:a) 行程上,什么时间到哪一点要有规划,要做到心中有数 b) 意外情况下(如进度严重拖后、人员受伤)的后备计划。就我本人而言,看别人攻略或线路,还是沉不下心来,我一般是不自己实地走一下不会有感觉的,但归根结底还是脑筋动得少。

2,出发前或路上,要向所有队员讲明本次行程计划。最好能将相关细节及联系方式打印至一张纸上,每位队员发一张。

3,对于路标的放置,首先要放在明显处,不能藏得太深,在叉口处要让别人一眼就能看到;另外,路标要明确,要指明是正确路径。系布条的话,尽量一头稍短一头稍长些。

4,探路时,如果是成熟路迹,如古道,当走到路迹消失时,肯定是走错了,一定要停下来多观察,成熟路径不会无缘无故就消失的。要看是不是要过溪,溪流对面有没有路迹。最好的办法是向后退,很有可能路径向上折高绕了。实在不想后退找回路径的话,可以往一侧向上切,前提是能肯定路径在这一侧,比如当对面很陡、或是悬崖、密林等。

5,当重新切到成熟路径上后,要沿成熟路径退回来,走到之前走错的地方,这样才能记录下正确的轨迹。

6,行程的制定要根据最慢的队员来做,并根据实际进度及时调整;比如第二天的行程计划,当情况有变,第一天就要作改变了。户外徒步不只是跟着向导或者别人的轨迹走,要多花些心思多动脑子想想可能的线路及行进规划。

7,当探路人员与大部队分道时,一定要保护联络。最好人手一只对讲,备份电池也要准备。当对讲连不通时,先检查是不是跳频或音量关小了等等,再者可回退至上次可通联地点再联络;当用对讲确实联络不上时,可用手机联系或发消息通知(给队员、司机或营地联系人)。

PART V: 栗阳村营地信息

1,农家住宿:10元/床位;联系人:叶,电话:13884372155

2, 班车:

栗阳-龙泉:每天2班 7:00 / 12:00 票价 22元,行程约2.5小时 司机:周莉平 15857803162
栗阳-庆元:每天1版 12:00 票价 23元,行程约2.5小时 司机:丙树 680307 (庆元本地电话,类似小灵通)

PART VI: 总结

1, 此行最大的收获就是,户外可以有不同的玩法,不必拘泥于已有轨迹,随时可以根据情况应变。队员各有长短,随时要调动大家积极性,特别都是强驴的情况下,可适当刺激一下,可分可拆可合,走走不同的线路。

2,千八线路复杂,且纵横交错,但具体路况不同、海拔损失也不同,线路规划时要考虑到。

3,此行还有个小插曲,去的时候车上共13人,回来的时候则变成13.5:大力从仁坑村收了个干儿子,它一路之上是穿前穿后,忽左忽右,体力超强,训练得当的话绝对可做搜救犬。我们给它取名“千八”,目前“千八”已被大力带回千岛湖基地。

PART VII: 轨迹下载:

http://www.shanlu.org/forum.php?mod=viewthread&tid=3493#lastpost

踏雪清凉峰

此行共三人,我、临平过客和杭州老白。苏州玉米本打算也来的,但无奈她老公年前闪了腰需要她照顾。

D1 2012/01/26:
乘早6:32的高铁至余杭,与过客汇合后接上老白,三人前往安徽歙县,近11点到达徒步起点:上坦村。清凉峰南山脊上岩石裸露、坡壁陡峭,整个山脊线琐碎断裂,在所有线路中算是难度较大的一条。雪后的南山脊更是一番风景,小路两侧的竹林全被压倒,再加上好天气也没有持续太久,刚过下午就开始起雾,天黑得很早,我们是边探路边向上攀升。直至晚上近20点才到山顶。三人带了相当多的腐败物资,风雪中喝酒吃火锅,不亦热乎。

D2 2012/01/27:
我和过客两人轻装走东岙,老白接着睡懒觉。到达木屋后,没看到其他队伍,但木屋前面其他队伍所堆的雪人还在,只是全化开了。我接着前往大降山脊探路,过客决定停在木屋休整。一个多小时后等我返回后,过客已将化开的瘦雪人养得又白又胖:)遂后二人返回山顶和老白汇合决定晚上夜宿小木屋。晚上木屋内烤火,晚饭,聊天,听音乐。

D3 2012/01/28:
一早起来便收拾停当决定早点出发,因为要走条新线路,从新燕村下降至02省道,路况未知。早8:40启程,从东岙至百步岭全是石阶景区路,从百步岭分道后开始走土路,路况相当好,然后一直沿着溪谷走,一路上全是水声,如果在夏天,此处应该绝佳避暑之处。至下午13:20分左右便已到达临安清凉峰镇都林山村,村里公路直通02省道上的新燕村。打电话给上坦村鲍师傅,鲍师傅她儿子将我们接到上坦。终于,野外徒步结束,我们又踏上了回程的路。从杭州做高铁回沪,到家已近21点。

 

千八憾事

14号早上我们一行21人还颠簸在前往龙泉仁坑村的路上,从前一天晚上19:30开始快12小时了,车不给力,司机更不给力,无语。

天一直下着雨,尽管做足了防水准备,但冲锋衣毕竟不是滴水不进,空气湿度太大,加上汗水,上身湿透,小风一冲,冷。大包也是一样,防雨罩如同虚设,越背越沉。

路相当滑,特别是不少景区道路全是石头铺的,很多的人都遭了秧,也包括我。

整体上的速度不算快,一边看路一边压着速度,但整个队伍还是拉得很开,后面有人体力明显跟不上了。

待雨中到达龙泉山度假区时,众人都失去前行的动力。

千八线路共11尖,此行只走了一尖,还只是凤阳山的北峰。

2012是一个水年,看来不假,希望春节后的清凉峰上能落满了雪!

杭州墓地“穿越”—— 从第二公墓潜入,从闲林公墓窜出

2号晚上和天堂讨论了一下线路,确定3号的行程以探路万丈山为主,大体范围在里山桥村-大毛坞-三界碑-黄泥弄-马槽坞-桦树村-朱田坞-里山桥村一圈,如时间充裕则再往小和山、白龙潭方向探探。原则上不走已有轨迹的路线,有路基则走路基,无路基可适当强穿。

根据等高线图及Google Earth,大体规划了12条短线路,基本上都是沿着山脊或峡谷来规划的,纸上谈兵也只好如此,总不至于没谱没到边上。

但是,3号一早就发生了一件相当没谱的事。一行人从193终点站“石马村”沿着留和路往西南方向走,走至前方道口,路口标志显示里山桥村还在前方,但对此地较熟悉的无影脚说去公墓要向南。查看了一下GPS,发现离计划行程起点闲林公墓还远着呢。丈二和尚摸不着头脑之际,无影脚一句话便点醒了我和天堂两人:前方公墓叫“第二公墓”。原来是此公墓非彼公墓也。

问了一下路人,说去里山桥村要半天时间,大家遂决定从第二公墓上山。后来我在地图上确认了一下,从留和路第二公墓路口至里山桥村直线距离约3KM,走公路地话4.5KM左右,是用不着半天的。

功课还是做得不够充分,否则也不至发生“此公墓非彼公墓”的笑话。

20120102-杭州公墓穿越

      Summary:

      Distance:                 11.75 km
        Time:                        5:17:29
        Moving Time:           3:07:05
        Avg Speed:              2.2 km/h
        Avg Moving Speed: 3.8 km/h
        Elevation Gain:        848 m
        Elevation Loss:        828 m

穿过第二公墓沿小路直上便到“勿忘国耻”纪念碑。计划上是在附近找路直上小和山,但此处林木相当密,还有人为设置的阻拦,遂沿着山径向林场方向走,仅走了200多米,就看到一座小房子,房子左侧有条小路通向上面的茶园,便择小道而上。过了茶园路径消失,好在山脊上林木稀疏,大家在树木从中向小和山顶穿行。

行至001点,发现一条路基明显的小路,路上铺满了厚厚的落叶,走上去相当惬意。这条小路像是绕过小和山顶一直向南延伸,我们中途改道小和山顶并未继续走下去。

等爬上小和山山顶,发现上面竟有一条石板铺好的游步道,众人都不曾走过。经讨论大家不想走回头路去走“向南延伸的未知小道”,便沿游步道向西下降。此段路比较陡,台阶非常短,只能踩上脚跟部,推荐侧身向下走。一路向下,便到达白龙潭景区门口。

石板道实在是“出力不讨好”的典型。再上牛山时,我们放弃游步道,而是从景区东侧的茶园小路蜿蜒而上,倒也别是一番风味。灌木林中有明显路径,比较宽敞,但行不多久,路基消失,大家只得强穿。强穿至002点近山顶处,汇合至一条“省道级”的山径,直通山顶。牛山顶上有三条路基明显的山径:一条是我们上来的路,但不知通向什么地方;一条通向西凤山,正是我们下山的路;另一条向西,不知通到什么地方,看GPS上显示西侧有别人以前打的路点,联通基站、茶叶地等。

到达西凤山前,又走回到石阶游步道上来,等过了挹(yi)翠亭,众人又踏入游步道右侧的一条“县道级”的山径。绕过了飞凤岩,进入峡谷凹地,路径上不时有“碎纸花”做的路标。走至峡谷中央地带后,与“碎纸花”路分道扬镳,我们选择西南方向。

后面依次到达天打山、三界碑,一路都有前人轨迹,路况相当好。过了三界碑,我们前往余杭方向,终于接近了最初所计划的万丈山区域。之后一直关注有没有右侧向北的路径,计划是要探一下从大毛坞直接向南至三界碑的路线的,现在正好在反方向的终点位置。后来找到一条貌似通向西侧山脊的小径,路基明显,于是择路而下。

下降到底便是午潮山山庄(名字记不清了,有可能是午潮山度假村),此处开始已是水泥路,直通大毛坞村。当时我就想,如果真得按计划早上从大毛坞出发,想找到我们下山的这条路还真有点困难。在规划中,准备要探的并不是山脊线,而是山脊线西侧的沿着峡谷上升的一条路。峡谷中倒底有没有路,只得等待下次再探了。

巧合的是,在午潮山山庄又碰到了早上在193终点站遇到的另一批爬山径的人群。在石马村车站等人时,天堂曾和他们聊过。他们是本打算走到富阳去的,可惜又折回到了余杭。在他们口中,我们是专业走山径的;但是在天堂口中,相对于刀队我们也是业余的,所差只是业余的段位不同而已,哈哈。

业余队当然有不少业余的问题:

1,普遍不准时。要做到说好几点就几点,不等人。

2,早饭一定要吃好,早起一会并不难做到。

3,功课一定要做足。这次就很明显,当发现所到之地为第二公墓不是闲林公墓时,一时找不到方向了。倒是后面做过功课的地方,基本能做到心中有数。

4,出发前要对所有人都交待好要走的路线、方向、注意事项、行走原则等等,中途有分歧时也容易达成一致。

5,徙步开始时,特别是一上来就是上坡路时,一定要压住前进速度。

相关轨迹下载:http://www.dsyk.cn/forum.php?mod=viewthread&tid=40765

离奇死亡事件薄之CoCreate篇

“周节棍的双杰伦,砌里侉叉 …”

一阵吵杂的手机铃声将正在发呆的瓶瓶吵醒,他呆滞的眼神中蓦地闪出亮光,心想:大买卖又来了?

果不其然,又是一桩离奇案件:CoCreate在密镇莫名死亡,临终前嘴里还含糊地说了句“The file xxx failed to load. could not unpack the file xxx. Either this file is invalid, you do not have sufficient memory, or no space is left. (Error 398)” ,然后便咽气了。

密镇是凶杀案频发的地方,因其本身治案环境不好,很多案件都成了无头案。这也是为什么作为私家侦探的瓶瓶会被委托查找真凶的原因。

瓶瓶深思了一会,便开始着手重构死亡现场。这里还要多说一句,随着科技的进步,新时代的侦探们也有了更高效的破案方式方法,虽然原始的从验尸(Postmortem,Crash dump analysis)开始的福氏方式依然盛行,但越来越多的人都开始采用这种重建虚拟现场的方式,毕竟新的方法可以让你一遍一遍地推演,并在推演中不断地发现新的线索,直到真相大白。

重构虚拟现场需要相关的工具和设备才行。每位侦探都有自己偏爱的工具组合,当然也逃不脱其时代的限制与烙印。比如两位同姓宋的侦探前辈:宋慈因处宋朝,手中也只有手术刀之类的工具,纵使锋利,但作用毕竟有限;再看19世纪英国的宋戴克,他的方形绿皮箱里可谓是包罗万象,从放大镜,显微镜,到酒精灯,试剂等一应俱全,俨然福尔摩斯的化学实验室了。

但对于21世纪像瓶瓶一样的侦探们来说,一切又化繁为简,一般一台电脑足矣,有时也需要多台并加上若干互联设备。瓶瓶的书房便是充斥着各色各样的电子设备,相互间连接着的五颜六色的电缆全绞缠在一起。

瓶瓶最得心应手的工具包还是windbg,外加一根1394线,便足以对付大多数棘手的凶案。从业之初,瓶瓶用得可是debug工具包,后来经过softice,最后才用上windbg,前几年还是windbg第五代,当时用得还是串口线,现在已升级至第六代了。

不到一个小时,瓶瓶便已连接好所有设备,并设定妥了虚拟现场环境。随着“滴”的一声响,模拟系统开始启动,windbg上开始显现一串串的字符。此时,瓶瓶圆睁的双眼透过厚厚的近似镜片直盯盯地注视着快速翻滚的屏幕,生怕错过每一个细节。同时又暗自庆幸,CoCreate并没有进行反模拟手术,否则,如果像3ds max那样完全依赖log来分析地话苦头可就大了。

忽然“铛”地一声响,屏幕跳出了CoCreate的临终遗言。此次模拟相当成功,但在细致分析windbg记录之前还没找到任何明显线索,在浏览了所有记录后,也未能找到什么重要的线索。不得不又架设好procmon工具,重新又模拟了一次。procmon工具可以协助记录CoCreate死亡前的所有活动记录,及所有与他接触的相关人员等等。在procmon记录中,发现最后一个与死者接触的人是unzip。

“CoCreate死前找unzip干什么呢?”,瓶瓶陷入深思,忽然间,他想到了死者的遗言中有说 "unpack”,“难道真和unzip有关”,瓶瓶一边思考着一边努力寻找着证据。

瓶瓶打开了死者临死前正翻阅的文件,题为xxx。这是一个加密的文件,密镇定了法律为了保护所有信息,必须对各种重要文件进行加密,否则不能随便交换或传阅。瓶瓶当然知道怎么将此加密文件解密成明文,毕竟如果没有点关系,还真干不成侦探这个行当。

刚打开明文文件,瓶瓶就发现文件头竟赫然是 “504B0304”, ”504B”正是zip压缩法发明者Phil Katz的名字缩写: PK。基本可以肯定xxx文件为zip文件格式,所以CoCreate死前才会去见unzip。若如此地话,那unzip倒底做了些什么呢?

瓶瓶大感意外的是:等找到unzip时,发现unzip也离奇死亡了。难道是…连环谋杀?看来此案件内情确实不简单,搞不好会惹火上身!想到此,瓶瓶不禁觉得背后发寒。

但事已至此,由不得自己了。瓶瓶先勘察了unzip的死亡现场,但另他失望的是,unzip临死留下的遗言更让人摸不着头脑:  ”End-of-central-directory signature not found. Either this file is not a zipfile, or it constitutes one disk of a multi-part archive…”。这倒底什么意思?进行了一番搜索后,瓶瓶发现如此死亡的案件竟有很多,只是,众多老案件至今还未结案。

多次探索均无功而返,瓶瓶决定先从模拟unzip死亡现场开始。好在unzip也是位名人,有关他的材料可谓是汗牛充栋,特别是有关他的生平传记(unzip60.zip),更是给现场模拟提供了最好的背景材料。

模拟中果然有新的发现,unzip在通过公开渠道获取的加密文件信息竟是错的。此公开渠道是_stat64调用:

int _stat64( const char path, struct __stat64 buffer );

_stat64会返回文件大小、时间戳等信息。关键的地方是:_stat64获取这些信息的方法不是通过GetFileInformationByHandle (IRP_MJ_QUERY_INFORMATION/FileStandardInformation),而是通过FindFirstFileEx (即IRP_MJ_DIRECTORY_CONTROL/IRP_MN_QUERY_DIRECTORY)得来的。这样操作如果在平时是没有问题的,但在密镇却会出错。

密镇会对所有文件进行过滤并加密,即便是授权的用户在用第二种办法查询文件时,所返回的文件大小与实际大小也是不相符的,因为密镇的所有文件都要附载加密信息而被增厚了。故unzip用错误的文件页码信息来校验文件时,必然会发生了意外。

这个问题当然是出在密镇身上,但令人可气的是,unzip在调用_stat64后又调用了GetFileTime (IRP_MJ_QUERY_INFORMATION/FileBasicInformation),既然都动用私人关系了,为什么不一次性到位,直接将文件大小也一并取了呢?!

案件侦测至此,案情已基本大白。只是善后工作该怎样去做,真是个让瓶瓶头痛的事情:

最彻底的办法,当然是改良密镇,虽然此方案涉及面太广。瓶瓶经过好一番努力,透过多个渠道才将此事办妥,本以为可以长舒一口气的当口,黑老大M$的代表Office Word发飙了,无论如何都反对。此事竟然黑老大也参与其中?这让瓶瓶不得其解,在没有搞清楚其中奥妙之前,也只能放弃此番所有努力而另辟奇径了,毕竟太岁头上的土动不得。

既然unzip已经死亡,那就不妨再推出个新个unzip吧。让新的unzip用新的私人渠道来获取加密文件的信息不就完了呗。

说到便做到,等将新的unzip装上设备,又进行新的一轮模拟,一切正常了。

连日的探查已让瓶瓶厚厚的镜片蒙上了一层灰尘,正好遮挡住了他更加疲惫的眼神。但无论如何,最后还是以最小的代价将善后工作完成了,瓶瓶终于能够安坐在弹簧椅上,惬意地随着电视哼起了 《游击队歌》。

密镇的电视共有200个频道,只是所有频道上都是相同的节目,而且都是红歌大比拼。红歌声中,瓶瓶淡定地等待着下一件凶杀案的发生。他知道,用不着等太久 ……

(本故事部分纯属虚构,请勿胡乱对号入座)