***溫馨提示***
本章有一定技術(shù)含量,無(wú)法理解的部分請(qǐng)無(wú)視。技術(shù)細(xì)節(jié)不理解不影響故事情節(jié)。本書后面類似情況同理。
** 016 反擊**
劉崗甚至想到:“莫非他找到了漏洞,偷偷下載了開發(fā)組的代碼?”
如果真是這樣,他會(huì)毫不猶豫地出來(lái)向全公司控訴漏洞組竊取他們的開發(fā)成果,并以辭職為威脅要求公司開除這個(gè)人!
“這個(gè)問題的出現(xiàn)與輸入的字符串有關(guān),隨機(jī)性很大?!?p> 孟飛絲毫沒有理會(huì)在場(chǎng)所有人的震驚,雙目閃爍著奇異的自信光芒,一邊操作一邊說(shuō):
“但我找到了這么一個(gè)組合,百分之百可以重現(xiàn)這個(gè)問題。”
他又輸入同樣的一句話,果然,輸入法再次卡住了。
“現(xiàn)在我試試修復(fù)?!?p> 說(shuō)完他打開了系統(tǒng)下的程序目錄“Program files”,然后找到螳螂軟件的目錄“MantisSoft”。
接下來(lái)是內(nèi)網(wǎng)安全“IntranetSecurity”,他找到了一個(gè)文件“Misnetgate.dll”。
螳螂軟件內(nèi)網(wǎng)安全之門,這是個(gè)動(dòng)態(tài)庫(kù),是劉崗他們組的產(chǎn)品無(wú)疑了。
打開文件,一大片密密麻麻的二進(jìn)制碼。這不是源碼,是機(jī)器碼。
在人類眼中,這就是一堆毫無(wú)意義的數(shù)字。
程序員是可以認(rèn)識(shí)機(jī)器碼的。但那得拿著幾千頁(yè)的指令手冊(cè),一條條指令去查。
有人能記住所有指令的機(jī)器碼嗎?或許真有這種變態(tài),但在這個(gè)會(huì)議室里,肯定沒有!
更何況記住也是沒用的。指令只是指令,脫離了具體的執(zhí)行邏輯和環(huán)境,那就什么也不是。
劉崗他們編譯出來(lái)的最終執(zhí)行碼還是經(jīng)過了各種混淆、虛擬化,令人眼花繚亂到死來(lái)防止被人破解的。
你孟飛就算知道這里有BUG,你能找到正確的修改點(diǎn)?
然而就在他強(qiáng)烈質(zhì)疑的目光中,孟飛先是備份了文件,然后連點(diǎn)鼠標(biāo)鍵盤,修改了好幾串?dāng)?shù)字。
他能看懂機(jī)器碼?
當(dāng)然不能!
但他有最強(qiáng)BUG系統(tǒng)啊。程序進(jìn)了他的眼,掃描一下BUG并不用他吹灰之力。
至于修改機(jī)器碼,他瞎改一些字節(jié)就行了。
他亂改豈不是要改壞?
改壞又有什么關(guān)系?讓系統(tǒng)瞬間修復(fù)就行。
在場(chǎng)這么多人看著,就沒有一個(gè)人能發(fā)現(xiàn)其中蹊蹺?
當(dāng)然沒有了。
大家看到的都是一堆數(shù)字,你操作又眼疾手快,誰(shuí)能看清你究竟改了什么啊。
保存,重啟電腦。再打開,輸入同一個(gè)句子。
流暢無(wú)比,毫無(wú)卡頓!
孟飛又將修改前保留的備份文件恢復(fù)了回去,重啟系統(tǒng),再輸入同一個(gè)句子。
果然,再度卡頓!
修改,測(cè)試,問題解決。
恢復(fù),測(cè)試,問題再度出現(xiàn)。
如鐵一般的證據(jù),毫無(wú)質(zhì)疑的可能。
見慣了太多大場(chǎng)面的羅安臉上并沒有太多的震驚,但對(duì)孟飛其人的贊賞和滿意是明顯的。
而劉崗則焦灼得臉都快歪了。
這事他已經(jīng)徹底敗了。
無(wú)論這個(gè)問題有多嚴(yán)重、是不是BUG,也無(wú)論漏洞組是否提過這個(gè)問題他們又是否拒絕了改動(dòng)。
他們的問題導(dǎo)致用戶抱怨,被當(dāng)場(chǎng)演示在大老板面前的時(shí)候,他就已經(jīng)徹底敗了。
但羅安并未放過,還在繼續(xù)問孟飛:
“你說(shuō)你們?cè)?jīng)提過這個(gè)BUG,但開發(fā)組拒絕修復(fù)?”
孟飛咔咔咔地點(diǎn)擊鼠標(biāo),一份四個(gè)月前的舊郵件居然被他給找了出來(lái)。
連歐陽(yáng)聰都佩服了。時(shí)間跨度這么大的事,你是怎么給關(guān)聯(lián)到一起全揪出來(lái)反攻倒算的?
他當(dāng)然不知道,從掃描BUG,到尋找用戶抱怨、尋找他們預(yù)先提交BUG的郵件,孟飛早都讓系統(tǒng)一條龍服務(wù)準(zhǔn)備好了。
“這事的原理其實(shí)很簡(jiǎn)單。
“內(nèi)網(wǎng)安全系統(tǒng)阻止程序?qū)ν饩W(wǎng)的不可信任的訪問。
“而這個(gè)輸入法在用戶輸入某些字符串的時(shí)候,會(huì)試圖彈出廣告。
“廣告的來(lái)源五花八門。
“這些來(lái)源網(wǎng)址大多數(shù)已經(jīng)被加入信任名單,所以平時(shí)輸入文字一點(diǎn)都不會(huì)卡。
“但有極少數(shù)廣告來(lái)源網(wǎng)址不在白名單里,被內(nèi)網(wǎng)安全系統(tǒng)阻止。
“本來(lái)阻止如果是連接直接中斷,后果就是沒有廣告,輸入還是正常的。
“但我們的安全系統(tǒng)阻止的方式并不是中斷連接,而是掛起?!?p> 掛起就是暫不處理了,無(wú)回復(fù)。你不知道這路通不通,只知道前面沒消息。那么輸入法沒轍了,只能等待。
一等待就卡著了。大約要卡好幾秒。
平時(shí)其他操作卡幾秒還可以接受。輸入文字的時(shí)候卡一下,就像說(shuō)話結(jié)巴,用戶就會(huì)覺得渾身難受了。
“幾個(gè)月前,我們測(cè)試的時(shí)候發(fā)現(xiàn)安全系統(tǒng)阻止的方式是掛起,所以發(fā)了這封郵件給開發(fā)組。”
孟飛念出郵件的內(nèi)容:“掛起的方式阻止會(huì)導(dǎo)致不可預(yù)知的卡頓,可能影響用戶體驗(yàn),建議直接中斷連接。”
“但開發(fā)組沒有回復(fù)。”
孟飛毫不留情地釘上了這棺材蓋板的最后一顆釘子。全場(chǎng)靜默。
其實(shí)這事劉崗也很冤。
掛起還是中斷這只是一個(gè)策略問題。
掛起的話,連接還活著,程序還在不會(huì)死,理論上比暴力中斷更溫和。
你現(xiàn)在說(shuō)應(yīng)該中斷,那誰(shuí)知道改成中斷之后,在其他情況下會(huì)不會(huì)爆出更怪異的問題來(lái)?
漏洞組只需要提出問題和改進(jìn)建議就行了。
然而這建議是否可行,放出去會(huì)不會(huì)捅婁子是不需要也沒法管的。
進(jìn)行修改,最終背鍋的還不是開發(fā)組自己?
所以他們的人看了郵件直接不回復(fù)或者回復(fù)一通理由拒絕修改,都是合理的。
但現(xiàn)在說(shuō)什么都遲了。用戶的抱怨、現(xiàn)場(chǎng)的證據(jù)都擺在眼前。
漏洞組在四個(gè)月之前就提出了問題,準(zhǔn)確地預(yù)言了用戶抱怨的可能,而他們拒絕了修復(fù)!
如果他繼續(xù)糾結(jié)應(yīng)該中斷還是應(yīng)該掛起這種根本就無(wú)解的話題,只能讓羅安覺得他沒有擔(dān)當(dāng),不愿意承擔(dān)責(zé)任罷了。
“這個(gè)的確是我們的問題。”
劉崗沉著臉認(rèn)栽。
“將來(lái)我會(huì)監(jiān)督開發(fā)組這邊對(duì)提來(lái)的BUG的跟進(jìn),確定每一個(gè)問題都妥善解決。”
羅安同樣贊賞地點(diǎn)了點(diǎn)頭:
“能找到問題就好。今天會(huì)議時(shí)間太長(zhǎng),就到這里了。劉崗你回去寫一下會(huì)議紀(jì)要和將來(lái)具體的改進(jìn)措施發(fā)出來(lái)?!?p> 羅安的風(fēng)格就是如此,喜怒不形于色。
他從不會(huì)當(dāng)所有人的面直接批評(píng)任何一個(gè)人。這樣會(huì)讓受批評(píng)的人很沒面子,積極性受到打擊。
但應(yīng)該要解決的問題也一定得解決。表決心是沒用的,必須得看到具體的能實(shí)行的措施。
光有措施也是不行的,將來(lái)還要看措施是否實(shí)行,實(shí)行的結(jié)果如何。
他會(huì)像狼一樣對(duì)你窮追不舍。一旦被他盯上,那就要么你積極解決問題,要么等他來(lái)解決你。
劉崗一時(shí)感覺壓力山大,沉悶地收拾東西帶著開發(fā)組的人馬離開。
“孟飛你留下。”
就在大家即將散去的時(shí)候,羅安忽然說(shuō)了一句。
……