作者: admin

  • 大学生常犯的误区你中了几个?

    大学生常犯的误区你中了几个?

    这就像是一个固有的规律。

    刚刚到大学时,总有学长学姐对我说“没事,一节课不上也没关系,大学嘛,不挂科才不正常!”

    配上学长学姐脸上不屑的笑,好像真的就是他们说的那么一回事。

    但是,新入大学的学弟学妹们,请你们听听我这个即将毕业的老学姐的建议,虽然不至于让你变得有多了不起,至少可以减少误区。

    大学生常犯的误区你中了几个?

    误区1——大学可以随意旷课和朋友去玩

    我只想说说出这种话的人,你旷课多少节了?请问你哪里了不起?

    是能让父母在亲友面前吹嘘,还是上了社会面试的时候可以当做资历?

    别逗了,你就是懦弱加自私!

    你明知到旷课让你变得无所事事虚度光阴,还死要面子的嘴上逞强,连正视自己都没有勇气。更让人不耻的是你居然还在新生面试夸夸其谈,误人子弟。

    我们来算一笔账,看看旷课有多亏。

    首先你交的学费里你缺的每节课的费用,等于白送给学校。

    其次你旷课和朋友出去玩又是一笔开销。

    最后,如果你不幸挂科补考,恭喜你,补考费也是不小的开支。

    那这时候说不定又有人反驳了,也有很多人旷课去做兼职啊,丰富自己啊,还能挣外快!

    这就不得不提我们的第二个误区了。

    误区二——兼职挣钱比上课重要

    拜托,现在大学生常做的兼职有哪些?发传单,话务员,服务生,举牌员……

    这些旷课都要去兼职的小可爱们我想问问,这些兼职和你的未来有多大联系?

    如果你未来想做这一些事,你完全可以不用浪费读大学那些钱,全心投入没准你还能带出几个团队,比你在学校耗着好多了。

    如果不是,这种学不到技术,积累不了人脉的临时兼职,于你而言就是歧途。

    拿着眼前的微薄工资,你好像比身边人过得好那么一点。但是亲爱的,你的人生不止有大学这3-4年啊!

    把眼光放的长远一点,至少不要为了眼前的芝麻,丢了西瓜。

    兼职是个累人的活,至少会消耗你的精神和体力。那你在学校的学习效率,交友效率,办事效率都将大打折扣,这样的你,毕业后拿什么和人家拼?

    所以,不要觉得兼职挣到一点小钱就很开心,丰富自己,多学多看才是硬道理。

    本事是自己的,别人嫉妒也没办法。

    大学生常犯的误区你中了几个?

    误区三——不入学生会不罢休

    其实我一直搞不懂,为什么新生一听你是学生会的就会很崇拜你,为什么?

    很多人凭着一份憧憬就盲目的加入学生会,总觉得好像这是一件非常了不起的事情。

    其实真没有!

    第一,学生会会占用你的大部分时间,你除了日常学习,需要参加各种学生会的活动,各种跑来跑去。但如果你只是执行任务的那一个,除了没主见我真不知道说你什么好。

    第二,学生会锻炼能力。这个其实不一定,因为学生会的交接都是循序渐进的,它有一个固定的流程,如果不是做到什么干部,说白了,你就是在帮忙打杂。

    当然学生会也有它的优势,比如优先评奖助学金,锻炼自己责任心,执行力等。

    但这些都不是你盲目加入学生会的理由,你应该先去了解学生会的性质,要做什么,能做到哪一步,再结合自身情况考虑要不要加入,而不是朋友一约就去了,事后退出就抱怨学生会怎么不好。

    误区四——报名各种社团

    这个是我也犯过的错误。大一那会我报了广播社,学生会,演讲与口才协会……一堆协会。

    刚开始感觉这些自己都感兴趣,都想学,然后打了鸡血一样。可是没过几天,各个社团活动时间冲突,我面临各种选择,不得不放弃一些社团,给人留下半途而废的印象。

    不仅如此,因为活动过多,导致我和室友在一起的时间也很少,连说点私房话的闺蜜都没有。持续了一段时间,我不仅累而且孤独。

    所以新生们,根据我扎心的经历,大学里社团最好不要超过3个,合适的话两个就可以了。因为你除了集体活动,还有自己的生活需要管理。

    而且学多不如学精,找到了兴趣钻研就好了。

    大学生常犯的误区你中了几个?

    误区五——因为是室友就强迫自己和她亲密

    这一点我身边很多人向我反应,我问及原因她就支支吾吾的说:我不想一个人吃饭,一个人逛街。

    那你想和不喜欢的人吃饭,和不喜欢的人逛街吗?

    因为是室友就一定要亲密吗?

    不,我才不要。

    生活已经够累,何必到了自己的狗窝还要戴上面具?

    室友是随机分配的,住在一起是缘分,有事大家各退一步好商量,不争不吵不刻意疏离就够了。

    何必非逼自己刻意和她亲密?明明三观不合,难不成打碎自己的三观去重新建一个?

    如果是那种很奇葩的室友呢?我简直不敢想象。

    亲密的朋友不一定就是住在一起的,在大学里,室友除了和你上课睡觉在一个空间,好像只要不争吵,和普通同学有什么区别呢?

    刻意了解,假装喜欢上不喜欢的人,不仅你自己累,还让她觉得虚伪。人都是敏感的,真喜欢和假喜欢时间久了就知道了。届时你如何自处?

    当然,如果你们刚好三观合,又聊得来,真是皆大欢喜。否则的话,我建议大家可以看得淡一点,多个志同道合的朋友一起出行,不刻意为难室友,多一份理解,其实也没什么大不了。

    好了,说了那么多误区,你中了几个呢?

    当然还有更多误区,欢迎大家评论留言。

    大学生常犯的误区你中了几个?

  • 门阀更迭,陈郡谢氏衰落,兰陵萧氏崛起

    门阀更迭,陈郡谢氏衰落,兰陵萧氏崛起

    当年,谢安的孙子谢混,少有美誉,号称风华江左第一。他喜爱山水不愿从政,与谢灵运、谢晦等人居住在乌衣巷中,成日清谈宴饮,怡然自得。

    好景不长,其父谢琰在镇压孙恩之乱时,因轻敌与谢混的两个哥哥同时罹难。谢混悲痛欲绝,为了维持家族地位,撑起谢氏门庭,他不得不登上政治舞台,接受了世袭的爵位蔡望公。

    谢混风姿绝伦,被东晋孝武帝选为女婿,将晋陵公主嫁与他为妻,婚后,谢混渡过了一段无忧无虑的时光。

    后来谢混因党同刘毅,被刘裕下狱,晋陵公主还没来得及搭救,仅隔一天便被处死。

    谢混死后,刘裕命晋陵公主改嫁给出身琅琊王氏的王练,公主虽坚决不从,但诏令命其必须与谢家断绝婚姻关系。谢混没有儿子,只有两个女儿,而且都还很年幼,公主无奈之下,把谢家的事全部托付给谢混的侄儿谢弘微。

    谢混家几世都是朝廷宰相辅臣,仅僮仆就有一千人之多,谢弘微为谢混经营生计,一文钱或一尺丝帛都登记入账。

    九年后,刘裕称帝即位,晋陵公主降封号为东乡君,在她老病将死的时候,朝廷终于准许她再回到谢家。东乡君进门以后,看到房屋如新,粮仓满满,还开垦了一些荒地,农田比以前还多,不由得感叹道:“谢混在世时,一直看重这个孩子,可以说是有知人之明,谢混可以虽死犹生了。”亲戚朋友看到这个情形,也不禁为之流泪。

    就在回到谢家的这一年,东乡君也去世了,无论官府还是谢氏家族都认为,谢家的金银财宝应归两个女儿,而田宅、奴仆应该归谢弘微所有,谢弘微却什么都不要,而且用自己的俸禄,安葬了东乡君。

    谢混的大女婿殷睿喜欢赌博,听说谢弘微不要谢家的财物,于是,夺取妻子的妹妹、伯母和两位姑母应得的谢家财产,用来偿还赌债。谢家人受谢弘微谦让精神的感化,没有任何争执。

    有人指责谢弘微说:“谢氏家族几代的家产,都成了殷睿一日之间的赌债,没有比这更不合理的事情了,而你却视而不见,就好像把财物都抛进江海之中却自以为清廉一样。假如为了博取一个清白的名声,而使家里生计困难,也是我认为不可取的做法。”

    谢弘微说:“亲戚之间争夺财物,是最卑鄙的事情,如今家里的人都还不干预,我怎么可以教她们去争!家产分多分少,总不至于匮乏,人死之后,谁还在乎身外之物!”

    谢弘微带病主持婶婶与谢混叔叔的合葬礼,结果病情加重,不治身亡,时年四十二岁。

    谢家的另一个人物,谢混的侄子,刘宋前秘书监谢灵运喜欢游历山川,探险搜奇,跟从他游玩的有几百人,往往在山林中伐木开路,当地百姓不胜惊恐,还以为是山贼前来抢劫。

    会稽太守孟顗一向与谢灵运有矛盾,上疏朝廷,指控谢灵运心怀不轨,阴谋叛乱,并且发动军队防备自己。谢灵运亲自到皇宫门前,为自己申辩,文帝刘义隆将他任命为临川内史。

    谢灵运任职后,仍然游玩放纵,完全不管郡中政事,被有关部门弹劾。同年,司徒刘义康派遣郑望生前往逮捕谢灵运。谢灵运却生擒郑望生,率领军队逃走,还写下诗句说:“韩国灭亡张良起,秦王称帝仲连耻。”

    朝廷派兵追赶讨伐,生擒谢灵运。廷尉上奏朝廷说,谢灵运率众反叛朝廷,论罪当处死刑。文帝爱惜他的才华,打算只免掉他的官职。彭城王刘义康却坚持认为,谢灵运的罪过不宜宽恕。最后,文帝下诏,谢灵运减罪一等,流放到广州。

    一段时间后,又有人告发谢灵运购买武器,结交武士,打算在夺取三江口后反叛,没有成功,刘义隆终于下诏,将谢灵运在广州就地斩首示众。谢灵运一生恃才傲物,放荡不羁,看不起别人,不注意小节,终于为自己招来大祸。

    李白诗中曾写道:谢公宿处今尚在,渌水荡漾清猿啼。

    因益州动乱频发,荆州刺史刘义庆任命周籍之率领二千士卒前去救援成都。

    叛军领袖赵广则从广汉来到郫县,构筑阵地,将数百个营盘互相连接。周籍之和裴方明等会合后合兵一处,共同进攻郫县,攻克郫县后,又进兵广汉击败了赵广。

    赵广等人先后逃回到涪城和五城,这时,裴方明才向外发布了益州刺史刘道济的死讯。

    而此时的梁州、南秦州刺史甄法护因治理不力,造成氐族和羌族部落对朝廷怀有二心,因此,宋文帝起用了北伐时弃城逃跑,此刻正在服刑的萧思话为此二州刺史。

    裴方明向叛军的大营涪城进军,先后将张寻、唐频等人击败,从此,赵广等人四处逃散,叛军瓦解。

    甄法护的哥哥,新任益州刺史甄法崇到达成都,逮捕了费谦并将其斩首,叛军领袖程道养率领二千余家逃入深山之中,其余党羽也各自统率部众隐藏在深山峡谷中,然而时常出山骚扰不绝。

    氐王杨难当趁刘宋新任的梁、南秦二州刺史萧思话尚未到任,而原刺史甄法护即将东下之机,大举兴兵,进攻梁州,攻克了白马城,俘虏了晋昌太守。随即,杨难当又攻打蒹葭,生擒了晋寿太守。甄法护闻讯弃城逃走,投奔洋川郡的西城。杨难当于是占据了汉中的广大地区,任命他手下赵温为梁、秦二州刺史。

    杨难当把他攻克刘宋汉中的捷报奏报给北魏朝廷,并把雍州逃到汉中的流民七千多家送往长安。

    宋文帝新委任的二州刺史萧思话抵达襄阳后,知道自己管辖的地盘已经被人所侵占,立即派萧承之为前锋,准备收复失地。萧承之立即出发,沿途招兵买马,募集了一千人后,进驻磝头。

    杨难当在汉中大肆烧杀抢劫,然后自己率众离开了汉中,向西返回仇池,留下赵温据守梁州,又派薛健屯驻在黄金山。

    萧思话命萧坦攻克了铁城戍,杨难当的部将赵温、薛健与蒲甲子,联合进攻萧坦的大营,被萧坦打败了,赵温等人只好撤退,盘踞在西水一带。

    刘宋临川王刘义庆派遣裴方明率领三千士卒前去援助萧承之,他们攻克并占据了黄金戍。赵温只能放弃州城,退保小城,薛健和蒲甲子则退保下桃城。

    萧思话率军随后赶到,与萧承之合兵攻打赵温等人,屡战屡胜。刘宋参军王灵济率领另一支队伍,直指洋川,攻击南城,攻克敌阵,生擒守将赵英。因南城粮草已空,无法供给军队,王灵济只好率兵撤退,并与萧承之会师。

  • 七夕闲谈——浅析牛郎织女故事中的男权思潮

    七夕闲谈——浅析牛郎织女故事中的男权思潮

    文/漪瞳

    近年已习惯七夕被当作爱情节日炒作,追本溯源即为牛郎织女的民间传奇。

    最初记载为——

    “天河之东有织女,天帝之女也,年年机杼劳役,织成云锦天衣,容貌不暇整。天帝怜其独处,许嫁河西牵牛郎,嫁后遂废织衽。天帝怒,责令归河东,许一年一度相会。

    涉秋七日,鹊首无故皆髡,相传是日河鼓与织女会于河东,役乌鹊为梁以渡,故毛皆脱去。”

    后被民间讹传为:某放牛郎趁某仙女临凡沐浴,窃取其衣物,令其无法返回家园,那位仙女遂被迫与之步入家徒四壁、穷困潦倒的同居生活,还莫名其妙产生感情,不仅为其劳作生子,更背叛双亲不肯回家, 最终被母亲带回犹恋恋不舍,每年七夕特意赶赴鹊桥只为见面。

    民间流传典故已耳熟能详,然其中意涵却很待考究。

    首先,女生通常不大可能喜欢初度见面即用卑劣手段满足私利的胁迫者(除非斯德哥尔摩症候群)。牛郎既窥视织女沐浴还盗窃衣物,更以此胁迫织女与之同居生活,其行径可谓寡廉鲜耻。织女对其初印象应该极差。愚昧蠢笨亦无法作为其脱罪借口。

    若排除斯德哥尔摩症候群,织女对牛郎产生感情更近乎毫无可能。织女生于仙境,成长于仙阙,其意识形态、教育背景导致与牛郎价值观差异迥然,牛郎无论德行亦或材干皆乏善可陈,对织女不具备任何吸引力,彼此间毫无共同语言,更无任何情感基础。即便阴错阳差被迫入住同屋,生活中也必然矛盾重重、辛酸悲伤,恨不能早离去早解脱,哪还可能存何眷顾留恋?

    那么,如此逻辑荒谬、悖于常理的故事又为何能流传千古、常盛不衰呢?

    先从故事中男女主角设置入手——

    男主即牛郎,穷困潦倒、愚昧无知、行为不端。

    女主即织女,仙姿佚貌、心灵手巧、温婉贤良。

    再看故事情节设置——

    优秀卓越的女主遭行为可耻的男主窃衣胁迫后,仿佛突然罹患斯德哥尔摩症候群,对其产生状若痴迷的感情,成为终日纺绩、侍夫育儿的家庭主妇。为此不惜与父母断绝联系。

    灵隽飘逸的仙女莫名成为荆钗布裙的主妇,居然还绝弃尊亲、无怨无悔、甘之如饴,其中“嫁乞随乞”的男权思想岂非昭然若揭?

    古代男权思想强调女性需恪守妇德,谨遵“三从四德”、“夫为妻纲”,任凭女性如何光彩夺目、惊采绝艳,也不能对夫婿存任何选择权,嫁入夫家只能以侍奉公婆、相夫教子、料理家事为己任,对母家情谊从此淡漠,事事以夫家为先。

    历史中类似“仙女临凡”的典故屡见不鲜,其背后的男权思想根深蒂固。男权者眼中,女性只能围绕家庭侍奉夫婿,供男性调度差遣,纵然仙女亦不能免俗。

    对于放牛郎窃衣强占仙女,众男权制拥戴者遂争相传颂,极力推崇佳丽无缘无故投怀送抱、任劳任怨奉献终生。

    无论男性如何懦弱无能、落魄潦倒,女性皆应毫无道理地对其趋之若鹜、矢志无渝,还假其名曰“坚贞爱情”,实为束缚女性之思想枷锁。

    牛郎织女的故事本无丝毫浪漫情怀可言,如此宣扬男权的典故若当今还被传颂推崇,无疑为对女性赤裸裸的侮辱。

    真正的感情必为势均力敌,彼此独立又能够互相吸引,绝非无条件顺从亦或甘为附属。

    值此七夕之夜,谨祝寰宇间:真情皆获善果,挚爱终成眷属。

  • 高通加解密引擎提权漏洞解析

    目录

    前言

    背景知识

    漏洞成因

    CVE-2016-6738漏洞成因

    CVE-2016-6738漏洞补丁

    CVE-2016-3935漏洞成因

    CVE-2016-3935漏洞补丁

    漏洞利用

    什么是提权

    利用方法回顾

    本文使用的方法

    CVE-2016-6738漏洞利用

    CVE-2016-3935漏洞利用

    参考

    前言 

    CVE-2016-3935 和CVE-2016-6738 是 360冰刃实验室发现的高通加解密引擎( Qualcomm crypto engine)的两个提权漏洞,分别在2016 年10月11月的谷歌android 漏洞榜被公开致谢,同时高通也在 2016年 10月11月 的漏洞公告里进行了介绍和公开致谢。这两个漏洞报告给谷歌的时候都提交了 exploit 并且被采纳,这篇文章介绍一下这两个漏洞的成因和利用。

    背景知识 

    高通芯片提供了硬件加解密功能,并提供驱动给内核态和用户态程序提供高速加解密服务,我们在这里收获了多个漏洞,主要有3个驱动

    高通加解密引擎提权漏洞解析

    高通加解密引擎提权漏洞解析

    qcedev driver  就是本文两个漏洞发生的地方,这个驱动通过 ioctl 接口为用户层提供加解密和哈希运算服务。

    高通加解密引擎提权漏洞解析

    加解密服务的核心结构体是 struct qcedev_cipher_op_req, 其中, 待加 /解密数据存放在 vbuf 变量里,enckey 是秘钥, alg 是算法,这个结构将控制内核qce引擎的加解密行为。

    高通加解密引擎提权漏洞解析

    哈希运算服务的核心结构体是 struct qcedev_sha_op_req, 待处理数据存放在 data 数组里, entries 是待处理数据的份数,data_len 是总长度。

    漏洞成因

    可以通过下面的方法获取本文的漏洞代码

    高通加解密引擎提权漏洞解析

    CVE-2016-6738漏洞成因

    现在,我们来看第一个漏洞 cve-2016-6738

    介绍漏洞之前,先科普一下linux kernel 的两个小知识点

    1) linuxkernel 的用户态空间和内核态空间是怎么划分的?

    简单来说,在一个进程的地址空间里,比 thread_info->addr_limit 大的属于内核态地址,比它小的属于用户态地址

    2) linuxkernel 用户态和内核态之间数据怎么传输?

    不可以直接赋值或拷贝,需要使用规定的接口进行数据拷贝,主要是4个接口:

    copy_from_user/copy_to_user/get_user/put_user

    4个接口会对目标地址进行合法性校验,比如:

    copy_to_user = access_ok +__copy_to_user // __copy_to_user 可以理解为是memcpy

    下面看漏洞代码

    高通加解密引擎提权漏洞解析

    当用户态通过 ioctl 函数进入 qcedev 驱动后,如果 command  QCEDEV_IOCTL_ENC_REQ(加密)或者 QCEDEV_IOCTL_DEC_REQ (解密),最后都会调用函数 qcedev_vbuf_ablk_cipher 进行处理。

    高通加解密引擎提权漏洞解析

    qcedev_vbuf_ablk_cipher 函数里,首先对 creq->vbuf.src 数组里的地址进行了校验,接下去它需要校验 creq->vbuf.dst 数组里的地址

    这时候我们发现,当变量 creq->in_place_op 的值不等于 1 时,它才会校验 creq->vbuf.dst 数组里的地址,否则目标地址creq->vbuf.dst[i].vaddr 将不会被校验

    这里的 creq->in_place_op 是一个用户层可以控制的值,如果后续代码对这个值没有要求,那么这里就可以通过让 creq->in_place_op = 1  来绕过对 creq->vbuf.dst[i].vaddr 的校验,这是一个疑似漏洞

    高通加解密引擎提权漏洞解析

    在函数 qcedev_vbuf_ablk_cipher_max_xfer 里,我们发现它没有再用到变量 creq->in_place_op 也没有对地址 creq->vbuf.dst[i].vaddr 做校验,我们还可以看到该函数最后是使用  __copy_to_user 而不是 copy_to_user 从变量 k_align_dst 拷贝数据到地址 creq->vbuf.dst[i].vaddr

    由于 __copy_to_user 本质上只是 memcpy,  __copy_to_user 的目标地址是 creq->vbuf.dst[dst_i].vaddr, 这个地址可以被用户态控制, 这样漏洞就坐实了,我们得到了一个内核任意地址写漏洞。

    接下去我们看一下能写什么值

    高通加解密引擎提权漏洞解析

    再看一下漏洞触发的地方,源地址是 k_align_dst ,这是一个局部变量,下面看这个地址的内容能否控制。

    高通加解密引擎提权漏洞解析

    在函数 qcedev_vbuf_ablk_cipher_max_xfer 的行 1160 可以看到,变量  k_align_dst 的值是从用户态地址拷贝过来的,可以被控制,但是,还没完

    高通加解密引擎提权漏洞解析

    1195调用函数 submit_req ,这个函数的作用是提交一个 buffer 给高通加解密引擎进行加解密,buffer 的设置由函数 sg_set_buf  完成,通过行 1186 可以看到,变量 k_align_dst 就是被传进去的 buffer , 经过这个操作后, 变量 k_align_dst  的值会被改变, 即我们通过__copy_to_user 传递给 creq->vbuf.dst[dst_i].vaddr 的值是被加密或者解密过一次的值。

    那么我们怎么控制最终写到任意地址的那个值呢?

    思路很直接,我们将要写的值先用一个秘钥和算法加密一次,然后再用解密的模式触发漏洞,在漏洞触发过程中,会自动解密,如下:

    1) 假设我们最终要写的数据是A, 我们先选一个加密算法和key 进行加密

    高通加解密引擎提权漏洞解析

    2) 然后将B作为参数传入 qcedev_vbuf_ablk_cipher_max_xfer  函数触发漏洞,同时参数设置为解密操作,并且传入同样的解密算法和key

    高通加解密引擎提权漏洞解析

    这样的话,经过 submit_req 操作后, line 1204 得到的 k_align_dst 就是我们需要的数据。

    至此,我们得到了一个任意地址写任意值的漏洞

    CVE-2016-6738漏洞补丁

    这个 漏洞的修复  很直观,将 in_place_op 的判断去掉了,对 creq->vbuf.src creq->vbuf.dst 两个数组里的地址挨个进行 access_ok 校验

    下面看第二个漏洞

    CVE-2016-3935漏洞成因

    高通加解密引擎提权漏洞解析

    command 为下面几个case 里都会调用  qcedev_check_sha_params 函数对用户态传入的数据进行合法性校验

    ·        QCEDEV_IOCTL_SHA_INIT_REQ

    ·        QCEDEV_IOCTL_SHA_UPDATE_REQ

    ·        QCEDEV_IOCTL_SHA_FINAL_REQ

    ·        QCEDEV_IOCTL_GET_SHA_REQ

    高通加解密引擎提权漏洞解析

    qcedev_check_sha_params 对用户态传入的数据做多种校验,其中一项是对传入的数据数组挨个累加长度,并对总长度做整数溢出校验

    问题在于, req->data[i].len  uint32_t 类型, 总长度 total 也是 uint32_t 类型, uint32_t 的上限是 UINT_MAX, 而这里使用了 ULONG_MAX 来做校验

    高通加解密引擎提权漏洞解析

    注意到:

    32 bit 系统,  UINT_MAX= ULONG_MAX

    64 bit 系统,  UINT_MAX = ULONG_MAX

    所以这里的整数溢出校验 64bit系统是无效的 ,即在 64bit 系统,req->data 数组项的总长度可以整数溢出,这里还无法确定这个整数溢出能造成什么后果。

    下面看看有何影响,我们选取 case QCEDEV_IOCTL_SHA_UPDATE_REQ

    高通加解密引擎提权漏洞解析

    qcedev_areq.sha_op_req.alg 的值也是应用层控制的,当等于 QCEDEV_ALG_AES_CMAC 时,进入函数 qcedev_hash_cmac

    高通加解密引擎提权漏洞解析

    在函数 qcedev_hash_cmac 里, line 900 申请的堆内存  k_buf_src 的长度是 qcedev_areq->sha_op_req.data_len ,即请求数组里所有项的长度之和

    然后在 line 911 ~ 920 的循环里,会将请求数组 qcedev_areq->sha_op_req.data[]  里的元素挨个拷贝到堆 k_buf_src 
    里,由于前面存在的整数溢出漏洞,这里会转变成为一个堆溢出漏洞,至此漏洞坐实。

    CVE-2016-3935漏洞补丁

    高通加解密引擎提权漏洞解析

    这个 漏洞补丁  也很直观,就是在做整数溢出时,将 ULONG_MAX 改成了 U32_MAX, 这种因为系统由 32位升级到64位导致的代码漏洞,是 2016 年的一类常见漏洞

    下面进入漏洞利用分析

    漏洞利用

    androidkernel 漏洞利用基础

    在介绍本文两个漏洞的利用之前,先回顾一下 android kernel 漏洞利用的基础知识

    什么是提权

    高通加解密引擎提权漏洞解析

    linuxkernel 里,进程由 struct task_struct 表示,进程的权限由该结构体的两个成员  real_cred  cred 表示

    高通加解密引擎提权漏洞解析

    所谓提权,就是修改进程的 real_cred/cred 这两个结构体的各种 id  值,随着缓解措施的不断演进,完整的提权过程还需要修改其他一些内核变量的值,但是最基础的提权还是修改本进程的 cred, 这个任务又可以分解为多个问题:

    怎么找到目标 cred ?

    cred 所在内存页面是否可写?

    如何利用漏洞往 cred 所在地址写值?

    利用方法回顾 

    高通加解密引擎提权漏洞解析 

    [来源]

    上图是最近若干年围绕 android kernel 漏洞利用和缓解的简单回顾,

    09 ~ 10 年的时候,由于没有对 mmap 的地址范围做任何限制,应用层可以映射0 页面,null pointer deref 漏洞在当时也是可以做利用的,后面针对这种漏洞推出了  mmap_min_addr  限制,目前 null pointer deref 漏洞一般只能造成 dos.

    11 ~ 13 年的时候,常用的提权套路是从  /proc/kallsyms  搜索符号  commit_creds  prepare_kernel_cred  的地址,然后在用户态通过这两个符号构造一个提权函数 (如下)

    高通加解密引擎提权漏洞解析

    可以看到,这个阶段的用户态 shellcode 非常简单, 利用漏洞改写内核某个函数指针 (最常见的就是 ptmx 驱动的 fsync  函数)将其实现替换为用户态的函数, 最后在用户态调用被改写的函数 , 这样的话从内核直接执行用户态的提权函数完成提权

    这种方法在开源root套件  android_run_root_shell 得到了充分提现

    后来,内核推出了kptr_restrict/dmesg_restrict 措施使得默认配置下无法从 /proc/kallsyms  等接口搜索内核符号的地址

    但是这种缓解措施很容易绕过android_run_root_shell  里提供了两种方法:

    1.      通过一些内存 pattern 直接在内存空间里搜索符号地址,从而得到  commit_creds/prepare_kernel_cred 的值;
    libkallsyms:get_kallsyms_in_memory_addresses

    2.      放弃使用 commit_creds/prepare_kernel_cred  这两个内核函数,从内核里直接定位到  task_struct cred   结构并改写
    obtain_root_privilege_by_modify_task_cred

    ·        2013 推出 text RO PXN 等措施,通过漏洞改写内核代码段或者直接跳转到用户态执行用户态函数的提权方式失效了android_run_root_shell  这个项目里的方法大部分已经失效 , PXN 时代,主要的提权思路是使用 rop

    具体的 rop 技巧有几种,

    1.      下面两篇文章讲了基本的 linux kernel ROP  技巧

    Linux Kernel ROP – Ropping your way to # (Part 1)/)

    Linux Kernel ROP – Ropping your way to # (Part 2)/)

    高通加解密引擎提权漏洞解析

    可以看到这两篇文章的方法是搜索一些 rop 指令 ,然后用它们串联  commit_creds/prepare_kernel_cred,是对上一阶段思路的自然延伸。

    1.      使用 rop 改写  addr_limit  的值,破除本进程的系统调用 access_ok 校验,然后通过一些函数如   ptrace_write_value_at_address 直接读写内核来提权 , selinux_enforcing 变量写0 关闭 selinux;

    2.      大名鼎鼎的  Ret2dir bypassPXN;

    3.      还有就是本文使用的思路,用漏洞重定向内核驱动的 xxx_operations  结构体指针到应用层,再用 rop 地址填充应用层的伪 xxx_operations  里的函数实现;

    4.      还有一些 2017 新出来的绕过缓解措施的技巧, 参考

    进入2017年,更多的漏洞缓解措施正在被开发和引进,谷歌的 nick正在主导开发的项目  Kernel_Self_Protection_Project   对内核漏洞提权方法进行了分类整理,如下

    Kernel location

    Text overwrite

    Function pointer overwrite

    Userspace execution

    Userspace data usage

    Reused code chunks

    针对以上提权方法,Kernel_Self_Protection_Project  开发了对应的一系列缓解措施,目前这些措施正在逐步推入linux kernel 主线,下面是其中一部分缓解方案,可以看到,我们回顾的所有利用方法都已经被考虑在内,不久的将来,这些方法可能都会失效

    ·        Split thread_info off of kernelstack (Done: x86, arm64, s390. Needed on arm, powerpc and others?) * Movekernel stack to vmap area (Done: x86, s390. Needed on arm, arm64, powerpc andothers?)

    ·        Implement kernel relocation andKASLR for ARM

    ·        Write a plugin to clear structpadding

    ·        Write a plugin to do formatstring warnings correctly (gcc’s -Wformat-security is bad about const strings)

    ·        Make CONFIG_STRICT_KERNEL_RWX andCONFIG_STRICT_MODULE_RWX mandatory (done for arm64 and x86, other archs stillneed it)

    ·        Convert remaining BPF JITs toeBPF JIT (with blinding) (In progress: arm)

    ·        Write lib/test_bpf.c tests foreBPF constant blinding

    ·        Further restriction ofperf_event_open (e.g. perf_event_paranoid=3)

    ·        Extend HARDENED_USERCOPY to useslab whitelisting (in progress)

    ·        Extend HARDENED_USERCOPY to splituser-facing malloc()s and in-kernel malloc()svmalloc stack guard pages (inprogress)

    ·        protect ARM vector table asfixed-location kernel target

    ·        disable kuser helpers on arm

    ·        rename CONFIG_DEBUG_LIST betterand default=y

    ·        add WARN path for page-spanningusercopy checks (instead of the separate CONFIG)

    ·        create UNEXPECTED(), like BUG()but without the lock-busting, etc

    ·        create defconfig “make” targetfor by-defaul
    t hardened Kconfigs (using guidelines below)

    ·        provide mechanism to check forro_after_init memory areas, and reject structures not marked ro_after_init invmbus_register()

    ·        expand use of __ro_after_init,especially in arch/arm64

    ·        Add stack-frame walking tousercopy implementations (Done: x86. In progress: arm64. Needed on arm,others?)

    ·        restrict autoloading of kernelmodules (like GRKERNSEC_MODHARDEN) (In progress: Timgad LSM)

    有兴趣的同学可以进入该项目看看代码,提前了解一下缓解措施,

    比如 KASLR for ARM, 将大部分内核对象的地址做了随机化处理,这是以后 androidkernel exploit 必须面对的;

    另外比如 __ro_after_init ,内核启动完成初始化之后大部分  fops 全局变量都变成 readonly 的,这造成了本文这种利用方法失效, 所幸的是,目前 android kernel 还是可以用的。

    本文使用的利用方法

    对照 Kernel_Self_Protection_Project  的利用分类,本文的利用思路属于  Userspace data usage

    Sometimesan attacker won’t be able to control the instruction pointer directly, but theywill be able to redirect the dereference a structure or other pointer. In thesecases, it is easiest to aim at malicious structures that have been built inuserspace to perform the exploitation.

    具体来说,我们在应用层构造一个伪 file_operations 结构体(其他如  tty_operations 也可以),然后通过漏洞改写内核某一个驱动的 fops  指针,将其改指向我们在应用层伪造的结构体,之后,我们搜索特定的 rop 并随时替换这个伪 file_operations  结构体里的函数实现,就可以做到在内核多次执行任意代码(取决于 rop) ,这种方法的好处包括:

    1.      内核有很多驱动,所以 fops 非常多,地址上也比较分散,对一些溢出类漏洞来说,选择比较多

    2.      内核的 fops 一般都存放在 writable data 区,至少目前android 主流 kernel 依然如此

    3.      将内核的 fops 指向用户空间后,用户空间可以随意改写其内部函数的实现

    4.      只需要一次内核写

    下面结合漏洞说明怎么利用

    CVE-2016-6738漏洞利用

    CVE-2016-6738是一个任意地址写任意值的漏洞,利用代码已经提交在  EXP-CVE-2016-6738

    我们选择重定向 /dev/ptmx 设备的 file_operations, 先在用户态构造一个伪结构,如下

    高通加解密引擎提权漏洞解析

    根据前面的分析,伪结构的值需要先做一次加密,再使用

    高通加解密引擎提权漏洞解析

    下面是核心的函数

    高通加解密引擎提权漏洞解析

    参数 src 就是 fake_ptmx_fops 加密后的值,我们将其地址放入  qcedev_cipher_op_req.vbuf.src[0].vaddr 里,目标地址 qcedev_cipher_op_req.vbuf.dst[0].vaddr  存放  ptmx_cdev->ops 的地址,然后调用 ioctl 触发漏洞,任意地址写漏洞触发后,目标地址  ptmx_cdev->ops  的值会被覆盖为 fake_ptmx_fops.

    此后,对 ptmx 设备的内核fops函数执行,都会被重定向到用户层伪造的函数,我们通过一些 rop 片段来实现伪函数,就可以被内核直接调用。

    高通加解密引擎提权漏洞解析

    比如,我们找到一段 rop 如上,其地址是 0xffffffc000671a58 其指令是 str w1, [x2] ; ret ;

    这段 rop 作为一个函数去执行的话,其效果相当于将第二个参数的值写入第三个参数指向的地址。

    我们用这段 rop 构造一个用户态函数,如下

    高通加解密引擎提权漏洞解析

    9*8 ioctl 函数在 file_operations 结构体里的偏移,

    *(unsignedlong*)(fake_ptmx_fops + 9 * 8) = ROP_WRITE;

    的效果就是 ioctl 的函数实现替换成 ROP_WRITE, 这样我们调用 ptmx ioctl 函数时,最后真实执行的是 ROP_WRITE, 这就是一个内核任意地址写任意值函数。

    同样的原理,我们封装读任意内核地址的函数。

    有了任意内核地址读写函数之后,我们通过以下方法完成最终提权:

    高通加解密引擎提权漏洞解析

    搜索到本进程的 cred 结构体,并使用我们封装的内核读写函数,将其成员的值改为0,这样本进程就变成了 root 进程。
    搜索本进程 task_struct  的函数  get_task_by_comm 具体实现参考 github 的代码。

    CVE-2016-3935漏洞利用

    这个漏洞的提权方法跟 6738 是一样的,唯一不同的地方是,这是一个堆溢出漏洞,我们只能覆盖堆里边的 fops (cve-2016-6738 我们覆盖的是 .data 区里的 fops )

    在我测试的版本里,k_buf_src 是从 kmalloc-4096 分配出来
    的,因此,需要找到合适的结构来填充
    kmalloc-4096 ,经过一些源码搜索,我找到了 tty_struct 这个结构

    高通加解密引擎提权漏洞解析

    在我做利用的设备里,这个结构是从 kmalloc-4096 堆里分配的,其偏移 24Byte 的地方是一个  struct tty_operations 的指针,我们溢出后重写这个结构体,用一个用户态地址覆盖这个指针。

    高通加解密引擎提权漏洞解析

    4128 + 536867423 + 7 *0x1fffffff = 632

    溢出的方法如上,我们让 entry 的数目为 9 个,第一个长度为 4128, 第二个为 536867423 其他 7个为0x1fffffff

    这样他们加起来溢出之后的值就是 632 这个长度刚好是  structtty_struct 的长度,我们用 qcedev_sha_op_req.data[0].vaddr[4096] 这个数据来填充被溢出的  tty_struct 的内容

    主要是填充两个地方,一个是最开头的 tty magic, 另一个就是偏移 24Bype  tty_operations 指针,我们将这个指针覆盖为伪指针 fake_ptm_fops.

    之后的提权操作与 cve-2016-6738 类似,

    高通加解密引擎提权漏洞解析

    如上,ioctl 函数在 tty_operations 结构体里偏移 12 个指针,当我们用 ROP_WRITE 覆盖这个位置时,可以得到一个内核地址写函数。

    高通加解密引擎提权漏洞解析 

    高通加解密引擎提权漏洞解析

    同理,当我们用 ROP_READ 覆盖这个位置时,可以得到一个内核地址写函数。

    高通加解密引擎提权漏洞解析

    最后,用封装好的内核读写函数,修改内核的 cred 等结构体完成提权。

    参考 

    android_run_root_shell

    xairy

    NewReliable Android Kernel Root Exploitation Techniques

     *

  • 街头爆米花的老人

    街头爆米花的老人

    风吹日晒的生活

    一闻到这种甜丝丝的香味,我的思绪瞬间便飞回到难忘的青葱岁月。那时候,我们村里有一个姓刘的老头,我和伙伴们管他叫刘老爹。

    打我记事开始,刘老爹就专门从事爆米花的行业。他在我们这群孩子的眼中,是最厉害的大英雄,因为老爹一来,我们便可以大饱口福。

    我,石头,二凤三个人最馋,每天像跟屁虫一般,一闻到爆米花的香气,马上来了精气神,跟在老爹的身后,寸步不离。

    等老爹生起火来,我们便飞奔回家取家伙。有的用瓢,有的用破搪瓷茶缸装满黄灿灿的玉米粒,个个兴奋得如一只只撒欢蹦跳的兔子,开心地大叫着,直朝老爹奔来。

    在那个零食奇缺的年代,一锅爆米花仅仅两角钱的加工费。但是这珍贵的两角钱,大人们都能攒在手里捏出水来。吃上一顿香喷喷的爆米花,是我做梦都会笑出声来的好事。

    刘老爹一看到我们三个馋虫又拖着长长的大鼻涕来了,总是笑呵呵地跟我们打招呼。而我们也一改往日的泼猴模样,静悄悄地蹲在墙脚跟,目不转睛地盯着那个像定时炸弹般黑不溜秋的家伙,双手托腮,看着老爹忙前忙后。心里总是搞不懂,这白花花、香喷喷、脆蹦蹦的美味,是怎样变出来的呢?

    老爹的手艺非常娴熟。先带好那副破手套,把锅烧至六成热,然后把半茶缸子玉米粒轻轻倒进锅里,拧紧锅盖,就把那个乌黑锃亮的玉米锅,放在火炉子上来回旋转着烤。

    老爹左手拉风箱,右手转锅,这边眯缝着眼睛,经受烟熏火燎的煎熬,那边还得好好注视着玉米锅后面的压力表。因为时间一旦超时,白花花的爆米花便会变成黑乎乎的“煤炭”。

    随后他一起身,敏捷地把这个黑家伙套入一条长长的布口袋,布口袋另一端用绳子紧紧勒住,专门挡住喷薄而出的爆米花。

    只见老爹将这个沉重的“定时炸弹”放到套着铁皮和废轮胎的布袋外口,左手按住手柄,右脚踏住机膛。

    我们则心领神会地跑到一边,专等着那个激动人心时刻的到来。只听老爹大喝一声:“快捂住耳朵!

    “轰”得一声震天响,一阵白色烟雾夹杂着浓浓的爆米花香味扑面而来。我,石头和二凤连声叫好,不顾滚滚浓烟,一个箭步冲了上去,一起帮着老爹收拾喷到布袋里的米花。

    偶尔有掉在地上的,我们也不嫌脏,拿起来噗噗吹几口气,然后放在衣服角边一擦,一仰头,“咕噜”一声响,掉在地上的米花便悉数进了我们饥肠辘辘的肚中。

    时隔多年,刘老爹爆玉米花的场景至今还历历在目。

    邻村的李大爷,从事爆米花工作已经多年。只要不刮风不下雨,我总能发现他在路边忙碌的身影。

    在外风吹日晒的日子可想而知。李大爷本来就黝黑皴裂的脸庞,常年被烟熏火燎得好似多日没洗过一般,即便带着手套,伸出来时也是沾满煤灰的黑色;手上常年皴裂着血口子,枯柴般的手上青筋暴露,皱皱巴巴,越看越像老树皮;那件乌黑油亮的破褂子,上面布满了被火星烧焦的大小窟窿。

    老人就一个儿子,小两口都在城里上班。因母亲酷爱吃爆米花,因此我经常来李大爷这里加工。大爷总是不得闲,抽空就蹲在大街上挣几个零花钱。

    望着日渐萧条的手艺,大爷无奈地告诉我,现在吃街头爆米花的人越来越少,靠这个手艺实在养活不了全家人的吃喝拉撒。

    他只好一边抽空去帮人家送煤球,一边干他的老本行。可挣得再少,他也舍不得丢弃这个老本行。年轻时一起风雨同舟,同甘共苦,如今进入暮年更是难舍难分,毕竟他们相依相伴了多年。

    老人边仔细地擦拭着陪伴多年的铁锅,边跟我聊天,国家已经不生产这种老式玉米锅,现在超市时兴一种多功能爆米花,爆出的米粒又香又好吃,不仅卫生,而且环保。

    李大爷说这话我信。上一次,女儿和我一起逛超市,花十元钱买了一桶香甜爆米花,吃上一口,感觉味道确实不错。但却没有了那种浓浓的家乡味道……

    李大爷担心,他所钟爱的穿街走巷的手艺活,总有一天会绝迹。老人的眼睛有些湿润,言谈举止中透露出他对这个“知心老战友”深深的眷恋与不舍。我一时语塞,唯祝福老人一切顺心!

    历史的滚滚车轮就是这样神速,它总会把一些旧有的手艺抛弃,让李大爷这样一批手艺人失去养家糊口的饭碗。

    但我们又感恩当下的新生活,它给人们带来了翻天覆地的变化,开启了改革开放四十年的辉煌历史新篇章,人人过上了丰衣足食的好日子。

    即便这样,我们也不应忘记过去艰苦的岁月。父辈祖辈留下的艰苦奋斗、勤俭节约的优良传统,那都是无价之宝,我们任何时候都不能丢。

    忘不了,爆米花老人生活的艰辛不易;忘不了,爆米花老人给予我们的馈赠与关怀;忘不了,那千丝万缕浓浓的故乡情……

    活在当下,珍惜拥有!

    [乡土故事&行业故事汇&微小说首次征文]:家乡老行当的故事

  • “自闭症儿童一元卖画”知道真相后反转了?”中国式公益”为什么老是被打脸?

    “自闭症儿童一元卖画”知道真相后反转了?”中国式公益”为什么老是被打脸?

    朋友圈刷屏的“自闭症儿童公益售画”,又一次让全国人民“爱心爆棚”了。

    只消轻戳屏幕,只需一块钱成本,就能完成一次公益义卖——无论是出于跟风,还是出于同情,绝大多数目睹了那些惊艳“画作”的人们,都虔诚地交付出了自己的举手之善。

    然后,自闭症小朋友就欢天喜地领到捐款,迎来happy-ending了吗?并木有。

    事情似乎开始朝“反转”的方向引——

    先是有人质疑所谓的“售画义卖”是一场营销炒作,获利者未必是自闭症小孩,而是“某些商家”。

    后又有一篇发表于两年前的知乎专栏文章被重新翻出——这篇《不要把自闭症儿童浪漫化》的长文,用详实的论据,告诉我们,绝大多数的自闭症儿童,其实并没有什么过人的艺术特长……

    先是“爱心爆棚”,然后又“内情揭露”,最后又“真相反转”——呵呵,这就是中国式公益的一般流程。

    还真是熟悉的味道,熟悉的配方。

    01

    这些年,几乎所有的“公益”,都延续了“故事募捐”这个套路。

    想做好公益,得先学会讲好故事——比如一个浪漫的故事,催泪的故事、比惨的故事,才能募得理想的公益金额。

    不够惨的故事,需要被网络写手的笔尖加工润色,添油加醋——毕竟,公益资源是稀缺的,故事不惨到一定程度,你好意思出来募捐?

    什么?你说自闭症儿童太多,不够惨不够劲爆?那就要把他们包装得很浪漫,很唯美——他们就是来自星星的小孩,被上帝关了一扇窗都又重开了一扇门的小孩,他们跟病魔搏斗虽然很痛苦,但至少还有牛逼的才艺——那些智力(或社交)障碍的儿童,依然用绳命、用天赋画出了令人赞叹的艺术作品,那简直是感天动地的奇迹——所以,各位看官,你好意思不捐吗?

    这次的“一元售画”,表面上看,人们是为那一幅幅画作心甘情愿地掏出了捐款,实际上,人们更多是脑补了一个个自闭症儿童抵抗病魔,自强不息,奋力作画的励志故事,在这些催人泪下的故事里收获了自我感动,产生了共情,才萌发了捐款冲动。

    然而,那些画不出画,没有过人艺术特长,也没有“腾讯公益”这样的牛逼组织帮忙进行信誉背书的自闭症儿童呢?别说一块钱,他们一分钱也得不到。

    是的,他们才是“自闭症”这个圈子里最无奈、最可怜、最绝望也是最需要帮助的绝大多数,然而,他们连一个能够打动媒体小编的故事都编不出来,也拿不出任何能够“一元义卖”的作品,在舆论中几乎隐身的他们,自然也就无从享受公益力量的施助。

    02

    只要故事讲得好,捐款不会少。

    “一元义卖”这种故事,实际上并不算很新鲜——早在一年前,公益界就有更“火爆”的故事版本。

    各位应该还记得“史上最悲伤小学生作文”吧,大凉山一位彝族小姑娘,以“爸爸四年前死了”为开头写了一篇文章,文章的结尾,连母亲也病故了——而且是因为付不起医药费被迫回家等死。

    这样的文章真是令人泪目啊!马上,善良的人们又按捺不住慷慨解囊的冲动。

    “反转”又接踵而至——很快有人扒皮:“凡是出现‘史上最……’、‘世上最……’这样没法量化参比的大标题,难逃炒作嫌疑!”,“写得太好,平实感人,不敢相信是孩子所写,有可能枪手代笔”

    更有自称“NGO圈知情人士”在网上爆料:“这照片和素材应该是来自索玛花,就是那吃‘慈善饭’的慈善组织中的一员。其负责人创业多次失败,搞了索玛花后就成功致富了。有网友曾经捐过,私下咨询我是否靠谱,我简单查了一下就发现极端不靠谱。”

    “一个好故事——小范围引爆——全网爆款——质疑声音——舆论反转”,这已经成为自媒体时代下,中国式公益恶性循环的标准公式。

    募捐者没有好故事,就无法获得公益的“第一桶金”,但倘若募捐者仅有一个被美化、被包装的故事,缺乏足够的自助意愿和诚信透明,那么从“募捐”到“欺骗”也就是一步之遥,舆论反噬也是情理之中。

    03

    “故事先行”、“卖惨先行”的公益套路,已经成为圈内不成文的潜规则。

    这就陷入一个两难境地——一个更好的故事,才能激起人民群众的捐助意愿,但是被包装的故事终究存在欠缺实诚、欠缺严谨的部分,任何一个火爆的公益活动,都不得不去应对“反转”之后的信任危机。然后在一个又一个的澄清和辟谣中越抹越黑。

    但是,又有比这更好的公益出路吗?募捐者为了使得募捐收益最大化,必然会放大需要援助的事实本身的悲惨度以博同情,同时肯定会隐瞒那些不利于捐助的部分事实。

    比如,一个意外截肢致残的人募捐,他会去渲染医药费很贵、医保覆盖面太窄,哭诉自己很穷;但是,他可能不会告诉你,他家里还有一套房可以卖;

    再比如,一个城市打工妹说自己妈妈重病需要100万医药费,说她全家人都掏不出钱;但她可能不会告诉你,其实她还有个哥哥是亿万富翁,是因为对家人有怨气才不肯掏钱!

    另外捐款的去向和用途,也不可能长期跟踪监督;募捐者和捐助者之间,永远也不可能存在绝对的信息对称。

    04

    那我们该怎么办?在中国目前的现状下,我们大多数时候,是必须通过不完美的公益渠道(欠缺监管和规范的公益组织和基金组织),去捐助一个不太完美的弱势群体(这些募捐者可能会说谎,可能真实的生活条件并没有吐槽的那么惨),这里面存在大量的灰色地带和博弈空间。

    毕竟,我们不可能精确地度量一个受捐者的“惨度”,也不可能用数学公式精准计算出每个施助者“应该捐多少”才算诚意到位,而若是一方或双方违背了公益的原则和公约,对社会信誉的伤害到底有多大,更是无从计量。

    但话又说回来,近些年各种各样的“骗捐”、“诱捐”事件,真的是对公益事业的抹黑和打击吗?在我看来,那恰恰正是公益的进步——公益样式的丰富(至少讲故事方式、陈述惨情的方式进步了)、公益舆论反转的几率增高,恰恰更有利于提高人们的泪点,有助于人们以更理性的态度对待公益。

    而通过各种渠道进入公共视野的公益事件,通过正反双方的激辩,分别演化成支持力量和监督力量,既保证受捐者能够获得必要的捐助,也防止骗捐者“因捐致富”,最大限度保证公益不偏离应有的初衷。

  • 《陆子昂探案集:第六种态度》(2)

    妇人站在了眺望整座城市的至高点。

    她很喜欢这种俯视城市的感觉,这是她所投资的成果,整个城市大部分的经济系统都是由她建立的,所有人都因为她的企业才能够拿到满意的薪水。这种从金钱上主宰的感觉并不让妇人怦然心动,她比较喜欢从人品上来服众。她总是觉得自己生活的非常如意,她的每一笔投资和引以为豪的儿子都带给了她是一个成功人士的景象。

    这只是一种景象。

    事物的背后总是有一些人在默默无闻的推动着,每个事物的背后都有不为人知的黑幕。

    妇人站在别墅的天台上,手紧紧的握住栏杆,眼角时不时掉下珍珠般的泪珠。她的皮肤经过多重护肤品的保养显得整个人像是一个年轻的女孩儿,但是经过眼泪的洗礼过后,妆都已经花了,皱纹也渐渐地浮现了出来。那种高高在上的感觉瞬间被打散,现在的她只不过是一个失败的人。

    大部分女人的哭泣不是为了事业上的失败,而是因为情感的破碎。丈夫因生意场上的失败跳楼自杀,整个家庭就没有能担家的男人。妇人一直扮演担家的男人这个角色活了十几年。她从来都没有感觉到自己被现实的秤砣压的很沉重,因为她的儿子需要过上衣食无忧的生活。这个当时仅仅十岁不到的孩子却是一个女人成功的动力。

    现如今,儿子疯了,而且疯了好几年,直至今日才知道真相。从最初的不相信变成了最后的相信经过了很久,这段时间她就这么站在天台上任由冷风打在她柔弱的身体上。

    “想不甘屈服于现状,你就得做出点改变。等少爷回来的时候,请您一定要克制自己的情绪,无论他说什么做什么。”

    这句话是主治心理医生对妇人几小时前通过电话做的心理暗示,其实也不算是暗示,更多的应该算是提醒。很多心理学专家曾经对妇人的儿子做过无数次心理分析,得出来的结论都是不尽人意的。这个结果早就被主治医生料到,所以为了减少对妇人的心理伤害,她决定在澳洲对这个少年进行秘密治疗。关于这位少年犯病的原因被澳洲政府隐藏,甚至被列为国家机密,大部分人都不得知。而这个主治医生异常的清楚,少年是怎么得病的,要是别人问起,她也只能回答PTSD。

    当然,她也是这么回答妇人的。

    此时的妇人只能等待着少年的回归,想亲眼看到自己的儿子,那个小时候奶声奶气的叫着妈妈的男孩儿,现在是什么样?

    妇人此时面对着灯火通明的城市正在对自己儿子未来进行合理的规划,但是她的思绪被突如其来的高跟鞋踩地的声音打断了,这种声音非常的急促。这个身材娇小的女孩儿身穿一袭白裙,怀抱着一个个文件夹,焦急的情绪毫无保留的写在了脸上。

    “夫人,不好了!少爷的事情已经惊动了市政府,公安局已经排出了警力对强子那边实施了抓捕。”

    女孩儿断断续续的说着,声音并没有因为喘气变得模糊。妇人只是皱了皱眉头说道:“警方是不是认为这是一起绑架?”

    “差不多。”

    妇人下意识的揉了揉太阳穴,这一天的事情实在让她难以接受。她吩咐女孩儿道:“叶子,你给公安局去个电话,先收回警力,明天我去找他们的张局长喝茶。你就这么说就好了,他们会懂得。”

    叶子看到妇人这样不由得心疼了起来,那个曾经每天对她微笑并且开她玩笑的女人现在如此不堪,这几年妇人对她来讲就犹如自己的亲生母亲。很多人都说,叶子是一个没爹娘疼的孩子。在他们嚼舌根子的时候,妇人总是会回答,我就是叶子她妈。每一次回答都让叶子感觉这是一件真实的事。

    叶子只能说声好,自己在离去。独留妇人一人站在阳台上,此时她的背影非常孤单,同时也苍老了许多。高跟鞋声音的离去之后的那一瞬间,男士皮鞋踩在地面上的声音响起。这种声音并没有高跟鞋的声音那般急促,反而是很优雅甚至踩在地面上还有一种柔和的节奏,那种声音令妇人感到心中一丝温暖,她用手强行抹去眼角的眼泪,轻轻地说道:“你来了。”

    男人虽然穿着一身名牌西装,但是并没有那种绅士的气息,反而有一种童心未泯的气息。嘴里面叼着一根棒棒糖,手上还紧紧的攥着一颗弹珠。他就是风靡全国的犯罪心理专家,冷子衡。这个人平时生活习惯非常的怪异,甚至有的时候从医院借来人体器官看着他们发呆,甚至对着它们说话。这一幕差点把他的女朋友给吓到跳楼。

    冷子衡缓缓地走到夫人身边说道:“关于小陆的事情我听说了一些,您让我调查的事情我可能已经有了些眉目。五年前在墨尔本的时候,有一场火拼,没准就是那个时候,小陆得了PTSD。我知道的只有这么多。”

    夫人笑道:“不愧是冷子兴的后代,这种国家机密都能被你搞到。”

    冷子衡淡淡地说道:“这跟后代有什么关系,不过八卦不是我的专业,还请姐姐不要把我当成八卦记者。这次我带我女朋友来不是来度假的,而是要对小陆进行一次心理全面的评估,我们会根据这份评估来确定一条可行性极高的治疗方案。”

    妇人说道:“什么事交到你手上我就放心了。对了,那个治疗小陆的澳洲心理医生听说副修跟你一个专业,她一直在治疗小陆,希望你们能合作愉快。”

    冷子衡双手一摊,说道:“姐姐,你没听说过一山难容二虎吗?”

    妇人说道:“你先等一下挑衅,我听说那个心理医生还蛮出名的。据说她曾经光用嘴就治疗了三个重度抑郁症患者。”

    冷子衡笑道:这就扯了。姐,还有你这个专业不对口啊!她是主修心理医生专业的,我是学犯罪心理出身的。这不一样啊!”

    夫人道:“都是心理,有什么不一样?”

    冷子衡无所谓道:“等他们来了之后,我会让姐姐见识心理学真正的不同。

    上一章

    目录

    ——————————————————

    这一章写完了,我感觉断更好久。我这几天都比较忙,学业上的事情让我在写作上只能慢的跟蜗牛一般。原本我设计的冷子衡本不应该出现在这里,我突然想让他出现在这里,我自己也不知道为什么。他是另一个系列里的,这算是一种福利吧!还有本书涉及到的所有事件纯属虚构,切忌信以为真,后果自负。

    关于冷子衡是冷子兴的后代纯属虚构,如果你们要是真的相信我也没辙,哈哈哈哈!

    这一章我写的不是很好,主要是想写出妇人那种复杂的情感,貌似有点啰嗦了。

    对于那些知道我这本小说大纲的出版商大叔和极小部分读者不要剧透,谢谢合作!

    本书由叶繁衡创作,侵权必究!

  • 每个人都是孤独的旅者

    每个人都是孤独的旅者

    银 河

    普吕多姆

    有一夜,我对星星们说:

    “你们看起来并不幸福;

    你们在无限黑暗中闪烁,

    脉脉柔情里含着痛苦。

    “仰望长空,我似乎看见

    一支白色的哀悼的队伍,

    贞女们忧伤地络绎而行,

    擎着千千万万支蜡烛。

    “你们莫非永远祷告不停?

    你们莫非是受伤的星星?

    你们洒下的不是星光呵,

    点点滴漓,是泪水晶莹。

    “星星们,你们是人的先祖,

    你们也是神的先祖,

    为什么你们竟含着泪?……”

    星星们回答道:“我们孤独……

    “每一颗星都远离姐妹们,

    你却以为她们都是近邻。

    星星的光多么温柔、敏感,

    在她的国内却没有证人,

    “她的烈焰放出满腔热情,

    默然消失在冷漠的太空。”

    于是我说,“我懂得你们!

    因为你们就像心灵,

    “每颗心发光,离姐妹很远,

    尽管看起来近在身边。

    而她——永恒孤独的她

    在夜的寂静中默默自燃。”

    每个人的心,就像星星一样,在自己的轨道独自发着光,在夜的寂静中默默自燃。

    看起来离得那么近,实际上远只是远的量不出距离。

    记得有人说过,这辈子,遇到性,遇到爱,都不稀奇。

    难的是遇到了解。

    也许不是每个人,都曾尝试过,两个人之间彼此信任,互相依偎,仿佛呼吸的空气都是甜的。

    但但凡尝过一次,便再也忘不了这样的感觉。

    这半年来,我过的很充实,我每天学习,积极健身,内心强大,很少流露出负面情绪。

    也很少,去信任一个人。

    我的每一样物品我都清晰地记得放在哪,我的包不需要别人帮我拿,我很少主动向人请求帮助。

    越是这样,我越是渴望有一个懂我的人,或者我的同类,一个能与我彼此信任的人,并肩前行。

    就像小时候,离家太久,会想念妈妈的责骂,外公的疼爱。

    每个人都是孤独的旅者

    跟妈妈通过电话时,妈妈随口说傻人有傻福。

    我想想是啊,活的太清醒的人,很难再体验到完全信任一个人的快乐。

    那种感觉就像小时候,躺在妈妈的怀里,外面再多纷争吵闹,甚至眼角还噙着泪,自己的世界也是安静喜悦的。

    深深地,与另外一个同样孤独的灵魂连接的感觉。

    就算是哀,是怒,是伤心,是难过,也是幸福的。

    你倾诉的那一刻,有人懂你,有人包容你,你可以全然放心地展示你自己。

    活得太清醒,人性看的太透,对于有能力的人来说,获得快乐也很简单,这种快乐,来自自身能力和外界环境以及社会认同的安全感。

    但终究也是孤独的。

    这种来源的快乐,与两个彼此全然信任的灵魂,互相依偎的喜悦来比,太微不足道了,是两个完全不同的深度。

    从没体验过这种感觉的人,有理性的快乐,已经足够了。

    体验过一次这种感觉的人,便注定了一生都会追逐这种喜悦。

    每个人都是孤独的旅者

    很多人会说,我不孤独,我每天很开心。

    你的确不孤独,只是你有曾从花花世界里,安静下来,感受过来自己的心吗?

    问问她还有感受的能力吗?

    还是已经麻木了。

    也许只有当离开这个世界的前夕,猛然发现自己什么也带不走,才会再次感受到那颗被忽略的心吧。

    喜怒哀乐,七情六欲。这本是人的本性。

    乐也只是人的一个面向,何必都要像庄子那样,在老婆去世时,都要锣鼓震天,宣扬自己的快乐呢。

    如果是真的,如同庄子般,了悟了人生确实一场春秋大梦,离开值得庆贺,倒也无妨。

    若是,内心明明觉得不舍,难过,委屈,为什么不让情绪自然地流露出来呢?

    是没有一个可以信任的倾诉的人吗?

    还是根本没有时间精力,感受这些“无用”的情绪?

    流着泪也可以奔跑啊。

    只是,你敢流泪吗?

    怕流出来的眼泪,映着的全是冷漠和嘲笑,却独独少了帮你拭去泪水的双手。

    每个人都是孤独的旅者

    每个人都是孤独的旅者,从出生那一刻,开始了自己孤独的旅行。

    每个人的心都是一颗独自闪耀的星星,有时候很幸运,和其他星星的轨迹重合了,然后又分开了;有些星星,一直都只能在自己的轨道默默前行。

    而我珍视的,就是那些纵然短暂却因彼此重合,而发出的绚丽的光。

  • 那些敢于说真话的年轻人,真的回来了?

    那些敢于说真话的年轻人,真的回来了?

    文 / 纳兰央措   配图 / 源自网络

    最近几日狂追《中国有嘻哈》,那些在舞台上“唱着饶舌的歌,做着真实的我”的rapper们,每次鼓点响起,无论是自由、骄傲的动作,还是歌词里随处可见年轻人那种倔强而自信的张力,以及对理想的追求与坚持,对不公正的社会现状的揭示和批判,都让我激动不已。

    是的,《中国有嘻哈》第一次以一个陌生的面孔,站在我面前,却把我的心全部带走。

    它没有流行音乐的那种委婉与伤感,直接、生猛、带着点睥睨天下的骄傲样子,砸面而来。它在摔杯为号的同时就替你签好了投名状,它的Flow带你用一种下意识都无从抗拒的节奏,直视所有年轻人注定避不开的迷茫与挫折。

    而且,这种节奏的张力与代入感,直达所有年轻人的内心深处,让原本早已深埋心底的骄傲与不羁,彻底释放出来。

    “人生漫长,我劝你好生走路!”

    GAI的这首《天干物燥》,从一开始平易近人且带着点搞笑噱头的“天干物燥,小心火烛”,直到后面的“天赋太高都是我的错,锋芒毕露都是我的错,优点太多都是我的错,反正做啥子都是我的错,你我道不同就不想为谋”,都从表面之上,一刀切入内心,鲜血直流。

    从某种意义上说,这些rapper是不是灵魂歌手并不重要,嘻哈精神更深层次的承载也无足轻重,重要的是作为观众的年轻一代能在精心编排的演出中看到自我的倒影

    热追《中国有嘻哈》的年轻一代,对台上身经百战的rapper们连珠炮般表现出的“相逢意气为君饮,系马高楼垂柳边”,虽身不能至,但心向往之。当前者面对生活的重压,也一定想复制那份火与冰的结合——激愤时比火炽、沉默时比冰酷。

    如果说《中国有嘻哈》真的注意到了什么,那就是注意到了在“经济与社会的飞速发展vs精神与灵魂的停滞焦虑”这对矛盾挤压下的年轻人更需要进行彻底的表达。

    这份被压抑着的、渴望表达的夙愿是最肥沃的土壤,rapper们叫嚷着的“不信命”是及时雨、亦是良心肥。《中国有嘻哈》的创新绝非仅体现在参赛选手均具有唱作能力这件事上,更重要的是他们创作的内容时刻提醒着听众:你应当成为自己的主宰,每个人应当决定自己生命中所有一鸣惊人的时刻。

    那些敢于说真话的年轻人,真的回来了?

    9月2号晚,节目组邀请了四位实力唱将加盟,并和rapper们同台演绎,帮唱嘉宾分别是:周笔畅、信、王嘉尔、袁娅维。

    在选手第一次试选的时候,信没有选手选择;在第二次试选的时候,信还是没有选手选择;在最后的互选环节,艾福杰尼因为有四个Verse而被袁娅维委婉的拒绝,没有选上合意的帮唱嘉宾,而不得不和信搭档。

    这时的信经过前面状况已经看出艾福杰尼并不愿意这样配对,信就直截了当问艾福杰尼:”是不是不愿意我们之间的合作?” 

    艾福杰尼倒也不拐弯子,直接了当的回答:”不愿意!” 在这种情况下信说,“我愿意退出比赛,我觉得他们比赛很重要,然后酬劳我可以退回去。我希望制作组能再给选手一次选择机会,赢要赢得痛快,输要输得甘愿”。

    正典重论忙着批判年轻人陷于犬儒与颓唐,却忽视了沉浸者身上那种再努力也难以打破固化剧本的绝望:发展前景迷茫、前进道路曲折、追求成功而不可得,即便费尽解数博得一寸“小确幸”,也不得不接受整片人生的“大失去”。正所谓等死不如作死、作死不如躺尸,这种虚拟端的消极态度正是年轻人对于现实世界的一种温和反抗。

    于是,那些缺乏机会、感受不到公平、需要表达、充满焦虑的年轻人构成了“嘻哈”这把星星之火,在PG one的那句:“如果这样,我宁愿退赛!”一下子点燃了燎原之火

    那些敢于说真话的年轻人,真的回来了?

    赛制过程中,无论是Idol和Underground两个不同派别的互相Diss,还是GAI与PG one的相互不服,都不足以让这个赛制改变什么,唯一的就是GAI的那句:“你只有一个Verse,那你就是弱啊!”

    该说什么就说什么,敢说社会不公,敢抨击社会现状,敢怼主流艺人。

    这也是信在离场前,对四强唱那首《如果还有明天》的原因。因为他明白舞台上的去留,对于一个搏命挣扎到最后四强的选手来说,有多么的重要和重视。

    你们就像一群天不怕地不怕的野兽,打破了所有的规则。所以呢,请你们照顾好心里的那只野兽,保持愤怒,你们所做的任何的决定都没有错,但是,有可能,会错过。错过你成为经典的机会,我们一直这么这么这么努力的,不就是要站在这个台上吗?所以希望大家能够珍惜每一次在台上的机会。

    嘉宾被歌手拒绝有多尴尬可想而知,然而,离开赛场,信表示接受这个结果,他说:”歌手为了展示最好的一面,有这样决定很正常。”并鼓励选手们要保持这种”疯狂”。

    信开场曲《如果还有明天》燃炸全场,诚如艾福杰尼所说:信才是真正的Real man。

    那些敢于说真话的年轻人,真的回来了?

    冯唐曾说过:”除了前途,我们这代人从来就没有过任何其他可以奢望的东西,仅此而已。

    倘若连说真话的权利都被消磨干净,那年轻的一代,还有什么前途?

    很庆幸,《中国有嘻哈》把那些敢于说真话的年轻人,带了回来。

    – end –


    如需转载请至公众号留言,并在文末署名作者相关信息,谢谢支持。

  • 离不了婚的女人

    离不了婚的女人


    1.

    林兰站在民政局门口等郑毅办离婚。

    约好今天早晨10点见,可已经快中午了,她还没有见到郑毅的人影。

    初秋虽凉风习习,可中午的日头还是有些热腾腾的,晒得人难受。

    对方的电话一直处于关机状态,林兰心中焦躁却无处排解。

    “你是林兰女士?”电话那边的声音异常郑重。

    “你是谁?”林兰一看是陌生电话,语气并不友善。

    “我是城南警察局,您的老公郑毅昨天在风暴夜总会的火灾中身亡,需要你尽快来确认一下尸体。”

    林兰像被当头泼了一盆冷水,脖子也像被扼住一样,呼吸短促,她声音颤抖着,“警察同志,你不会弄错了吧?确定是郑毅吗?”

    对方的语气依旧镇静,不过不像刚才公事公办的冰冷,而是有了一丝温度,“我非常了解您的心情,请节哀。是这样,他的口袋里有烧焦的身份证,还能看清楚名字。稍后法医会进行DNA比对,最后确认死者身份,这需要您的全力配合。”

    林兰的脑中一直盘桓着警察说的每个字,身子有些虚飘飘的,好久才吐出一个字,“好。”

    到了城南警察局,刚刚通过电话的王警官接待了林兰,还给她做了相关的登记。

    “林兰女士,带您去看郑先生的尸体前,我得先跟您说明一下,他的尸体已经烧焦,看起来可能有些可怕,而且怎么说呢,还有一点需要您有点心里准备。”王警官吞吞吐吐地,不像刚联系林兰时那么干脆简洁。

    林兰心中疑问重重,难道说郑毅的死,事有蹊跷?

    “王警官,您直说吧,我心里有准备,什么都可以接受。”林兰的话非常干脆,说服王警官的同时,也是让自己鼓足勇气。

    “郑毅是跟一个女人抱在一起烧焦的,两具尸体粘连的比较厉害,现在还没有剥离开。”王警官尽量让语气平缓,还不时地观察着林兰的表情。

    听完这话,林兰惨白的脸上果真有些泛红,她咬紧了嘴唇,身体微微地有些颤抖。

    片刻迷离后,她的眼神突然充满了坚毅,果断地对王警官说:“带我去看看吧。”

    两具焦黑的尸体,面对面紧紧相拥,无声地躺在那里。

    林兰扫了一眼,一股焦臭的味道直袭鼻间,胃里也在不停地翻滚,一道热流冲到喉头,她刻意地压了压,却抑制不住酸水上涌,于是她一转身冲出停尸房,蹲在门口哇哇大吐。

    王警官追出去时,只见林兰蹲在墙边无声地抽泣,他拿了一包纸巾递给她。

    林兰接过纸巾在脸上随意擦拭,强撑着倚墙站起来,试图平息胸中翻江倒海的情绪,过了好久才挤出一句,“当寡妇也好,利索了。”

    2.

    窗外暗黑一片,只有远处的霓虹灯如梦境般闪耀。

    空落落的屋中只有林兰一人,她从警局回来就一直坐在客厅里发呆,连灯都没开。她出神地望着远处的梦境,脑中一会儿闪出郑毅离开家的前一天,摔门而去的冰冷果决,一会儿闪出警局里那一对儿炭黑的尸体。

    林兰脑中纷乱,仍不太相信郑毅已死的事实,也没想好怎么跟还在寄宿学校上学的儿子说。她想不通为什么郑毅放着好好的日子不过,跑到夜总会去跟女人瞎混。

    一直以来,她认为离婚只是因为两人日子过久了,磨没了感情,彼此都无法忍受冰冷的关系,仅此而已。但是今天亲眼所见,却把她曾经天真的想法敲得粉碎,连带曾经有过的感情,也敲得粉碎。

    结婚将近二十年,林兰没想到最后竟然如此收局。

    不知怎的,她回忆起跟郑毅的第一次相遇。那还是上大学时,她在水房打热水,郑毅从她旁边经过时蹭翻了她的热水瓶,开水直接倾倒在她的脚上,郑毅慌慌张张地把她背到校医院。

    她躺在病床上疼得直哼哼,郑毅一张白皙的脸上急得通红,只围着医生不停地念叨着同一句话,“医生,她会不会残疾啊?”

    医生不耐烦地说:“这么点小伤就能残疾?我看你还是担心一下,女朋友好了别把你打残吧。”

    “女朋友?”“他?”他俩异口同声道。

    医生的话暂时转移了林兰的疼痛和郑毅的焦虑。

    从此,郑毅赎罪般天天背林兰上下课,两人也从冤家慢慢地有了感情。

    林兰回忆起那段日子,心中洋溢起久违的幸福感觉,他们也曾有过美好的爱情。

    她又想到郑毅跟她求婚的一幕。

    那时两人刚毕业,他们终于从实习期熬到转正。那天,郑毅用一整月的工资买了一个简易的指环,还在出租屋做了满满一桌的饭菜。

    林兰进门时,只看到一屋子五彩缤纷的气球,上面写满了:“我爱你”、“嫁给我”、“许你幸福”。她呆呆地站在门口,手捂着嘴,感动地热泪盈眶。

    郑毅几步上前,单膝跪地,把戒指套到她的无名指上,起身拥紧了她,在她耳边低喃着,“嫁给我,我会呵护你一辈子。”

    她哽咽着无法出声,一直在点头。

    他把她脸上的泪水都吮吸干净,然后吻上她的唇。他的眼眸闪闪发亮,宠溺的声音洋溢在她的耳边,“不许你哭,以后跟我生活的每一天,我只让你笑。”

    当时的爱情,甜腻却欢天喜地。每天一睁眼希望就能看到对方的脸,无论彼此是流着涎水,呼噜震天,亦或是浅声梦语,都不会影响他们心间流动着暖暖的甜。

    离不了婚的女人


    可是,渐渐地,甜蜜消失了,取而代之的是屋中冷锅冷灶,她已经很少听到情话,准确地说是很少听到他说话了。

    他加班回来,倒头就睡。

    她想跟他聊天,他会烦躁地拒绝。

    “很累了,不想听。”

    “不敢兴趣。”

    周末只要他一接到电话不跟她打招呼就出门,等到回来时,夜已阑珊。

    他可以对着电脑发邮件,拿着手机看新闻,或是在电视上刷电影。

    屋子里,没有人语,只有电子设备闪着毫无温度的光。

    她试穿一条新裙,他会视若无睹;她化了别致的妆,他懒得抬头看;她升职涨薪,他无动于衷。

    林兰不知道郑毅到底怎么了,为什么把她当个家具,当个摆设。

    后来,林兰也觉得,彼此就是对方生活的摆设,跟沙发、茶几一样的摆设。

    霓虹灯还在窗外闪烁,那些都是别人家的万家灯火,跟林兰无关,跟幸福无关,跟悲哀无关

    3.

    林兰的思绪已经出魂离窍,完全没有意识到屋门被人打开。

    “吓死了我了!大半夜不开灯,坐在窗子底下干吗?”一个熟悉的男人声音。

    灯应声亮了,林兰回头,看清进屋的人竟然是郑毅,她失声大叫:“鬼?”

    “你脑子有病吧,你才是鬼呢。”郑毅一副不耐烦的口气。

    “你没死?”林兰站起来冲到郑毅面前,她盯着对方,想分辨出他是不是真的还活着。

    郑毅看了看站在眼前的林兰,头发松散,眼睛红肿,一副落魄模样,讽刺道:“你是不是天天盼着我死?”

    林兰听到熟悉的讽刺,伸手拍了拍郑毅的脸,是温热的,
    说明他是活着的。她突然大笑着扑过去,搂紧了郑毅的脖颈,把头埋在他的胸前,不停地念叨着,“还好你没死,还好你没死。”

    郑毅被林兰弄得莫名其妙,但是看到林兰喜极而泣的模样,也抬起垂在身旁的胳膊搂住了林兰。“不是说离婚吗?怎么?舍不得了?准备一炮泯恩仇?”

    林兰不管他的冷嘲热讽,而是安安静静地拥着他,她发现自己原来对郑毅还有感情。

    郑毅听林兰的叙述,才发现错的有多么离谱。

    那天,郑毅的发小老李喝得胃出血,夜总会的人打电话通知郑毅,他的钱包应该就是在接老李时被偷的。这老李刚离婚,家里没人照应,郑毅只好留下来陪床,后来手机没电了,却懒得通知林兰。

    那贼兴许就是偷了钱包就留在夜总会风流,没想到却丢了性命。

    “身份证丢了,补办得一个月,离婚的事儿得拖一拖。”郑毅一字一句的试探林兰的反应。其实,他已经意识到林兰对自己还有感情,毕竟一起生活了这么多年,还有一个准备高考的儿子,而他自己也同样不想离婚。

    “好,等你身份证办好再说。”林兰紧张的心情随着事实的明确,也渐渐松弛了,她揉着酸胀的太阳穴。

    “又头疼了?”郑毅自然地把手放在林兰的太阳穴上轻揉。

    “今天真是吓死了。”林兰舒服地闭上双眼,享受着郑毅手指尖的力道和温度。

    “儿子明年就高考了,不能有差池啊。”郑毅边揉边说。

    “是。”林兰也在担心他们感情出了问题,会不会影响到孩子。

    “要不咱不离了?”郑毅试探地问着。

    “等孩子高考完再说吧。”林兰呼出胸中憋闷的一口气,顿时畅快了许多。

    离婚风波经历了这次闹剧,终于偃旗息鼓。家中恢复了曾经的夫唱妇随,林兰的眼角带笑,郑毅的嘴角上扬。

    4.

    每个月的最后一个星期天,是儿子郑元浩回家的日子,夫妻二人一起下厨房,准备儿子最爱吃的饭菜。厨房的香气飘满了全家,还有不时的欢声笑语飘出来。

    郑元浩进门时,就发现家里的气氛有些不同寻常。他蹑手蹑脚地走近厨房,难得看到父母不是冷面相对,不是互相讥讽,而是正常聊天。他手里的东西紧了紧,快速地塞进了背后的书包里。

    “儿子回来了?”父母同时转头,笑容温暖,元浩有了刹那的感动。

    “爸、妈,我回来了。做什么好吃的呢?这么香?”元浩扫去心中阴霾,表现出欢天喜的样子,趴到刚做好的饭菜前低头嗅着。

    一家人其乐融融的交谈声、笑声,温暖着从窗外透进来的冰冷月光。

    “你发现没有,儿子今天的状态不太对劲。”林兰坐在梳妆台前贴面膜,声音满含担忧。

    “发现了。你说他是不是这次摸底考试考砸了?”郑毅从刚刚翻看的手机新闻上抬头,看向林兰。

    林兰脸上带着面膜,回头看向郑毅,“不能吧?儿子一向学习上不用操心。”

    郑毅叹了一口气,“话别说太满了。老李的儿子一直都是学校培养的清华北大的苗子,结果今年考完,差点连个211都没考上。”

    “也是。要不我去问问儿子?”林兰听完郑毅的话更加紧张了。

    “行,别给他太大压力。”郑毅嘱咐着。

    林兰摘掉面膜,向儿子郑元浩的房间走去。

    儿子已经睡着了。

    林兰看着他熟睡的脸,宠溺地拢了一下他的刘海,心疼地想儿子学习也太辛苦了。

    她无意间瞥见放在书桌上的书包,发现上面有一块儿大的油渍,于是把书包里的东西轻轻地掏出来放到桌上。在书包的最底层,她发现了一张照片,上面是老公拥着一个半老徐娘的腰,正从酒店走出来。

    照片从她的手里飘落,她的心情百味杂陈,怨恨、恶心、失望,还有对儿子的担心。

    林兰记得儿子有写日记的习惯,她在书桌上找到了儿子的日记。

    201×年9月30日 晴

    我不想让父母离婚,虽然知道他们早已没有感情。

    他们为什么不离婚?只是为了不影响我学习吧。

    所以,我一直拼命学习,只有这样,才能让他们陪在我身边。

    我是不是很自私?

    拿到这张照片时,我有些绝望,我不想这么拼命地苦心维持这个家庭的泡沫。

    但是,今天看到爸妈的状态,我又重燃希望,还想自私最后一回。

    对不起,妈妈!对不起。

    林兰捡起了那张照片,撕地粉粹,紧紧地握在手心里。