Time of Update: 2018-12-04
Reference: http://www.wintellect.com/CS/blogs/jrobbins/archive/2009/05/11/pdb-files-what-every-developer-must-know.aspxAuthor: John Robbins Most developers realize that PDB files are something that help you debug, but that's about it. Don't feel bad
Time of Update: 2018-12-04
過去的一年,重點關注了windows底層的一些東西,包括核心API,現在學習的圖形編程則涉及更底層的驅動和核心未公開介面。學習了一門新語言——組合語言。瞭解了TCP/IP協議及資料包結構,運用ACE解決網路連接和傳輸問題。 2月份之前,圖形編程這本書能學的要學會,圖形還是很重要的;。
Time of Update: 2018-12-04
最近在工作中遇到一些條件判斷的語句, 情景如下: 1. 使用者輸入的彙總統計方式只能允許兩種情況, MAX(...)和MIN(...) 2. 輸入解釋模組根據情況把前面的四個字元截取下來然後進行比較匹配 記為strSummaryWay 我看到這段程式這麼處理: if ( summaryWay == 'MAX(' ) 按求最大值處理; else 按求最小值處理; 很明顯,這是一個不完備的判斷表達方式.
Time of Update: 2018-12-04
常見的網路伺服器,基本上是7*24小時運轉的,對於網遊來說,至少要求伺服器要能連續工作一周以上的時間並保證不出現伺服器崩潰這樣的災難性事件。事實上,要求一個伺服器在連續的滿負荷運轉下不出任何異常,要求它設計的近乎完美,這幾乎是不太現實的。伺服器本身可以出異常(但要儘可能少得出),但是,伺服器本身應該被設計得足以健壯,“小病小災”打不垮它,這就要求伺服器在異常處理方面要下很多功夫。
Time of Update: 2018-12-04
今天看到一段代碼, 為了判斷一個列表中某一項資料是否都是同一值資料(值只有兩種可能,number和string).虛擬碼近似於: int numFlag=0; int strFlag=0; for item in itemList if ( item is number ) numFlag=1; else { strFlag=1; } if
Time of Update: 2018-12-04
這兩天看了一下破解的資料,感覺很多原理我都是懂的,比如以前的核心模式,使用者模式,PE檔案結構,DLL載入及注入原理,彙編單步跟蹤。感覺就是:基礎不是白打的,前面的《windows核心編程》,《組合語言》都完全用得上。所以,之前定的方向沒有錯,至於COM技術,也有相關的術語提及,我也是能看懂的,《windows圖形編程》這本書帶給了我一些驅動和核心底層的知識,也用上了。 知道一些程式的原理,以及作業系統記憶體方面的知識,使用起IDA
Time of Update: 2018-12-04
理解在彙編中為資料分配空間的方式: 我們可以在程式中,定義我們希望處理的資料,這些資料就會被編譯、串連程式作為程式的一部分寫到可執行檔中,當可執行檔中的程式被載入入記憶體時,這些資料同時被載入入記憶體。與此同時我們要處理的資料也就自然而然的獲得了儲存空間。 使用g命令執行運行到某個地址的功能。
Time of Update: 2018-12-04
今天參加了一個IBM敏捷教練的課程,(全程是兩天,16小時),我只聽了兩個小時,小結一下. 1. 敏捷流程必需人員:strakeholder;product owner;team leader;team members; strakeholder是需要的發出點;PO負責把使用者的需求排一個優先順序,但不能決定多個團隊中誰幹什麼事情;而每個迭代周期時間是一定的,team leader通過估算自己團隊的能力,從PO手中選擇自己團隊本個迭代可做的任務.team
Time of Update: 2018-12-04
assume cs:code data segment db '1975','1976','1977','1978','1979','1980','1981','1982' db '1983','1984','1985','1986','1987','1988','1989','1990' db '1991','1992','1993','1994','1995'
Time of Update: 2018-12-04
以下程式執行起來出了一個我無法解析的問題。迴圈執行到cx=3時,add bx,2執行後居然出現亂跳轉的情況,目前還沒搞清楚到底怎麼一回事。 assume cs:code a segment dw 1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,0ffh a ends b segment dw 0,0,0,0,0,0,0,0 b ends code segment start: mov ax,b
Time of Update: 2018-12-04
可以修改IP,或同時修改CS和IP的指令統稱為轉移指令。 段內轉移只修改IP,分為短轉移和近轉移。 轉移指令可以分為:無條件轉移指令,條件轉移指令,迴圈指令,過程,中斷這五類。 offset取得段位移地址。 jmp為無條件轉移指令,jmp shor只修改IP,範圍為-128~127. 注意jmp在只修改IP時,使用的是相對位址,所以同一個指令在不同地址執行起來轉移到的地方是不一樣的。 jmp far
Time of Update: 2018-12-04
今天追蹤一個Bug:在程式關閉的時候,程式崩潰。 經過一天的跟蹤,最終找到問題所在: static Gdiplus::Font font(L"Arial",8.0f * 96.0 / 72,FontStyleBold,UnitPixel);
Time of Update: 2018-12-04
記得讀書時學過一篇課文: 魏文王問扁鵲 魏文王問扁鵲曰:「子昆弟三人其孰最善為醫?」扁鵲曰:「長兄最善,中兄次之,扁鵲最為下。」魏文侯曰:「可得聞邪?」扁鵲曰:「長兄於病視神,未有形而除之,故名不出於家。中兄治病,其在毫毛,故名不出於閭。若扁鵲者,鑱血脈,投毒藥,副肌膚,閑而名出聞於諸侯。」 我想到了編程. 寫程式時考慮周到,防患於未然的,是高手; 程式測試時,發現錯誤,有錯補錯,次之; 等到生產線上出了問題, 造成損失而不知道程式錯在哪裡,
Time of Update: 2018-12-04
樓主發表於:2010-12-13 14:57:51已知:預存程序得到下面記錄:name valueA 100B 23C 95D 45求:在記錄第一列增加ID列,並且要按value排序:結果:ID name value1 A 1002 C 953 D 454 B 23SQL code select id=row_number() over(oder by value desc), *from tborder by value descselect id=(select count(1)
Time of Update: 2018-12-04
問:以下代碼,程式為什麼能正常結束?assume cs:codesgcodesg segment mov ax,4c00h int 21hstart: mov ax,0 s: nop nop mov di,offset s mov si,offset s2 mov ax,cs:[si] mov cs:[di],ax s0: jmp short s s1: mov ax,0 int 21h
Time of Update: 2018-12-04
這章增加了一些常用的指令使用方法,但沒有小結,我就自己小結一下。 1.and和or,用於位的與或,是一個很基礎的邏輯操作用法,一定要靈活掌握。像(n+40H-1)&~(40H-1)和n&~(40H-1)是什麼意思應該熟悉。 2.使用邏輯操作實現大小寫轉換
Time of Update: 2018-12-04
在進入公司的編程規範考試的時候,有這麼一個規範--不要試圖去寫一個多功能的,面面俱到的函數. 在最近的工作中,算是真正體會到這個規範的重要性了.因為做二次開發的時候,要接觸到別人的代碼,裡面多處一個函數處理好幾個邏輯上不是並列的分支,看半天又發現一些東西,跟研究怪物似的,令我看的死去活來,氣得半死.真想罵那個人.
Time of Update: 2018-12-04
實現向螢幕中間分別顯示綠色、綠底紅色、白底藍色的字串'welcome to masm'assume cs:codesg,ds:datasgdatasg segment db 'welcome to masm!'datasg endscolor segment db 00000010B ;黑底綠字 db 00100100B ;綠底紅字 db 01110001B ;白底藍字color endsstack segment dw 0,0,0,0, 0,0,0,0stack
Time of Update: 2018-12-04
本章重點問題:處理的資料放在什麼地方;要處理的資料有多長。 1.[bx]的基址是ds,[bp]的基址是ss。所以bx,bp不能在一起做位移的定址,si和di預設基址是ds,但若和bp一起使用則基址為ss。另外,si+-di不能在沒有bx或bp的時候作運算。 2.指令執行前資料可以在3個地方:記憶體,寄存器,指令緩衝器。 3.資料位元置表達方式:立即數,寄存器,段地址+位移地址 4.五種定址方式:直接,寄存器間接,寄存器相對,基址變址,相對基址變址。
Time of Update: 2018-12-04
題目:下面的程式執行後,ax中的數值為多少?(注意用call指令的原理來分析,不要在Debug中單步跟蹤來驗證你的結論。對於此程式,在Debug中單步跟蹤的結果,不能代表CPU的實際執行結果)assume cs:codesgstack segment dw 8 dup (0)stack ends codesg segment start: mov ax,stackmov ss,axmov sp,16mov ds,axmov ax,0 call word ptr