噼裏啪啦鞭炮響,咱們公司開張了!程序員
今天是咱們千度瀏覽器公司開業第一天,公司主營業務是網頁瀏覽,咱們來到這個陌生的Windows帝國創業,雖然這裏已經有IE瀏覽器公司發展多年,但由於他們是國有企業,不思進取,辦事效率低,因此咱們有信心,期待着爲人類提供更好的上網體驗。數據庫
幾天過去了,一筆上網業務都沒收到,市場部老大開始急了,指定了我和軍軍去調研下怎麼回事。通過一番研究,原來咱們不是這臺電腦的默認瀏覽器,用戶點擊連接的時候,會使用默認的瀏覽器打開,默認瀏覽器是361瀏覽器公司,咱們天然是沒有業務了。瀏覽器
彙報完調查結果,老大發了話:無論大家用什麼辦法,把咱們變成默認瀏覽器!安全
<-----------------------第一戰:拿下注冊表----------------------->函數
工做不敢怠慢,又通過一番研究,原來系統的默認瀏覽器是登記在一個叫註冊表的帝國核心數據倉庫,打開連接的時候,就會去這裏查詢誰是默認瀏覽器。線程
註冊表:Windows帝國核心機要配置數據庫blog
原理搞清楚了,問題就好辦了,我趕忙調用註冊表的接口函數,把咱們千度瀏覽器設置成爲系統默認瀏覽器。這不寫不知道,一寫嚇一跳,竟然失敗了,告訴我拒絕訪問,沒有權限!接口
我意識到問題可能沒有我想的那麼簡單,趕忙向軍軍求助。軍軍:看來361瀏覽器下面有人!我:下面有人?我只聽過上面有人,下面有人什麼意思?軍軍:你不知道,這個世界是分高低貴賤的,咱們這些普通線程通常狀況下都是在用戶態工做,權限極小,而那些位高權重的線程都是執行在內核態的,他們能夠乾的事情比咱們多得多,帝國政府工做線程基本都是工做在內核態的。由於他們工做在底層,因此稱爲下面。進程
我:那361瀏覽器下面的人哪來的?軍軍:帝國開了一個口子,容許加載驅動進入內核態,361瀏覽器公司多半是經過這種方式進去的,進去以後把註冊表給守着,不容許咱們在上面修改默認瀏覽器。我:那我們也用驅動進去,進入內核態跟它競爭。軍軍:能夠試試。get
說幹就幹,咱們弄了個驅動程序,順利的進入了帝國的內核空間,我仍是第一次到這裏來,這裏的世界果真大不同,不過此次任務緊急,沒時間慢慢欣賞了。通過排查,361公司作了重重保護,不只對內核函數執行了HOOK,還設置了註冊表操做回調通知,至關於給修改註冊表的路上裝了監控攝像頭,咱們的一舉一動都能被對方知道。
軍軍:看來361公司對默認瀏覽器的註冊表看護森嚴,輕易是動不了的。
我:那難道沒辦法了嗎?
軍軍:也不盡然,大路被361公司看得死死的,咱們走小路,繞過他的監控,或許能夠一試。
按照軍軍的思路,咱們抄了一條小路,繞過那些敏感的函數,直接調用底層的註冊表寫入函數,這一次總算寫入成功!
回到公司,終於有業務找上門來,看着業務部門忙碌的身影,咱們很是開心。
<-----------------------第二戰:瞞天過海----------------------->
然而好景不長,僅僅過了幾天,生意又開始慘淡起來,隔壁361公司生意反倒好了起來。難道默認瀏覽器又被361公司改了回去?
我趕忙去看了一下注冊表,奇怪了,裏面寫的仍是咱們千度瀏覽器啊,怎麼就沒生意了呢?這一下難倒咱們了,問題到底出在哪裏?一連好幾天都沒有思路。
無奈之下,我決定再去內核態一探究竟。沒過多久,果真有人來查註冊表了,我在遠處拿着望遠鏡看着,361公司的人檢查了參數,就直接放他過去了,原來這人來查的不是默認瀏覽器。一直等了很久,終於有人來查默認瀏覽器了,這361公司竟然直接給了他結果,就讓他回去了,都沒有真正去註冊表去查!
氣死我了!原來給了別人假的結果!我把我看到的一切都告訴了軍軍。
我和軍軍開始關起門來,研究對策。然而還沒等咱們研究出個結果,市場部老大又過來了。老大:大家先別研究了,361公司也沒生意了,來了個QB瀏覽器,生意都去他們那裏了,趕忙去看看。竟有此事!咱們放下手中的工做,趕忙去瞧一瞧。
<-----------------------第三戰:半路截胡----------------------->
QB瀏覽器果真熱鬧非凡,來往辦理業務的絡繹不絕。他們是怎麼搶了361公司生意的?我和軍軍都很詫異。
我再一次來到內核空間,守着註冊表查詢的地方,想看看發生了什麼。然而一切都沒有變,361公司仍然把守着關鍵位置。不同的是等了大半天一個來查默認瀏覽器的人都沒有。次日,第三天,依舊如此,可是QB瀏覽器的生意卻是從未中斷,我開始意識到不對勁。
當天晚上,我趁人不注意,經過遠程線程注入的方式,喬裝打扮溜到了Outlook郵箱公司,Outlook曾經是咱們的大客戶,但最近都不來照顧咱們家生意了。我在Outlook公司的收件箱倉庫翻了半天,終於找到一封帶有連接的郵件,環顧四周見沒人發現我,因而冒充Outlook公司的員工點開了一個連接,打算看下這筆業務怎麼就跑到了QB瀏覽器公司。
接下來的事情讓我大吃一驚:點擊連接後,一條JMP指令竟然讓我跳到了數字簽名爲QB集團的一個模塊中,而這裏根本沒讓我查註冊表,直接就給我QB瀏覽器的路徑,讓我去找他打開連接!
真相總算大白,原來溜入Outlook公司的不止我一個,QB公司的人早就溜進來了,還安裝了HOOK,欺騙全部人讓他們都去本身那裏辦業務!回到公司,把個人經歷告訴了市場部老大。老大大怒:這些公司也太沒下線了,爲了錢什麼都能作出來。幾秒種後,老大又說:咱們得給他們一些教訓,大家趕忙琢磨琢磨如何搶回來。
<-----------------------終局之戰:狸貓換太子----------------------->
不過咱們終究仍是嫩了一些,過了一夜,次日帝國又來了一家獵狗瀏覽器公司開業,網頁瀏覽的生意一下又被他們搶了過去。
不得已,我只得故技重施,再次潛入Outlook公司,看看這獵狗瀏覽器又是如何搶到的客戶。再次點擊連接,按照熟悉的路線,拿到的仍是QB瀏覽器公司的地址,我也順利的調用CreateProcess函數把QB瀏覽器給啓動了。然而等我回到公司,居然神奇的發現,QB瀏覽器並無啓動,啓動的居然是獵狗瀏覽器,明明是我親自打開的QB瀏覽器怎麼就變成了獵狗瀏覽器?我有點懷疑本身眼睛是否是看錯了。
我打算再來一次,這一次,我讓軍軍溜入Outlook公司執行我開始的操做,而我去到內核態,看着進程啓動的地方,看看哪一個環節出了問題。收到軍軍的信號後,QB瀏覽器進程果真開始建立,接下來一幕讓我驚掉了下巴:獵狗瀏覽器也在內核態安插了驅動,他們居然把QB瀏覽器的執行文件exe換成了獵狗瀏覽器的!好一招狸貓換太子!
<-----------------------再見:瀏覽器江湖----------------------->
回到公司已經是深夜,打算次日再彙報領導。
次日,還沒等到彙報工做,領導先召集咱們開會:很是遺憾的告訴你們一個消息,因爲公司的業績持續下滑,千度集團決定砍掉這塊業務,千度瀏覽器即將成爲歷史,你們準備好工做交接吧。消息來得忽然,不過我也厭倦了這樣的爭鬥,不作也好。
然而,默認瀏覽器的戰爭,還在繼續······
未完待續·······
精彩回顧: