图灵禁区——指尖的咏叹调(43)
一、一起运动楚英纵突然可疑地卡壳了一下,我只是没起来床!
好吧。余景树说,阿夜不接我电话,我只能找你转告一下他:我跟他们系里打过招呼了,以后大一新生的基础课程他可以不用去签到。月底的时候,班主任会给他安排一次全科考试,只要通过就算作他免修,不用计算平时成绩。
哇哦楚英纵羡慕的口水都要流下来了,怎么突然给他这么爽的待遇?
余景树打了个哈哈:这个是他的实力决定的。你想要的话,也可以跟着他一起考试,能拿全科95分以上就加你一个。
那算了。楚英纵咸鱼躺了回去,我静静看着他爽就行了。
余景树笑了一会儿,又说:这周阿夜可能会比较忙,你不要太打扰他。怎么样,最近宿舍生活还好吗?
还行吧。楚英纵随口回答着,然后有点狐疑地问,你怎么突然又开始关心阿夜的平时生活了?什么叫他这周可能会比较忙你们俩是不是偷偷在商量什么事情?
那倒没有。余景树滴水不漏地说,老师也算是将阿夜托付给我,我当然要多上上心。英纵啊,我希望以后我们都是一家人了,你也是这样想的吧?
楚英纵又卡了一下。
一家人?!
虽然明知道余景树说的是另一个意思,但此刻他不由自主地想歪了十万八千里,脸色也红了起来,支支吾吾道:再、再说吧。
便挂了电话。
余景树:!!!英纵这孩子,难道说终于默许了吗?!
这几年来,余景树照顾着楚妈妈,照顾着照顾着又近水楼台、日久生情,忍不住想要更进一步。
但奈何楚英纵也是个大小伙子了,他对余景树做继父的抵触之情,被楚妈妈看在眼里,当然也不可能枉顾他的意愿。
现在楚英纵的意思好像是松口了?
余景树心中一阵激动,实在是高兴得不能自已,翻出通讯录,就给楚妈妈发了一条讯息:【等我手上这件事情处理完,我们找英纵、阿夜一起,四个人出去旅游几天吧。阿夜也同意了,英纵也同意了的。】
楚妈妈很快回复道:【好呀。年关也快到了,我最近单位也在组织旅游,不如我们带两个孩子去游乐场?】
余景树强忍着激动,装作淡定地回复道:【好,那我这就开始准备。】
yes!!
接着余景树直接从办公椅上跳了起来,不顾身后小弟们的瞩目,开心地原地比了两下拳头,接着端回自己的咖啡,满脸幸福地开始了新一轮的加班工作。
于是,事情兜兜转转,绕了一圈。
当时夜晨练回来时,发现自己又收到了来自余景树的短信。
【余景树:事情有进展了吗?我这周都会加夜班,你可以随时找我。】
时夜想了想,难得回复了一条短信:
【会比预计中的时间久一点。】
因为,他现在不能再三天三夜地拼命了,宿舍里还有着个傻乎乎的学长在干扰他工作,不准他透支自己的身体。
真是个令人烦恼的黏人学长啊。
怀抱着这样的烦恼,时夜今天并没有去上课。果然如余景树说的那样,上面已经跟学校打过招呼了。
白天,楚英纵不在的时候,时夜闭关沉思。
破解一个系统,对他来说是一件有趣的游戏,就像孩提时期,他第一次接触数独;就像黑客大赛上,千军万马入侵一台服务器,为此要寻求各种可能的路径。
传统意义上的移动系统破解,一般分为以下几步:
第一,进入手机的恢复或者DFU模式,进行一次REBOOT,从而得到写入权限。
第二,开始引导系统写入数据,获取破解程序的运行权限。
第三,在运行权限下,开始安装破解包。
第四,当破解包安装完毕之后,结束手机的恢复模式,开始正常运行系统,运行破解包。
第五步也即最后一步,便是让破解包运行完毕后,再次REBOOT,开始引导破解系统,至此便宣告这部手机已经被破解,俗称越狱。
目前在世界最大的0day黑市Zerodium上,已经有人在打包出售过去历代的IOS破解包和相关漏洞。
这些东西并不贵,因为过期的0day不如狗,只要任何人愿意花一些时间,总能在大量的暗网和灰色、黑色市场上收集齐全。
时夜仅用几美分,就购得了上一代Unc0ver破解包的源代码,它自身的原理是利用一个FlateDecode数据流中的一个字体文件漏洞来进行越狱。
通过重构和部分改写,他得到了一个适合自己节奏的破解包。
但这部分不是难事,真正难的是如何绕过IOS系统的认证因为这个老破解包使用的漏洞早已被新的IOS版本修复了,所以时夜必须找到一个新的0day。
这个漏洞要足够严重,致使一台原生态的IPHONE能够安装这么一个来历不明的软件,也即,要获得Kernel核心的写入权限。
对于原生态的IOS系统,每次安装软件时,都必须要验证一个软件的证书该证书通常由苹果公司亲自签发,或者由他们信任和指定的第三方机构签发。
没有被苹果公司审核过的软件,当然就没有证书。
这就好比一个人想要过海关,却没有护照和签证一样,看上去有些荒谬。
现在,时夜的目光就落在了这个证书上。
就在今年1月,微软更新了他们的椭圆曲线密码证书的算法,它是计算机界的第9代护照。
作者有话要说: 此处应有参考文献大概上千篇。
但是作者懒得装这个逼,请大家将就脑补一下吧。
好吧,其实因为都是基础知识储备,不用查资料也能写【手动狗头
第58章
没有去上课的时夜, 今天坐在图书馆里,借用这边的网络。
当楚英纵上完课来招人的时候,就看见这冰山小学弟坐在某个多功能媒体室的最角落里, 若有所思地看着自己的笔记本电脑,眉头有若有似无的皱起痕迹。
问题真的很难解吗?
楚英纵走进来带上了门, 看了时夜一阵, 不知不觉把自己带来的橘子全剥好了,悄悄放在时夜手边。
时夜抬头看向楚英纵。
楚英纵:我超安静的!没打扰你!
时夜默默地又低下了头。
过了一会儿, 楚英纵偷瞄着时夜屏幕上的内容, 见他这次好像在看一个dll文件, 看函数名的名字大概为:CertDllVerifyMicrosoftRootCertificateChainPolicy
楚英纵不由好奇地问:你不是要破解手机吗?怎么在看数字证书的东西?
时夜道:ECC更新了新版本,和IOS兼容性不是很好,可能有漏洞。
楚英纵听了, 精神一振:有道理啊!
他跟着也瞄起了屏幕,粗略地看了看里头新更新的函数。
根据版本更行后的对比来看,微软这次主要是修改了几个证书链接策略有关的函数, 新增了几个对于新协议的兼容性入口。
时夜若有所思地来回调试,将一些关于内存对比的代码进行了高亮处理。
楚英纵对于这点东西还是能看懂的, 好奇地说:是这里在对公钥进行对比吗?
时夜说:嗯。
数字证书, 可以类比人的签证,需要通过官方信赖的机构进行签发。
用微软发明的这个椭圆曲线算法(ECC)来进行举例:签证机构首先选取一个私钥, 将私钥定义一条椭圆曲线,引入额外参数, 来得到椭圆上的另一个解, 这个解就是公钥。
私钥这个东西只有签证机构自己知道,但是公钥是要发布到全网上的。
当签证机构给某个软件签发数字证书的时候,他会用自己的私钥、某些局域参数和哈希值一并来产生签名, 也就变成了那个软件的签证。
然后,公网上的任何人,都能够使用公钥,来比较这个软件的签证,也就是自己再通过一次椭圆曲线计算,可以对比得到结果是否相等
相等就说明签证就是官方机构签发的,没问题了;
如果不相等,那么这就是无效签证,这个软件就是可疑的,是没有护照的黑户,不予信任。
这一整个数字签证的过程,就是一场不对称的加密策略。
不对称就在于:签证机构持有私钥,而所有人都持有公钥,整个过程只能验算,却无法逆推。
就像国家掌握了印钱的防伪技术,所有人都能简单地用看一看、摸一摸的手段来验明钱币的防伪标记,但是没有人能伪造出这种标记来。
这种技术也能最大程度地帮助计算机软件来防伪,也就变相保证了设备本身的安全性。
但是,在时夜的世界里,没有不可能一说。
毕竟世界上没有绝对安全的系统,只有尚未被发现的漏洞。
他来回调试着更新后的ECC签证算法,接着发现了一个叫做CertVerifyCertificateChainPolicy的函数,连续传递了四个证书相关的参数,而且未做任何处理,便传向了下游的函数。
他陷入了沉思。
楚英纵见时夜突然停在了某个确定的位置上,不由也盯着看了半晌,抓耳挠腮的问:时小夜,我能看懂OID这个参数,剩下三个是什么意思?
时夜拿起笔,随手在纸上写下了这几个参数,对他解释道:假设根证书的私钥是p,这个私钥我们无从得知,但ECC的基点为G,那么公钥就是pG。这几个参数只是在自定义椭圆曲线的参数r、s和公钥
说到此处,他声音突然停住了。
楚英纵猛地啊了一声,说:那这么校验的话,我自己传参进去,用一模一样的自定义参数,不就可以用随便一个私钥也可以进行签证了?
时夜沉默片刻,说:你想的不错。
时夜在电脑上打开了命令提示符,开始使用openssl命令,自己伪造一系列参数,尝试生成新的ECC证书。
然后用伪造的ECC证书,他随手对一个三无小软件做了签名。
楚英纵看到一半的时候,已经自发自觉,默默地将自己的手机掏了出来,连接到电脑上。
接着,时夜尝试将软件安装到他的手机上
数字签名校验通过。
软件安装成功。
到这一步,楚英纵的嘴巴已经变成了O型,叫道:哇哇哇哇哇哇哇我们发现了一个0day!时小夜,发了啊!
时夜平静地:嗯。
他继续做着接下来的工作,检查了一下这个自己伪造的数字证书,名字只是随便打了一个1而已,签名者的名字和日期都没有,但在系统里却是可被信任的正常证书。
楚英纵就没这么淡定了,傻笑着原地转了两圈,往时夜的嘴里塞了两瓣橘子,喜滋滋道:这可是数字证书的漏洞,提交给微软起码是个危重级别。到时候奖金发下来,时小夜你要成百万富翁了!
橘子很甜,时夜默默地吃了,舔了下嘴唇。
楚英纵看得怦然心动,又开心地亲了他一下。
学长也很甜,时夜默默地被亲了,然后才随口道:先不提交。
楚英纵这才想起来:啊对,这才是第一步呢,你真的打算要破解IOS系统13?
时夜:嗯。
说话间,时夜手头的动作没有停,将证书打包进了自己的IOS破解包里。
得到了一个价值连城的微软0day,好像对他没有产生任何影响。
也许他更高兴的,其实是自己能够在解题的步骤上更进了一步。
楚英纵不觉间也安静了下来,看着他专注的侧脸,呆呆地想了一会儿事情。
片刻后,楚英纵说:阿夜,你有没有考虑过真的破解掉了系统以后,你可能会有很大名气,你不一定喜欢的那种
时夜停顿了一下。
他真的没有考虑过现实世界的很多东西,本能地不在他的意识范围里。
这时楚英纵说:当年IOS四代的时候,不是好像是欧洲的一个高中生破解出来的吗?他当晚就成名了,还被苹果公司告了。虽然最后法庭判断是智力好奇,并没有定罪
我知道。时夜说,这是法律的灰色地带。
楚英纵低着头道:时小夜,我们可以出于学术的目的去尝试,但是你可以答应我,不用来做非法的牟利吗?
时夜看了他一阵,嘴角好像带着一抹淡淡地笑意,说:好。
楚英纵这才重新活跃起来,乐呵呵道:好!接下来还有要帮忙的地方不?我也来我也来!洒家这辈子还没干过这种大事刺激!!
这一整天,楚英纵都忍不住和时夜泡在了图书馆里。
他们一起看那些佶屈聱牙的函数,一起调试各种乱七八糟的参数,一起被深奥的数学问题虐得怀疑人生。
每当到了脑细胞死亡的时候,楚英纵就默默地剥一个橘子喂给时夜,时夜就不自觉地吃掉了结果晚饭他根本吃不下。
楚英纵去外面带了两大碗馄饨回来,又开始给时夜喂一个、喂一个,怕他不吃晚饭会饿着似的。
最后两人不得不一起瘫软在沙发上。
楚英纵是大脑放空,累的。
时夜是撑的。
到了晚上,余景树果然又开始加班了。
他用内部软件给时夜发消息:【顾问先生,您今天有新的进展吗?我们这边已经额外准备了一些文件,你可以看一看。】
时夜:【有。】
余景树很是惊讶:【方便和我解释一下么?!我马上打电话过去。】
时夜:【不方便,楚英纵睡着了。】
恋耽美
好吧。余景树说,阿夜不接我电话,我只能找你转告一下他:我跟他们系里打过招呼了,以后大一新生的基础课程他可以不用去签到。月底的时候,班主任会给他安排一次全科考试,只要通过就算作他免修,不用计算平时成绩。
哇哦楚英纵羡慕的口水都要流下来了,怎么突然给他这么爽的待遇?
余景树打了个哈哈:这个是他的实力决定的。你想要的话,也可以跟着他一起考试,能拿全科95分以上就加你一个。
那算了。楚英纵咸鱼躺了回去,我静静看着他爽就行了。
余景树笑了一会儿,又说:这周阿夜可能会比较忙,你不要太打扰他。怎么样,最近宿舍生活还好吗?
还行吧。楚英纵随口回答着,然后有点狐疑地问,你怎么突然又开始关心阿夜的平时生活了?什么叫他这周可能会比较忙你们俩是不是偷偷在商量什么事情?
那倒没有。余景树滴水不漏地说,老师也算是将阿夜托付给我,我当然要多上上心。英纵啊,我希望以后我们都是一家人了,你也是这样想的吧?
楚英纵又卡了一下。
一家人?!
虽然明知道余景树说的是另一个意思,但此刻他不由自主地想歪了十万八千里,脸色也红了起来,支支吾吾道:再、再说吧。
便挂了电话。
余景树:!!!英纵这孩子,难道说终于默许了吗?!
这几年来,余景树照顾着楚妈妈,照顾着照顾着又近水楼台、日久生情,忍不住想要更进一步。
但奈何楚英纵也是个大小伙子了,他对余景树做继父的抵触之情,被楚妈妈看在眼里,当然也不可能枉顾他的意愿。
现在楚英纵的意思好像是松口了?
余景树心中一阵激动,实在是高兴得不能自已,翻出通讯录,就给楚妈妈发了一条讯息:【等我手上这件事情处理完,我们找英纵、阿夜一起,四个人出去旅游几天吧。阿夜也同意了,英纵也同意了的。】
楚妈妈很快回复道:【好呀。年关也快到了,我最近单位也在组织旅游,不如我们带两个孩子去游乐场?】
余景树强忍着激动,装作淡定地回复道:【好,那我这就开始准备。】
yes!!
接着余景树直接从办公椅上跳了起来,不顾身后小弟们的瞩目,开心地原地比了两下拳头,接着端回自己的咖啡,满脸幸福地开始了新一轮的加班工作。
于是,事情兜兜转转,绕了一圈。
当时夜晨练回来时,发现自己又收到了来自余景树的短信。
【余景树:事情有进展了吗?我这周都会加夜班,你可以随时找我。】
时夜想了想,难得回复了一条短信:
【会比预计中的时间久一点。】
因为,他现在不能再三天三夜地拼命了,宿舍里还有着个傻乎乎的学长在干扰他工作,不准他透支自己的身体。
真是个令人烦恼的黏人学长啊。
怀抱着这样的烦恼,时夜今天并没有去上课。果然如余景树说的那样,上面已经跟学校打过招呼了。
白天,楚英纵不在的时候,时夜闭关沉思。
破解一个系统,对他来说是一件有趣的游戏,就像孩提时期,他第一次接触数独;就像黑客大赛上,千军万马入侵一台服务器,为此要寻求各种可能的路径。
传统意义上的移动系统破解,一般分为以下几步:
第一,进入手机的恢复或者DFU模式,进行一次REBOOT,从而得到写入权限。
第二,开始引导系统写入数据,获取破解程序的运行权限。
第三,在运行权限下,开始安装破解包。
第四,当破解包安装完毕之后,结束手机的恢复模式,开始正常运行系统,运行破解包。
第五步也即最后一步,便是让破解包运行完毕后,再次REBOOT,开始引导破解系统,至此便宣告这部手机已经被破解,俗称越狱。
目前在世界最大的0day黑市Zerodium上,已经有人在打包出售过去历代的IOS破解包和相关漏洞。
这些东西并不贵,因为过期的0day不如狗,只要任何人愿意花一些时间,总能在大量的暗网和灰色、黑色市场上收集齐全。
时夜仅用几美分,就购得了上一代Unc0ver破解包的源代码,它自身的原理是利用一个FlateDecode数据流中的一个字体文件漏洞来进行越狱。
通过重构和部分改写,他得到了一个适合自己节奏的破解包。
但这部分不是难事,真正难的是如何绕过IOS系统的认证因为这个老破解包使用的漏洞早已被新的IOS版本修复了,所以时夜必须找到一个新的0day。
这个漏洞要足够严重,致使一台原生态的IPHONE能够安装这么一个来历不明的软件,也即,要获得Kernel核心的写入权限。
对于原生态的IOS系统,每次安装软件时,都必须要验证一个软件的证书该证书通常由苹果公司亲自签发,或者由他们信任和指定的第三方机构签发。
没有被苹果公司审核过的软件,当然就没有证书。
这就好比一个人想要过海关,却没有护照和签证一样,看上去有些荒谬。
现在,时夜的目光就落在了这个证书上。
就在今年1月,微软更新了他们的椭圆曲线密码证书的算法,它是计算机界的第9代护照。
作者有话要说: 此处应有参考文献大概上千篇。
但是作者懒得装这个逼,请大家将就脑补一下吧。
好吧,其实因为都是基础知识储备,不用查资料也能写【手动狗头
第58章
没有去上课的时夜, 今天坐在图书馆里,借用这边的网络。
当楚英纵上完课来招人的时候,就看见这冰山小学弟坐在某个多功能媒体室的最角落里, 若有所思地看着自己的笔记本电脑,眉头有若有似无的皱起痕迹。
问题真的很难解吗?
楚英纵走进来带上了门, 看了时夜一阵, 不知不觉把自己带来的橘子全剥好了,悄悄放在时夜手边。
时夜抬头看向楚英纵。
楚英纵:我超安静的!没打扰你!
时夜默默地又低下了头。
过了一会儿, 楚英纵偷瞄着时夜屏幕上的内容, 见他这次好像在看一个dll文件, 看函数名的名字大概为:CertDllVerifyMicrosoftRootCertificateChainPolicy
楚英纵不由好奇地问:你不是要破解手机吗?怎么在看数字证书的东西?
时夜道:ECC更新了新版本,和IOS兼容性不是很好,可能有漏洞。
楚英纵听了, 精神一振:有道理啊!
他跟着也瞄起了屏幕,粗略地看了看里头新更新的函数。
根据版本更行后的对比来看,微软这次主要是修改了几个证书链接策略有关的函数, 新增了几个对于新协议的兼容性入口。
时夜若有所思地来回调试,将一些关于内存对比的代码进行了高亮处理。
楚英纵对于这点东西还是能看懂的, 好奇地说:是这里在对公钥进行对比吗?
时夜说:嗯。
数字证书, 可以类比人的签证,需要通过官方信赖的机构进行签发。
用微软发明的这个椭圆曲线算法(ECC)来进行举例:签证机构首先选取一个私钥, 将私钥定义一条椭圆曲线,引入额外参数, 来得到椭圆上的另一个解, 这个解就是公钥。
私钥这个东西只有签证机构自己知道,但是公钥是要发布到全网上的。
当签证机构给某个软件签发数字证书的时候,他会用自己的私钥、某些局域参数和哈希值一并来产生签名, 也就变成了那个软件的签证。
然后,公网上的任何人,都能够使用公钥,来比较这个软件的签证,也就是自己再通过一次椭圆曲线计算,可以对比得到结果是否相等
相等就说明签证就是官方机构签发的,没问题了;
如果不相等,那么这就是无效签证,这个软件就是可疑的,是没有护照的黑户,不予信任。
这一整个数字签证的过程,就是一场不对称的加密策略。
不对称就在于:签证机构持有私钥,而所有人都持有公钥,整个过程只能验算,却无法逆推。
就像国家掌握了印钱的防伪技术,所有人都能简单地用看一看、摸一摸的手段来验明钱币的防伪标记,但是没有人能伪造出这种标记来。
这种技术也能最大程度地帮助计算机软件来防伪,也就变相保证了设备本身的安全性。
但是,在时夜的世界里,没有不可能一说。
毕竟世界上没有绝对安全的系统,只有尚未被发现的漏洞。
他来回调试着更新后的ECC签证算法,接着发现了一个叫做CertVerifyCertificateChainPolicy的函数,连续传递了四个证书相关的参数,而且未做任何处理,便传向了下游的函数。
他陷入了沉思。
楚英纵见时夜突然停在了某个确定的位置上,不由也盯着看了半晌,抓耳挠腮的问:时小夜,我能看懂OID这个参数,剩下三个是什么意思?
时夜拿起笔,随手在纸上写下了这几个参数,对他解释道:假设根证书的私钥是p,这个私钥我们无从得知,但ECC的基点为G,那么公钥就是pG。这几个参数只是在自定义椭圆曲线的参数r、s和公钥
说到此处,他声音突然停住了。
楚英纵猛地啊了一声,说:那这么校验的话,我自己传参进去,用一模一样的自定义参数,不就可以用随便一个私钥也可以进行签证了?
时夜沉默片刻,说:你想的不错。
时夜在电脑上打开了命令提示符,开始使用openssl命令,自己伪造一系列参数,尝试生成新的ECC证书。
然后用伪造的ECC证书,他随手对一个三无小软件做了签名。
楚英纵看到一半的时候,已经自发自觉,默默地将自己的手机掏了出来,连接到电脑上。
接着,时夜尝试将软件安装到他的手机上
数字签名校验通过。
软件安装成功。
到这一步,楚英纵的嘴巴已经变成了O型,叫道:哇哇哇哇哇哇哇我们发现了一个0day!时小夜,发了啊!
时夜平静地:嗯。
他继续做着接下来的工作,检查了一下这个自己伪造的数字证书,名字只是随便打了一个1而已,签名者的名字和日期都没有,但在系统里却是可被信任的正常证书。
楚英纵就没这么淡定了,傻笑着原地转了两圈,往时夜的嘴里塞了两瓣橘子,喜滋滋道:这可是数字证书的漏洞,提交给微软起码是个危重级别。到时候奖金发下来,时小夜你要成百万富翁了!
橘子很甜,时夜默默地吃了,舔了下嘴唇。
楚英纵看得怦然心动,又开心地亲了他一下。
学长也很甜,时夜默默地被亲了,然后才随口道:先不提交。
楚英纵这才想起来:啊对,这才是第一步呢,你真的打算要破解IOS系统13?
时夜:嗯。
说话间,时夜手头的动作没有停,将证书打包进了自己的IOS破解包里。
得到了一个价值连城的微软0day,好像对他没有产生任何影响。
也许他更高兴的,其实是自己能够在解题的步骤上更进了一步。
楚英纵不觉间也安静了下来,看着他专注的侧脸,呆呆地想了一会儿事情。
片刻后,楚英纵说:阿夜,你有没有考虑过真的破解掉了系统以后,你可能会有很大名气,你不一定喜欢的那种
时夜停顿了一下。
他真的没有考虑过现实世界的很多东西,本能地不在他的意识范围里。
这时楚英纵说:当年IOS四代的时候,不是好像是欧洲的一个高中生破解出来的吗?他当晚就成名了,还被苹果公司告了。虽然最后法庭判断是智力好奇,并没有定罪
我知道。时夜说,这是法律的灰色地带。
楚英纵低着头道:时小夜,我们可以出于学术的目的去尝试,但是你可以答应我,不用来做非法的牟利吗?
时夜看了他一阵,嘴角好像带着一抹淡淡地笑意,说:好。
楚英纵这才重新活跃起来,乐呵呵道:好!接下来还有要帮忙的地方不?我也来我也来!洒家这辈子还没干过这种大事刺激!!
这一整天,楚英纵都忍不住和时夜泡在了图书馆里。
他们一起看那些佶屈聱牙的函数,一起调试各种乱七八糟的参数,一起被深奥的数学问题虐得怀疑人生。
每当到了脑细胞死亡的时候,楚英纵就默默地剥一个橘子喂给时夜,时夜就不自觉地吃掉了结果晚饭他根本吃不下。
楚英纵去外面带了两大碗馄饨回来,又开始给时夜喂一个、喂一个,怕他不吃晚饭会饿着似的。
最后两人不得不一起瘫软在沙发上。
楚英纵是大脑放空,累的。
时夜是撑的。
到了晚上,余景树果然又开始加班了。
他用内部软件给时夜发消息:【顾问先生,您今天有新的进展吗?我们这边已经额外准备了一些文件,你可以看一看。】
时夜:【有。】
余景树很是惊讶:【方便和我解释一下么?!我马上打电话过去。】
时夜:【不方便,楚英纵睡着了。】
恋耽美