1. 程式人生 > >OD筆記2 記憶體斷點與硬體斷點

OD筆記2 記憶體斷點與硬體斷點

精闢解釋來自看雪論壇)

記憶體訪問斷點是利用VirtualProtect來把該記憶體地址所在的記憶體頁(大小為4096位元組)設定為不可讀,不可寫,不可執行,所以當訪問該記憶體的時候會產生一個訪問異常,從而在異常處理函式中實現記憶體訪問斷點的操作.硬體斷點是利用CPU自帶的除錯暫存器(DR),產生 SINGLE_STEP異常.

記憶體斷點的特徵:記憶體斷點的特性就是不管你選幾個位元組,OllyDBG 都會分配 4096 位元組的記憶體區。而硬體斷點最多隻能選 4 個位元組。

記憶體斷點的設定方法:①在資料區,ctrl+g跳轉到要設定斷點的記憶體區域,並選擇若干位元組

②右鍵->斷點-》記憶體寫入

/記憶體訪問

(這裡還有個要注意的地方:記憶體斷點只在當前除錯的程序中有效,就是說你如果重新載入程式的話記憶體斷點就自動刪除了。且記憶體斷點每一時刻只能有一個。就是說你不能像按 F2 鍵那樣同時設定多個斷點)。

相關推薦

OD筆記2 記憶體斷點硬體斷點

精闢解釋(來自看雪論壇): 記憶體訪問斷點是利用VirtualProtect來把該記憶體地址所在的記憶體頁(大小為4096位元組)設定為不可讀,不可寫,不可執行,所以當訪問該記憶體的時候會產生一個訪問異常,從而在異常處理函式中實現記憶體訪問斷點的操作.硬體斷點是利用CPU自

《深入理解java虛擬機器》筆記2——GC演算法記憶體分配策略

2019大三的寒假計劃——利用在公司每天早起的時間讀書,第一本是周志明老師的《深入理解Java虛擬機器——JVM高階特性與最佳實踐》,這一系列是通過對原文的拜讀與自己理解加上網路上的資料文章整理出的讀書筆記。 說起垃圾收集(Garbage Collection, GC),想

jsp筆記2(編譯指令動作指令)

getpara html 丟失 另一個 value 默認 extend servlet encoding 一、jsp的編譯指令是通知jsp引擎的消息,不會生成輸出。 jsp的3個編譯指令: page:針對當前頁面的指令 include:包含另一個頁面的指令

Java學習筆記2(輸入隨機數簡單介紹)

