年前最后一篇,要整點(diǎn)有深度的,后面再加一個彩蛋,不錯不錯不錯……!
先扯點(diǎn)題外話!
下班路過有人圍觀看煙花,一個哥們一臉不屑的說“有什么好看的?浪費(fèi)錢還污染環(huán)境”,旁邊一個妹子一臉鄙視地回應(yīng)“你喜歡看美女不?”……我默默看著那個哥們低著頭離開了,看了一眼妹子,又看了一眼煙花,我默默的照了一張相,隨后閃人!
……………………………正文分割線………………………
先介紹幾個windows下的進(jìn)程調(diào)試器:ollydbg、PyDbg、Immunity debugger
寄存器可以被認(rèn)為是位于CPU上的小型存儲器,CPU獲取數(shù)據(jù)最快的方式就是直接訪問寄存器。在x86指令集中,一個CP具有8個通用寄存器:EAX、EDX、ECX、ESI、EDI、EBP、ESP、EBX。
EAX寄存器也被稱為累加器,用于協(xié)助執(zhí)行一些常見的運(yùn)算操作以外用于傳遞函數(shù)調(diào)用的返回值。在X86指令集中很多經(jīng)過優(yōu)化的指令會優(yōu)先將數(shù)據(jù)寫入或者獨(dú)處EAX寄存器,在對數(shù)據(jù)進(jìn)行進(jìn)一步的計算。大多數(shù)基本的運(yùn)算操作如:假發(fā)、減法和比較運(yùn)算都會借助使用EAX寄存器來達(dá)到指令優(yōu)化的效果。還有一些特殊指令如:乘法和除法則必須在EAX寄存器中進(jìn)行。
若之前所屬,函數(shù)調(diào)用的返回值被儲存在EAX寄存器中。牢記這一點(diǎn)很重要,你可以基于存儲在EAX中的值來判斷一個函數(shù)調(diào)用所執(zhí)行的操作是成功還是失敗了。除了布爾類型的返回之外,EAX中存數(shù)的也可能是一個確切的函數(shù)返回值。
EDA是一個數(shù)據(jù)寄存器,這個寄存器可以被認(rèn)為是EAX寄存器的延伸部分,用于協(xié)助一些更為復(fù)雜的運(yùn)算指令,如:乘法和除法,EDA被用于存儲這些指令操作的額外數(shù)據(jù)結(jié)果。EDA也可以用于通用目的的數(shù)據(jù)存儲,但是其最常見的用法是和EAX寄存器聯(lián)合使用,以協(xié)助執(zhí)行這類更復(fù)雜的元算。
ECX寄存器也被稱為計數(shù)器,用于支持循環(huán)操作,存儲一個字符串或者進(jìn)行計算就是典型的循環(huán)操作。需要特別注意的是ECX寄存器通常是反向計數(shù)的,而非正向計數(shù)。我們用以下的Python代碼片段來向你說明這個問題。
在x86匯編語言中,那些涉及數(shù)據(jù)處理的循環(huán)操作依賴于ESI和EDI這兩個寄存器,以實(shí)現(xiàn)高效的數(shù)據(jù)操作,ESI寄存器也被稱為源地址寄存器,這個寄存器存儲著輸入的數(shù)據(jù)流的位置信息。EDI寄存器則指向相關(guān)數(shù)據(jù)操作結(jié)果的存放位置,我們稱之為目的變址寄存器,可以簡記為ESI用于“讀”,而EDI用于“寫”。在數(shù)據(jù)操作過程中使用源變址索引和目的變址寄存器可以極大提高程序運(yùn)行的效率。
ESP和EBP寄存器分別被稱為棧指針和基址指針,這些寄存器用于控制函數(shù)調(diào)用和相關(guān)的棧操作。當(dāng)一個函數(shù)被調(diào)用時,調(diào)用參數(shù)連同函數(shù)的返回的地址將先后被壓入函數(shù)棧中,ESP寄存器始終指向函數(shù)棧的最頂端,有此不難推斷出在函數(shù)調(diào)用過程中的某一時刻,ESP指向了函數(shù)的返回地址。EBP寄存器被用于指向函數(shù)棧的低端。在某些情況下,編譯器為了指令優(yōu)化的目的可能會避免將EBP寄存器用作棧指針。在這種情況下,被釋放出來的EBP寄存器可以向其他任何一個通用的寄存器一樣另左它用。
EBX寄存器是惟一一個沒有被指定特殊用途的寄存器,它可以被作為額外的存儲單元來使用。
另外一個應(yīng)當(dāng)被提及的寄存器是EIP寄存器。這個寄存器始終指向當(dāng)前正在執(zhí)行的指令,當(dāng)CPU穿行于二進(jìn)制代碼中時,EIP寄存器中的值隨之更新以實(shí)時的反映當(dāng)前代碼所執(zhí)行到的位置。
一個調(diào)試器應(yīng)當(dāng)能夠輕易的讀取和修改這些寄存器的內(nèi)容,每一個操作系統(tǒng)都會提供一個接口做組來使得調(diào)試器能夠與CPU進(jìn)行交互,以獲取或修改這些寄存器中的值。
…………………………………分割線…………………………………
不知道有多少人會看到這里!
總結(jié)下這一年吧!好像好上一年也沒有太大變化,體重還是那樣!那就這樣吧,也沒啥寫的了!
最后來一個彩蛋!
這一年,感觸還是挺多的,作為過來人,給還沒工作和剛開始工作的人一點(diǎn)意見吧!
1、工作不要給自己定下太高的目標(biāo),除非你真的有做一番事業(yè)的心,并打算為夢想去努力,否則很可能一身疲憊,還搞得自己很自卑,其實(shí)我們大部分人真的都只是蕓蕓眾生中最普通的一個,扔在人群中甚至很難被找到!也許有人會說做人要上進(jìn)?這里我問一下,上進(jìn)想要得到的是什么?若只是從小被灌注的上進(jìn)思想,或者說是上進(jìn)是給其他人看的,那這樣的上進(jìn)是一種困住人的枷鎖!當(dāng)然,若是你有著很明確的目標(biāo),明確知道自己奮斗拼搏的是什么,那放手去博吧,苦和委屈全部吞進(jìn)肚子,只要不是特別“笨”,我相信五年十年后肯定有收獲的,至于這五到十年失去的東西就不要去追憶了!
2、不要給自己定太高目標(biāo)……是不是等于不思進(jìn)取了?肯定不是啊,其實(shí)生活中很多東西,尤其是見識和知識都是日積月累起來的,只要你認(rèn)真去做一件事去積累,五年十年后你能夠了解到的東西絕對比你想象的多得多,所以給所有人一個建議,沒啥事的時候多看看書,各行各業(yè)都可以涉略下,對什么感興趣對什么好奇看什么就可以,當(dāng)然小說這個東西不算啊(雖然我是寫小說的,但……你懂得,大部分小說沒什么營養(yǎng)),隨著知識的積累,很多感覺神秘的東西、技術(shù)被揭開面紗,那種感覺我覺得很爽啊!偶爾還可以賣弄下!
3、這兩年互聯(lián)網(wǎng)熱,薪資高,很多喜不喜歡這個行業(yè)的人都進(jìn)來了,我不否認(rèn)這個行業(yè)是我們窮人家出身的孩子快速積累財富的一個途徑……怎么說呢?對于已經(jīng)踏上這個行業(yè)的人已經(jīng)沒什么可說的了,唯一說的(也是對自己說的),多多運(yùn)動吧(動腦多,體力勞動少,容易猝死
,容易肥胖),為了能夠讓自己多活幾年,沒準(zhǔn)多活一年就能夠見證人類科技的突破,沒準(zhǔn)人就可以不死了!對于沒入行的,還在大學(xué)中的,建議你們多找找掙錢的路子,我覺得其實(shí)還是很多的,大學(xué)真的是能夠嘗試一些想法的最好時間段,一旦錯過就不會再有了!當(dāng)然你當(dāng)真沒什么想法,只是想找一份養(yǎng)活自己的工作,也沒必要排斥程序員!程序員的特點(diǎn)就是“掙得多、花的少、死的早!”,開玩笑,我覺得程序員也不見得花的少,死的早,掙得和有些行業(yè)比起來根本不值得一提!寫代碼時我最煩的是需要處理的邏輯太復(fù)雜,項(xiàng)目規(guī)劃太混亂,開發(fā)時間不給夠,由于項(xiàng)目底子沒打好、水平限制、項(xiàng)目迭代過快線上老是出問題,需要24小時待命解決問題!唉!不過那個行業(yè)底層人員都不容易,為了支撐上層人員的夢想,底層人員只能付出辛苦!
4、昨天看了一個有關(guān)人類的紀(jì)錄片,看到第三世界的人們還未解決溫飽問題,看到身處戰(zhàn)爭中的人失去所有至親,輾轉(zhuǎn)逃到多個國家,結(jié)果卻是一再被驅(qū)逐,對著屏幕他要求很簡單,他不求當(dāng)?shù)卣o予他什么,只求當(dāng)?shù)卣軌蜃屗钤谀抢铮菍λ麃碚f已是奢望!一個孩子的父親,每次拿起槍內(nèi)心就充滿了畏懼,他怕戰(zhàn)爭中自己死在他人手上,也怕有人死在他的手上,但他又不得不拿起槍,為了自己的家園,為了自己的家人!看了這些,我告訴自己我又有什么可以抱怨的呢?今天中午吃飯回來碰到技術(shù)部老大,和他聊到這些,他說我們就悶頭活著吧,讓自己活的好些,讓自己的家人活的好些!沒錯,這就是我應(yīng)該做的!改變不了世界,改變不了很多事情的我,至少可以盡我所能讓家里人生活的好些!還能盡些綿薄之力幫助下困難的人!今年,我一共捐出去900左右,其中一件讓我感動的事,我們學(xué)校一個校友白血病,學(xué)校幫忙籌款,預(yù)計籌款60萬,最后籌款72萬多!感動,心里溫暖,這是我一個眾多參與者的內(nèi)心最直接的反應(yīng),那位校友和他的家人更加不用說了,也許錢不能真正的解決他的問題,但至少能夠讓他在這個寒冷的冬天感到溫暖,我想那也將轉(zhuǎn)換成他對抗病魔的一種力量!
5、生活也許比我們想象的簡單很多,當(dāng)然也可以比我們想象中的復(fù)雜很多!簡單還是復(fù)雜一半是社會決定的,一半取決于我們自己,生活中的各種世俗、各種枷鎖能卸掉就卸掉吧!不去攀比,不去掙沒必要的面子,不去急功近利的,做好自己的,自己、家人、在乎的人平安健康就是最簡單最真的幸福!
6、財富的積累!我現(xiàn)在隱約覺得這件事是水到渠成之事,不奢侈不亂花,可能除了買房(車不知道算不算,我覺得不算必需品)有些壓力,生活其實(shí)沒什么壓力。算一筆賬,現(xiàn)在一個月4000應(yīng)該很平常(算不上高)的薪水了吧(北上廣除外),到手的差不多3000多些吧,兩個人的話,一個月有6000,必要開銷3000應(yīng)該差不多了吧……忘記一個東西了,首付這個東西,若是家里條件不錯,可以幫忙出了會更好,不能出的話那可能要找一份相對高薪點(diǎn)的工作了……假設(shè)家里出了首付的錢,公司走正常的五險一金,貸款年限長一點(diǎn),住房公積金外也不用交什么錢!最主要的是你不可能一直都是4000的薪水,若是你一直都是4000的工資,我覺得真的是不漲薪(心)啊!若是首付家里沒有辦法,自己就努力下,咬牙一年在工作中學(xué)習(xí),升職加薪不是難事,攢個三五年也不是難事!當(dāng)然這樣經(jīng)歷三五年后你的眼界可能就不一樣了,也許你就不會傾向安穩(wěn),向我一樣用最笨的日積月累來積累財富了!
上面的計算若是有誤的話請見諒,由于這個計算沒有什么考證!
7、扯得差不多了,最后提前祝大家新年快樂,工作中有封版一說,這篇日志就是我今年的“封版”了,過年的時候做的兩個活動會推出來(為了保證我們能夠第一時間響應(yīng)線上問題,公司特意給配了無線網(wǎng)卡,我不知道我應(yīng)該感到開心還是不開心?),希望不要出什么問題,讓我過一個“平平淡淡”的春節(jié),以便我年后有一個不錯的心情投入2016年的“戰(zhàn)斗”!
最后不知道有多少人看到這里了,看到的人麻煩留下點(diǎn)什么,一個贊或者一條評論都可以!