第四十六章 破译
卢赫被冻得直哆嗦的同时,也感觉到鼻子一直在往外冒火。他就這么一個人焦躁地躲着脚,等待着返回宿舍拿硬盘和衣物的艾达否。
半個小时后,门终于被推开了。他惊喜地转头,却发现来者不是艾达否,而是王戊。
“卢赫?大半夜的還在這儿做什么呢?”王戊沒有走进门,只是探进来了個头,吃惊地问。
卢赫也有些惊讶,一改瑟缩的姿态,挺起胸问:“王老师這么晚怎么也沒下班?”
“哎呀,别提了。我教学生做实验,那帮小姑娘笨手笨脚的,一晚上都沒学会。”王戊皱着眉說,话裡满是无奈和不满,神情和语气却饱含着沾沾自喜。
“那可真是辛苦您了呢。”卢赫装作不经意地走到摆着散乱螺丝头的置物架前,试图用身子遮挡住锌指平台的屏幕,“我趁晚上人少,约了台仪器。已经用完了,马上也就回去了。”
王戊把脖子往前探了探,注视着卢赫身后的那一角莹莹蓝光,意味深长地說:“锌指平台這种东西,還需要等人少的时候用嗎?這破烂仪器平日裡一個月都不会有人用一次。”
“是,是我多虑了。今天晚上還真沒人跟我抢。行了,我准备收拾收回去了,您也早点回家休息啊,王老师。”卢赫讪笑着說完,掏出手机想要给艾达否发信息让他别回来了。
王戊站在原地,似笑非笑地眯着眼继续问道:“卢赫,你不会是,又在养乌龟了吧?”
卢赫怔了一下,收起脸上的笑,认真地答道:“王老师真是多虑了呢,您是了解我的,我既不养乌龟,也不养黑胶虫。我沒那個能耐。”
正說着,身后响起了熟悉的声音,“喂,让一让,借過一下。”
只见艾达否一把把屏蔽门推到大开,然后从王戊身后冒了出来,径直走到卢赫身边,好似王戊不存在一样。
王戊见状,悻悻地走了。
艾达否从口袋裡掏出硬盘,插在仪器上,重启进了dos界面。
卢赫在他身后观望着,好奇地问:“老艾,我看你好像不太待见王戊啊。”
艾达否一边敲打出一行行命令,一边语气不屑地回答道:“那种人有什么好待见的,学术妲己而已。”
卢赫吃到了惊天大瓜,连忙追问:“此话怎讲啊?他一個男的,怎么就妲己了。莫非,他是同志?”
“你個死变态,想哪儿去了?”艾达否嫌弃地转头看了一眼卢赫,然后继续着手裡的活儿,“他是学院裡出了名的交际花,每天孜孜不倦地给同组的女博士和刚升上去的女讲师献殷勤,只为蹭论文作者。”
“哎你别說,有人還真就吃他這一套,让他顺利蹭到了一個顶刊共一和几個二作,顺利留了校。這人学术水平不咋地,人品也不咋地,脑子還缺根弦。据說他毕业前夕,大年夜地跑到王峰家裡去送礼,把人家烦得要死。”
“虽然王峰也不怎么待见他,但架不住人家和学院女领导关系好啊,最终還是被留下来了。我可跟你說,趁早躲着他点,就這种能人,分分钟把你枯燥的科研路给变成甄嬛传。”
艾达否說完,把硬盘一拔,往兜裡一揣,拍了拍手,“走吧,回宫去吧!”
“就,就這?就完事儿了?”卢赫被不可思议到话都說不利索了,“那你快說說這仪器裡到底有什么秘密?”
艾达否一個手刀削過了卢赫头顶的呆毛,“异想天开什么呢?我只是克隆了一個镜像系统,這大几百万的东西,可不能在上面胡来。快扶本王回宫。”
“喳。”
回宫后,艾达否坐到自己王位上,翘着右手小拇指,捏着硬盘的USB口,插入到他的主机上,把镜像系统导入虚拟机,然后畅游在其中。
503寝室的灯亮了一夜,第二天一早,艾达否推醒了一旁抱着椅子睡得正香的卢赫。
“小赫子,快醒醒,朕要施展绝技了。”艾达否指着屏幕上一個屎黄色的文件夹,“看看,這個Immortal,就是核心程序的主文件夹。不得不說,上個世纪的码农還都挺中二的,這单词是什么意思?永垂不朽?”
卢赫揉了揉眼睛,打了個大大的哈欠,“這词是永存和不死的意思吧,寓意很好啊。”
艾达否撇撇嘴,打开一個叫ExeinfoPE的软件,把文件夹裡一個名为的文件拖了进去,然后按下了回车键。
进度條飞快地走着,不一会儿,软件下半部显示出了两條信息:
脱壳成功
“完美!”艾达否激动到拍桌,“古董软件就是如此简单。也许他们的加壳手段在当时看来很复杂,但在20年后的今天,脱壳就像喝水一样简单。”
“什么是加壳脱壳啊?”卢赫被触及到了知识盲区。
“加壳就是为了防止软件被破译,在指令的头部写入一层额外的指令,把程序入口点和动态链接库的地址表隐匿起来。”艾达否說完又思索片刻,“打個不太恰当的比方就是,你不想被别人看光光,所以要穿衣服,這叫加壳。现在我非要看光你,就强行把你衣服给扒了,這叫脱壳。”
“变态。”卢赫捂住自己的领口,“那下一步呢?”
“下一步啊,那就是我的拿手绝技了,对這些可执行文件和动态链接库进行逆向分析,尽可能全地反推出程序源码。”艾达否說着拍了拍自己胸脯,“這破软件是C屁屁写的,我拿手,放心好了!”
于是之后的一周裡,503寝室的就寝率急剧地从0%提升到了77%,虽然天花板上的那盏老旧的吊灯,每日都不堪重负地彻夜长明。
那個和艾达否同名的软件,一如既往地给力,仅用静态分析,便還原出了80%以上的高级语言。艾达否孜孜不倦地啃食它们,可吃完了以后,却发现自己吃了個寂寞。
因为那些能够被解析的部分,全部都在调用系统接口,从对象属性、函数名和执行逻辑来看,它们的功能仅仅在于读取交互数据,以及把不知道从哪裡蹦出来一长串字符通過自定义的接口,传递给另外一個明显是用来自动化操纵硬件的软件。
這就像好不容易把别人衣服给扒下来了,却发现人家還额外穿了一套内衣,一個点都沒露。想要一饱眼福,就要再去做动态分析和黑盒分析。
动态分析就是给程序打断点或者干脆直接单步执行,观察寄存器、内存数据和堆栈的变化,猜测程序做了什么;黑盒分析就是给程序输入大量的测试样例,通過观察输入和输入数据的关系,猜测程序到底做了什么。
:https://www.zibq.cc。:https://m.zibq.cc