args image public 數據類型 system double next class gpo 輸入: import java.util.Scanner; public class ScannerDemo{   public static void main(Str

深入理解Java虛擬機器筆記——Java記憶體模型併發程式設計

  當程式在執行過程中,會將運算需要的資料從主存複製一份到CPU的快取記憶體中,那麼CPU進行計算時就可以直接從它的快取記憶體讀取資料和向其中寫入資料,當運算結束後,再將告訴快取中的資料重新整理到主存中。   如果一個變數在多個CPU中都存在快取,那麼就存在快取一致性

GMS2筆記 2.人物移動碰撞遮蓋

1.構建指令碼的時候,預設的是DnD模式,需要你自己調整為GML模式,注意好這點             2.在尋找Sprite原點的時候一定要特別注意,靜態資源和動態資源的原點不同 對於動態資源,若原點不在每幀動畫的中心,那麼在播放這個動畫的時候就會產生某幀圖案

c學習筆記--2變數型別基本操作

好久之前的了,學習c語言的筆記。 依舊是老套路,從基礎的變數型別,到函式定義一步步學起 #include <stdio.h> #include <string.h> //c語言的變數型別與基本操作 void test2() { //數

筆記2——《黑客畫家》

還要 問題 避免 同步 長大 真的 毫無 水平 錯誤 有時候,別人會對你說:“要根據社會需要,改造自己的思想。”這種說法隱含的意思似乎是,如果你不認同社會,那麽可定是你自己的問題。你同意這種說法嗎?事實上,它不僅不對,而且會讓歷史倒退。如果你真的

部分筆記—Java記憶體區域記憶體溢位異常

Java與c++記憶體管理對比 C或C++ 在記憶體管理區域,即擁有每一個物件的“所有權”,又擔負者每一個物件生命開始到終結的責任 Java 在虛擬機器自動記憶體管理機制的幫助下,不再需要為每一個new操作去寫配對的delete/free程式碼,不容易出

ZooKeeper學習筆記-2---ZooKeeper部署執行

1.環境配置 系統環境:ZooKeeper對於不同平臺都有良好的支援,可以再目前大多數主流的作業系統上正常執行,例如GUN/Linux、Sun Solaris、Win32以及MacOSX等。有一點需要注意,由於FreeBSD系統的JVM對Java的NIO Se

菜鳥SpringMVC學習筆記2——@SessionAttributes註解@RequestMapping

Session與Request區別在於,springMVC處理時,將資料放在哪個程序裡。 在瀏覽器呼叫時,會出現區別,一旦弄錯,就會獲取不到資料。 先模擬一個取資料的一個實現。 假裝USER模型是資料庫中的資料,我模擬user屬性如下: packag

Kotlin學習筆記2 : 變數常量基本資料型別

一:繼承與類與方法定義: (1)繼承用一個英文冒號: extends---> : 預設的類是不可以被繼承的,只能繼承宣告為open或者abstract的類 open class Person (name: String , surname: String) { } (

llvm 學習筆記 2 : 新增 Pass 除錯

在BackendUtil.cpp 的 void EmitAssemblyHelper::EmitAssembly 函式中, if (PerFunctionPasses)  條件後 new 了自帶的 Hello pass. 重新 make 時發生以下錯誤 make[4]:

Bootstrap學習筆記2——BoostrapTable下載簡單運用

這段時間主要在Bootstrap各個元件上進行學習,通過翻閱官方API(中文文件,英文我也看不懂啦)進行簡單的Demo實操。當然,這期間我也尋找了一些元件基於Bootstrap的好用外掛,今天給大家帶來一個表格元件的外掛Bootstrap Table的簡單運用介紹,詳細內容

RT-Thread學習筆記2-互斥量訊號量

[toc] *** ## 1. 臨界區保護 臨界區是僅允許一個執行緒訪問的共享資源。它可以是一個具體的硬體裝置,也可以是一個變數、一個緩衝區。多個執行緒必須互斥的對他們進行訪問 ### 1.1 方法一:關閉系統排程保護臨界區 禁止排程 ``` /* 排程器商鎖,上鎖後不再切換到其他執行緒,僅響應中斷 */

深入理解Java虛擬機器讀書筆記2----垃圾收集器記憶體分配策略

二 垃圾收集器與記憶體分配策略 1 JVM中哪些記憶體需要回收?     JVM垃圾回收主要關注的是Java堆和方法區這兩個區域;而程式計數器、虛擬機器棧、本地方法棧這3個區域隨執行緒而生,隨執行緒而滅,隨著方法結束或者執行緒結束記憶體自然

OD條件訊息斷點的設定方法

一、條件斷點: 使用方法(如): 在當前行按[Shift+F2]鍵->條件斷點(這個不太好用,因為程式BUG偶爾失效)。 在當前行按[Shift+F4]鍵->條件記錄斷點(只要設定上條件語句和按什麼條件生效就可以了)。 條件語句(如): EAX == 0

筆記:深入理解JVM 第2章 Java記憶體區域記憶體溢位

1、JVM 執行時資料區 所有執行緒共享的資料區:方法區(持久代)、堆區 執行緒隔離的資料區:程式計數器、Java虛擬機器棧區 堆區構成:新生代 ( 由Eden, From Survivor, To Survivor 構成)、老生代 執行時常量池:方法區一部分,用於存放編

OD條件訊息斷點的設定方法 (轉)

編寫整理:Coderui 一、條件斷點: 使用方法(如):在當前行按[Shift+F2]鍵->條件斷點(這個不太好用,因為程式BUG偶爾失效)。在當前行按[Shift+F4]鍵->條件記錄斷點(只要設定上條件語句和按什麼條件生效就可以了)。 條件語句(如):E

《深入理解java虛擬機器》讀書筆記2(java記憶體區域OOM)

1.java執行時記憶體劃分 》程式計數器 學過彙編的童鞋都知道程式執行時會記錄當前執行的位置,以便確認接下來執行什麼。這裡的程式計數器就是用來儲存當前執行緒所執行位元組碼的行號指示器,也就是地址,位元組碼指示器通過改變程式計數器的值來指定下一條執行