磁碟分割的一些知識

文章目錄   有幾個概念需要重新梳理一下。 Cylinder-head-sector(CHS) 這裡的Cylinder和track容易搞混,track是一個平面的東西,而Cylinder相當於多個track豎著疊起來,形成一個柱狀。 CHS可以有三組數字,定位在硬碟中的某一個扇區。可以用LBA (Logical block address)來說明。LBA 可以和CHS三元組進行相互換算。

保護模式下的跳轉

主要是兩類:不改變特權、改變特權1. 不改變特權級可以用段間、段內的call或者jmp。段間不做判斷。段間會看目的段是什麼程式碼片段。如果是非一致程式碼片段,則必須CPL=DPL,並且RPL<=DPL。跳轉後CPL不變。 如果是一致程式碼片段,對RPL不做判斷,則必須CPL>=DPL,即外環可以跳入內環,但CPL不變。2. 改變特權級,必須通過門(調用門、任務門、中斷門、陷阱門)。通過門由外環跳入內環,通過ret、lret、inet跳回外環。

Makefile知識補遺

1.例如, .PHONY : clean clean : -rm edit $(objects).PHONY意思表示clean是一個“偽目標”2.在rm命令前面加了一個小減號的意思就是,也許某些檔案出現問題,但不要管,繼續做後面的事。3. $@表示目標檔案,(因為@很像靶子,target) $<表示依賴檔案4.靜態模式 objects = foo.o bar.o all: $(objects) $(objects): %.o: %.c

emacs lisp總結

Emacs有三種Lisp模式,其命令名稱如下: emacs-lisp-mode     用於Emacs Lisp代碼的編輯(檔案名稱.emacs或尾碼.el) lisp-mode     用來編輯另一個Lisp系統的Lisp代碼(尾碼.l或.lisp) lisp-interaction-mode     用來編輯和運行Emacs Lisp代碼(互動模式)本文只討論

ReactOS 分析二

Makefile中的-include XXX表示如果XXXX檔案不存在,不會報錯。Makefile會間接包含\tools\rbuild\rbuild.mak。這裡簡單分析工具rbuild 在reactos的根目中,執行 make rbuild_clean make rbuild rbuild會根據ReactOS-i386.rbuild產生makefile.auto檔案,然後makefile.auto會被Makefile包含

DDK2000與VC6

一般情況下,需要先安裝VC6,然後再安裝DDK2000。 由於這次我安裝的是VC6的綠色版,所以很多東西沒有註冊。 DDK2000自己的批處理會調用vccheck.exe,它回去尋找VC的安裝位置。由於我安裝的是綠色版的VC,所以肯定是找不到正確路徑的。需要自己修改一下註冊表。 Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DevStudio]

ReactOS輸出log

ReactOS預設的log是關閉的,在進入系統選擇菜單“ReactOS (Debug)”,此時log通過串口輸出。列印log可以使用DbgPrint函數。NDEBUG宏控制DBG版本中輸出log。在每個module裡都定義了NDEBUG宏,如果想在DBG版本裡列印log就注釋掉NDEBUG宏。此時DPRINT,DPRINT1等輸出log的宏被enable。 對於freeldr,也是用DbgPrint函數。在debug.c裡修改下列宏,可以控制是否在DBG版本裡列印log://#define

保護模式編程下的描述符

共三種描述符:儲存段描述符、系統段描述符、門描述符。 描述符可以放在GDT、LDT、IDT(它只記錄中斷門和陷阱門)中。其中儲存段描述符和系統段描述符記錄的的都是一段記憶體,而門描述符只記錄一個入口地址。當DT=1時,為儲存段描述符。類型有   當DT=0時,為系統段描述符。門描述符有四類:任務門,調用門,中斷門,陷阱門

掃雷的逆向思路

思路來源於看雪的一篇文章:

hook雜記(二)

修改自https://forum.eviloctal.com/thread-28859-1-1.html在VC6編譯通過#include <stdio.h>#include <windows.h>// 儲存原始的6個位元組代碼BYTE orig_code[6] = {0x90, 0x90, 0x90, 0x90, 0x90,0x90};// JMP 0xXXXXXXXXBYTE hook_code[5] = { 0xe9, 0, 0, 0, 0 };BYTE

