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