年前最后一篇组去,要整點(diǎn)有深度的鞍陨,后面再加一個(gè)彩蛋,不錯(cuò)不錯(cuò)不錯(cuò)……从隆!
先扯點(diǎn)題外話诚撵!
下班路過有人圍觀看煙花,一個(gè)哥們一臉不屑的說“有什么好看的键闺?浪費(fèi)錢還污染環(huán)境”寿烟,旁邊一個(gè)妹子一臉鄙視地回應(yīng)“你喜歡看美女不?”……我默默看著那個(gè)哥們低著頭離開了辛燥,看了一眼妹子筛武,又看了一眼煙花,我默默的照了一張相挎塌,隨后閃人徘六!
……………………………正文分割線………………………
先介紹幾個(gè)windows下的進(jìn)程調(diào)試器:ollydbg、PyDbg榴都、Immunity debugger
寄存器可以被認(rèn)為是位于CPU上的小型存儲(chǔ)器待锈,CPU獲取數(shù)據(jù)最快的方式就是直接訪問寄存器。在x86指令集中缭贡,一個(gè)CP具有8個(gè)通用寄存器:EAX炉擅、EDX、ECX阳惹、ESI谍失、EDI、EBP莹汤、ESP快鱼、EBX。
EAX寄存器也被稱為累加器纲岭,用于協(xié)助執(zhí)行一些常見的運(yùn)算操作以外用于傳遞函數(shù)調(diào)用的返回值抹竹。在X86指令集中很多經(jīng)過優(yōu)化的指令會(huì)優(yōu)先將數(shù)據(jù)寫入或者獨(dú)處EAX寄存器,在對數(shù)據(jù)進(jìn)行進(jìn)一步的計(jì)算止潮。大多數(shù)基本的運(yùn)算操作如:假發(fā)窃判、減法和比較運(yùn)算都會(huì)借助使用EAX寄存器來達(dá)到指令優(yōu)化的效果。還有一些特殊指令如:乘法和除法則必須在EAX寄存器中進(jìn)行喇闸。
若之前所屬袄琳,函數(shù)調(diào)用的返回值被儲(chǔ)存在EAX寄存器中询件。牢記這一點(diǎn)很重要,你可以基于存儲(chǔ)在EAX中的值來判斷一個(gè)函數(shù)調(diào)用所執(zhí)行的操作是成功還是失敗了唆樊。除了布爾類型的返回之外宛琅,EAX中存數(shù)的也可能是一個(gè)確切的函數(shù)返回值。
EDA是一個(gè)數(shù)據(jù)寄存器逗旁,這個(gè)寄存器可以被認(rèn)為是EAX寄存器的延伸部分嘿辟,用于協(xié)助一些更為復(fù)雜的運(yùn)算指令,如:乘法和除法片效,EDA被用于存儲(chǔ)這些指令操作的額外數(shù)據(jù)結(jié)果红伦。EDA也可以用于通用目的的數(shù)據(jù)存儲(chǔ),但是其最常見的用法是和EAX寄存器聯(lián)合使用堤舒,以協(xié)助執(zhí)行這類更復(fù)雜的元算色建。
ECX寄存器也被稱為計(jì)數(shù)器,用于支持循環(huán)操作舌缤,存儲(chǔ)一個(gè)字符串或者進(jìn)行計(jì)算就是典型的循環(huán)操作箕戳。需要特別注意的是ECX寄存器通常是反向計(jì)數(shù)的,而非正向計(jì)數(shù)国撵。我們用以下的Python代碼片段來向你說明這個(gè)問題陵吸。
在x86匯編語言中,那些涉及數(shù)據(jù)處理的循環(huán)操作依賴于ESI和EDI這兩個(gè)寄存器介牙,以實(shí)現(xiàn)高效的數(shù)據(jù)操作壮虫,ESI寄存器也被稱為源地址寄存器,這個(gè)寄存器存儲(chǔ)著輸入的數(shù)據(jù)流的位置信息环础。EDI寄存器則指向相關(guān)數(shù)據(jù)操作結(jié)果的存放位置囚似,我們稱之為目的變址寄存器,可以簡記為ESI用于“讀”线得,而EDI用于“寫”饶唤。在數(shù)據(jù)操作過程中使用源變址索引和目的變址寄存器可以極大提高程序運(yùn)行的效率。
ESP和EBP寄存器分別被稱為棧指針和基址指針贯钩,這些寄存器用于控制函數(shù)調(diào)用和相關(guān)的棧操作募狂。當(dāng)一個(gè)函數(shù)被調(diào)用時(shí),調(diào)用參數(shù)連同函數(shù)的返回的地址將先后被壓入函數(shù)棧中角雷,ESP寄存器始終指向函數(shù)棧的最頂端祸穷,有此不難推斷出在函數(shù)調(diào)用過程中的某一時(shí)刻,ESP指向了函數(shù)的返回地址勺三。EBP寄存器被用于指向函數(shù)棧的低端雷滚。在某些情況下,編譯器為了指令優(yōu)化的目的可能會(huì)避免將EBP寄存器用作棧指針吗坚。在這種情況下揭措,被釋放出來的EBP寄存器可以向其他任何一個(gè)通用的寄存器一樣另左它用胯舷。
EBX寄存器是惟一一個(gè)沒有被指定特殊用途的寄存器刻蚯,它可以被作為額外的存儲(chǔ)單元來使用绊含。
另外一個(gè)應(yīng)當(dāng)被提及的寄存器是EIP寄存器。這個(gè)寄存器始終指向當(dāng)前正在執(zhí)行的指令炊汹,當(dāng)CPU穿行于二進(jìn)制代碼中時(shí)躬充,EIP寄存器中的值隨之更新以實(shí)時(shí)的反映當(dāng)前代碼所執(zhí)行到的位置。
一個(gè)調(diào)試器應(yīng)當(dāng)能夠輕易的讀取和修改這些寄存器的內(nèi)容讨便,每一個(gè)操作系統(tǒng)都會(huì)提供一個(gè)接口做組來使得調(diào)試器能夠與CPU進(jìn)行交互充甚,以獲取或修改這些寄存器中的值。
…………………………………分割線…………………………………
不知道有多少人會(huì)看到這里霸褒!
總結(jié)下這一年吧伴找!好像好上一年也沒有太大變化,體重還是那樣废菱!那就這樣吧技矮,也沒啥寫的了!
最后來一個(gè)彩蛋殊轴!
這一年衰倦,感觸還是挺多的,作為過來人旁理,給還沒工作和剛開始工作的人一點(diǎn)意見吧樊零!
1、工作不要給自己定下太高的目標(biāo)孽文,除非你真的有做一番事業(yè)的心驻襟,并打算為夢想去努力,否則很可能一身疲憊芋哭,還搞得自己很自卑沉衣,其實(shí)我們大部分人真的都只是蕓蕓眾生中最普通的一個(gè),扔在人群中甚至很難被找到楷掉!也許有人會(huì)說做人要上進(jìn)厢蒜?這里我問一下,上進(jìn)想要得到的是什么烹植?若只是從小被灌注的上進(jìn)思想斑鸦,或者說是上進(jìn)是給其他人看的,那這樣的上進(jìn)是一種困住人的枷鎖草雕!當(dāng)然巷屿,若是你有著很明確的目標(biāo),明確知道自己奮斗拼搏的是什么墩虹,那放手去博吧嘱巾,苦和委屈全部吞進(jìn)肚子憨琳,只要不是特別“笨”,我相信五年十年后肯定有收獲的旬昭,至于這五到十年失去的東西就不要去追憶了篙螟!
2、不要給自己定太高目標(biāo)……是不是等于不思進(jìn)取了问拘?肯定不是啊遍略,其實(shí)生活中很多東西,尤其是見識(shí)和知識(shí)都是日積月累起來的骤坐,只要你認(rèn)真去做一件事去積累绪杏,五年十年后你能夠了解到的東西絕對比你想象的多得多,所以給所有人一個(gè)建議纽绍,沒啥事的時(shí)候多看看書蕾久,各行各業(yè)都可以涉略下,對什么感興趣對什么好奇看什么就可以拌夏,當(dāng)然小說這個(gè)東西不算吧(雖然我是寫小說的,但……你懂得辖佣,大部分小說沒什么營養(yǎng))郭脂,隨著知識(shí)的積累婆排,很多感覺神秘的東西、技術(shù)被揭開面紗,那種感覺我覺得很爽笆实丁噪裕!偶爾還可以賣弄下嚎幸!
3珊随、這兩年互聯(lián)網(wǎng)熱,薪資高污淋,很多喜不喜歡這個(gè)行業(yè)的人都進(jìn)來了顶滩,我不否認(rèn)這個(gè)行業(yè)是我們窮人家出身的孩子快速積累財(cái)富的一個(gè)途徑……怎么說呢?對于已經(jīng)踏上這個(gè)行業(yè)的人已經(jīng)沒什么可說的了寸爆,唯一說的(也是對自己說的)礁鲁,多多運(yùn)動(dòng)吧(動(dòng)腦多,體力勞動(dòng)少赁豆,容易猝死
仅醇,容易肥胖),為了能夠讓自己多活幾年魔种,沒準(zhǔn)多活一年就能夠見證人類科技的突破析二,沒準(zhǔn)人就可以不死了!對于沒入行的,還在大學(xué)中的叶摄,建議你們多找找掙錢的路子属韧,我覺得其實(shí)還是很多的,大學(xué)真的是能夠嘗試一些想法的最好時(shí)間段蛤吓,一旦錯(cuò)過就不會(huì)再有了宵喂!當(dāng)然你當(dāng)真沒什么想法,只是想找一份養(yǎng)活自己的工作柱衔,也沒必要排斥程序員樊破!程序員的特點(diǎn)就是“掙得多、花的少唆铐、死的早!”奔滑,開玩笑艾岂,我覺得程序員也不見得花的少,死的早朋其,掙得和有些行業(yè)比起來根本不值得一提王浴!寫代碼時(shí)我最煩的是需要處理的邏輯太復(fù)雜,項(xiàng)目規(guī)劃太混亂梅猿,開發(fā)時(shí)間不給夠氓辣,由于項(xiàng)目底子沒打好、水平限制袱蚓、項(xiàng)目迭代過快線上老是出問題钞啸,需要24小時(shí)待命解決問題!唉喇潘!不過那個(gè)行業(yè)底層人員都不容易体斩,為了支撐上層人員的夢想,底層人員只能付出辛苦颖低!
4絮吵、昨天看了一個(gè)有關(guān)人類的紀(jì)錄片,看到第三世界的人們還未解決溫飽問題忱屑,看到身處戰(zhàn)爭中的人失去所有至親蹬敲,輾轉(zhuǎn)逃到多個(gè)國家,結(jié)果卻是一再被驅(qū)逐莺戒,對著屏幕他要求很簡單伴嗡,他不求當(dāng)?shù)卣o予他什么,只求當(dāng)?shù)卣軌蜃屗钤谀抢镌嗵海菍λ麃碚f已是奢望闹究!一個(gè)孩子的父親,每次拿起槍內(nèi)心就充滿了畏懼食店,他怕戰(zhàn)爭中自己死在他人手上渣淤,也怕有人死在他的手上赏寇,但他又不得不拿起槍,為了自己的家園价认,為了自己的家人嗅定!看了這些,我告訴自己我又有什么可以抱怨的呢用踩?今天中午吃飯回來碰到技術(shù)部老大渠退,和他聊到這些,他說我們就悶頭活著吧脐彩,讓自己活的好些碎乃,讓自己的家人活的好些!沒錯(cuò)惠奸,這就是我應(yīng)該做的梅誓!改變不了世界,改變不了很多事情的我佛南,至少可以盡我所能讓家里人生活的好些梗掰!還能盡些綿薄之力幫助下困難的人!今年嗅回,我一共捐出去900左右及穗,其中一件讓我感動(dòng)的事,我們學(xué)校一個(gè)校友白血病绵载,學(xué)校幫忙籌款埂陆,預(yù)計(jì)籌款60萬,最后籌款72萬多尘分!感動(dòng)猜惋,心里溫暖,這是我一個(gè)眾多參與者的內(nèi)心最直接的反應(yīng)培愁,那位校友和他的家人更加不用說了著摔,也許錢不能真正的解決他的問題,但至少能夠讓他在這個(gè)寒冷的冬天感到溫暖定续,我想那也將轉(zhuǎn)換成他對抗病魔的一種力量谍咆!
5、生活也許比我們想象的簡單很多私股,當(dāng)然也可以比我們想象中的復(fù)雜很多摹察!簡單還是復(fù)雜一半是社會(huì)決定的,一半取決于我們自己倡鲸,生活中的各種世俗供嚎、各種枷鎖能卸掉就卸掉吧!不去攀比,不去掙沒必要的面子克滴,不去急功近利的逼争,做好自己的,自己劝赔、家人誓焦、在乎的人平安健康就是最簡單最真的幸福!
6着帽、財(cái)富的積累杂伟!我現(xiàn)在隱約覺得這件事是水到渠成之事,不奢侈不亂花仍翰,可能除了買房(車不知道算不算赫粥,我覺得不算必需品)有些壓力,生活其實(shí)沒什么壓力歉备。算一筆賬傅是,現(xiàn)在一個(gè)月4000應(yīng)該很平常(算不上高)的薪水了吧(北上廣除外),到手的差不多3000多些吧蕾羊,兩個(gè)人的話,一個(gè)月有6000帽驯,必要開銷3000應(yīng)該差不多了吧……忘記一個(gè)東西了龟再,首付這個(gè)東西,若是家里條件不錯(cuò)尼变,可以幫忙出了會(huì)更好利凑,不能出的話那可能要找一份相對高薪點(diǎn)的工作了……假設(shè)家里出了首付的錢,公司走正常的五險(xiǎn)一金嫌术,貸款年限長一點(diǎn)哀澈,住房公積金外也不用交什么錢!最主要的是你不可能一直都是4000的薪水度气,若是你一直都是4000的工資割按,我覺得真的是不漲薪(心)啊磷籍!若是首付家里沒有辦法适荣,自己就努力下,咬牙一年在工作中學(xué)習(xí)院领,升職加薪不是難事弛矛,攢個(gè)三五年也不是難事!當(dāng)然這樣經(jīng)歷三五年后你的眼界可能就不一樣了比然,也許你就不會(huì)傾向安穩(wěn)丈氓,向我一樣用最笨的日積月累來積累財(cái)富了!
上面的計(jì)算若是有誤的話請見諒,由于這個(gè)計(jì)算沒有什么考證万俗!
7湾笛、扯得差不多了,最后提前祝大家新年快樂该编,工作中有封版一說迄本,這篇日志就是我今年的“封版”了,過年的時(shí)候做的兩個(gè)活動(dòng)會(huì)推出來(為了保證我們能夠第一時(shí)間響應(yīng)線上問題课竣,公司特意給配了無線網(wǎng)卡嘉赎,我不知道我應(yīng)該感到開心還是不開心?)于樟,希望不要出什么問題公条,讓我過一個(gè)“平平淡淡”的春節(jié),以便我年后有一個(gè)不錯(cuò)的心情投入2016年的“戰(zhàn)斗”迂曲!
最后不知道有多少人看到這里了靶橱,看到的人麻煩留下點(diǎn)什么,一個(gè)贊或者一條評(píng)論都可以路捧!