dll知識點查遺補缺

1.匯入函數(1)如果程式靜態串連時,聲明函數採用了__declspec(dllimport) 調用Foo時,被翻譯成call [_imp_Foo]其中_imp_Foo是idata節裡面的資料,dll的loader會修改這個地址裡的數值。_imp_Foo是FirstTrunk值。(2)如果程式靜態串連時,沒有採用了__declspec(dllimport) 調用Foo時,被翻譯成call _Foo而編譯器會自動產生_Foo函數,這隻是個軀殼。_Foo:jump

gcc and ld

gcc可以通過-Wl將參數傳入ld命令 GCC: -Wl,optionPass option as an option to the linker. If option contains commas, it is split into multiple options at the commas.LD:-Tbss org -Tdata org -Ttext orgSame as –section-start, with .bss, .data or .text as

關於記憶體管理的幾個作業系統核心變數

kd> x nt!MmSystem* 80469b80 nt!MmSystemDriverPage = <no type information> 80469508 nt!MmSystemLockOwner = <no type information> 8047e940 nt!MmSystemPageDirectory = <no type information> 80470ad4

建立根對象

ObInit會被調用兩次,ObpInitializationPhase分別為TRUE和FALSE的時候。在ObpInitializationPhase==TURE時,建立根目錄\和\ObjectTypes 在ObpInitializationPhase==FALSE時,調用ObCreateObjectType,建立\ObjectTypes中下的的Type、Directory、SymbolicLink等。 根目錄\和\ObjectTypes ObInit() { …

用ZwSetSystemInformation函數的SystemLoadAndCallImage調用驅動

//////////////////////////////////////// // New Deployment Module for rootkit 040 // ------------------------------------- // -Greg Hoglund http://www.rootkit.com //////////////////////////////////////// #include <windows.h> #include <stdio.

mod_rewrite模組的使用

1.httpd.conf中確保LoadModule rewrite_module modules/mod_rewrite.so2.<Directory "C:/php/mywork">…    #AllowOverride None改成 AllowOverride All … </Directory>3.實驗一建立一個.htaccess檔案,目的是將alice.html=>bob.htmlRewriteEngine onRewriteRule

驅動程式中使用系統日誌

其中的errorLogEntry->ErrorCode = 100會在 ------------------------------------------------------------------void Test(PDRIVER_OBJECT pDriverObject){KdPrint(("Test()!\n"));PIO_ERROR_LOG_PACKET errorLogEntry =

關於SEH的一些總結

1.以前的一個誤解在ring3時候,fs段指向的是TEB。以前一直有個誤解,fs:[0]和fs:[1]記錄著EXCEPTION_REGISTRATION其實不然,而是fs:[0]記錄著EXCEPTION_REGISTRATION的指標。2.資料結構,它可以形成一個鏈表,這個鏈表的首地址記錄在fs:[0],其中handle是異常處理函數。_EXCEPTION_REGISTRATION struc     prev    dd      ?     handler dd     

驅動程式中使用SEH

----------------------------------------------------------------------------------------------------void foo(){PUCHAR pBuffer = NULL;*pBuffer = 'a';}void Test(){KdPrint(("Test()!\n"));__try{foo();}__except(EXCEPTION_EXECUTE_HANDLER){NTSTATUS nStats =

ReactOS的SVN伺服器

http://svn.reactos.org/reactos/tags/ReactOS-0.3.14/http://svn.reactos.org/reactos/tags/ReactOS-0.3.9/reactos/http://svn.reactos.org/reactos/tags/ReactOS-0.3.3/reactos/ 可以證明用RosBE-1.4.5.exe編譯ReactOS-0.3.9在編譯ReactOS-0.3.3的時候,用RosBE-1.4.5編譯會出現一點小問題。解決方案

總頁數: 61357 1 .... 4376 4377 4378 4379 4380 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.