OD載入程式過程2個方法
OllyDbg可以用兩種方式載入目標程式除錯,一種是通過CreateProcess建立程序;另一種是利用DebugActiveProcess函式將偵錯程式捆綁到一個正在執行的程序上。
1.利用CreateProcess建立程序
單擊選單“File/Open”或按快捷鍵F3開啟目標檔案,這樣會呼叫CreateProcess建立一個用以除錯的新程序。OllyDbg將接收到目標程序發生的除錯事件,而對其子程序的除錯事件將不予理睬。
OllyDbg除了直接載入目標程式外,也支援帶引數的程式,方法是:在開啟對話方塊中的“Arguments”欄中輸入引數行,如圖2.7所示。
圖2.7 帶引數除錯程式 |
2.將OllyDbg附加到一個正在執行的程序上(據說od 載入會呼叫PsSuspendThread)
OllyDbg的一個實用的功能是可以除錯正在執行的程式,這個功能稱為“附加(Attach)”。其原理是利用DebugActiveProcess函式可以將偵錯程式捆綁到一個正在執行的程序上,如果執行成功,則效果類似於利用CreateProcess建立的新程序。
單擊選單“File/Attach”開啟附加對話方塊,如圖2.8所示。選中正在執行的目標程序,單擊Attach按鈕即可附加目標程序。附加後,目標程式會暫停在Ntdll.dll的DbgBreakPoint處,在OllyDbg裡按一下F9鍵或Shift+F9鍵讓程式繼續執行。接著就可對目標程式進行除錯分析了。
圖2.8 附加目標程序 |
注意:附加一個程式時,儘量用新開啟的OllyDbg,這樣附加的成功率高些。
如果是隱藏程序,就不能用上述方法附加了。OllyDbg有一個-p啟動引數,只要得到程序的pid就可以附加了。用IceSword等工具獲得隱藏程序的pid,然後在控制檯視窗用-p引數附加即可。注意,pid的值是十進位制。
C:\OllyDbg.exe –p pid值 |
相關推薦
OD載入程式過程2個方法
OllyDbg可以用兩種方式載入目標程式除錯,一種是通過CreateProcess建立程序;另一種是利用DebugActiveProcess函式將偵錯程式捆綁到一個正在執行的程序上。 1.利用CreateProcess建立程序 單擊選單“File/Open”或按快捷鍵
OD載入程式的方式
1. OllyDbg可以用兩種方式載入被除錯的目標程式,一是通過CreateProcess建立程序,二是用函式DebugActiveProcess將OD 繫結到一個正在執行的程式上。 1.1 用CreateProcess建立程序 1.1.1
通過瀏覽器載入程式選擇檔案路徑方法
通過瀏覽器瀏覽器選擇預覽檔案儲存路徑 在工作中遇到這個需求,需要選擇檔案的儲存這裡我列舉兩種方法供大家參考: 1、通過SHBrowseForFolder實現具體程式碼和講解如下: wchar_t szPath[MAX_PATH]; //存放選擇的目錄路徑 Zero
提高Web端頁面載入速度的6個方法
阿伯丁集團曾對使用者進行調查,結果顯示,網站頁面載入時間每延長1秒,就會減少11%的頁面瀏覽量,降低16%的客戶滿意度,降低7%的轉化率。亞馬遜也通過調查證實,網頁開啟的速度每提高100毫秒,能為網站增多1%的收益。類似的證實還有很多,網頁開啟的速度直接關係到網站的收益,已毋庸置疑。 這就是為什麼
在Docker中監控Java應用程式的5個方法
http://geek.csdn.net/news/detail/218595 譯者注:Docker是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後釋出到任何流行的Linux機器上,也可以實現虛擬化。通常情況下,監控的主要目的在於:減少宕機時
javascript實現n階乘的2個方法
方案一:利用while迴圈 function factorial(num){ var result = 1; while(num){ result *= num; num--; } return result; }方案二:利用函式遞迴 f
PHP判斷指定時間段的2個方法
有時我們需要在一天中的某個時間段進行某項任務,或者在一天中的不同小時裡進行不同的任務,使用PHP如何實現呢,下面的兩個例子都可以解決這個問題 一、包含小時和分鐘的判斷date_default_timezone_set("Asia/Shanghai"); $time = intval (date(
spring啟動載入程式的幾種方法
轉載自:http://blog.csdn.net/lovesomnus/article/details/50158761 關於在spring 容器初始化 bean 和銷燬前所做的操作定義方式有三種: [java] view plain copy p
ajax呼叫一般處理程式的多個方法
js: $.ajax({ url: "ashx/Demo.ashx/", type: "Get", dataType: "json", data: "action=GetData
一、磁碟載入程式(2)
一、簡單的磁碟載入程式 簡單的說明:計算機加電後,BIOS檢查硬體等等,BIOS呼叫19號中斷載入磁碟載入程式。 以下用NASM編寫的一個簡單的磁碟載入程式。 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
如何在OD載入程式遇到入口點之前執行程式碼之二:靜態裝載DLL
編譯器:VS2010 需要的知識:DLL的編寫和使用 1.dllmain.cpp // dllmain.cpp : Defines the entry point for the DLL application. #include "stdafx.h" BOOL API
Asp.net從後臺彈出訊息框的2個方法
引:以前做專案中從後臺彈出的訊息框都是整合在專案框架中的,脫離了框架,寫的2個從後臺彈出訊息框的方法: 1.引入Winform 的dll彈出訊息框 a.在專案的“引用”中“新增引用”,選擇 “System。Windows.Forms.dll”; b.後臺匯入
Python3,通過re模組中的sub()和findall()2個方法提升爬蟲提取資料的效率
直接上Demo: 測試資料 - HTML: '''<div id=\"songs-list\">" "<h2 class=\"title\">各種汽車</h2>" "<p class=\"introduction\"&
poj 2104 <排序分塊,區間第k大>/<第一次用主席樹>2個方法+整體二分
給一個序列,查詢區間第k大,用分塊來實現 首先將區間分為每塊block大小,也就有num=n/block塊,if(n%block==0)num++. 然後每次在定義每個塊其左右邊界的時候進行排序,那麼就得到一個每塊內排好序的塊。 查詢的時候因為是查詢區間第k大,那麼我們
總結Qt5呼叫windows本地程式的三個方法以及異同
一、說明: windows版本:win10 Qt版本:Qt5.9.3 以呼叫windows自帶的畫圖程式為例 二、呼叫方法及異同 1、system()函式 system("mspain
載入相關的2個類庫
2個類庫都是用來載入的,功能都差不多。 一個是BulkLoader,一個老外寫的loader類,是一個不錯且使用簡單的開源載入類,它能夠對多個不同的外部檔案進行佇列下載。在嘗試載入多個檔案時候只要使用 add + 檔案地址,在載入結束後使用 “get檔案型別”+檔案地址或載
微信小程式上拉重新整理和下拉載入2種方法實現
微信小程式上拉重新整理和下拉載入2種方法實現,onPullDownRefresh,scroll-view使用 一、XXX.json開啟下拉重新整理 { "enablePullDownRefresh": true } 二、XXX.js onP
TF:Tensorflor之session會話的使用,定義兩個矩陣,兩種方法輸出2個矩陣相乘的結果—Jason niu
pri session print int blog spa run result orf import tensorflow as tf matrix1 = tf.constant([[3, 20]]) matrix2 = tf.constant([[6],
01_5_SERVLET為什麽有2個init方法
blog init方法 pos enume 初始化 div 不為 clas exc 01_5_SERVLET為什麽有2個init方法 1. 在web.xml配置初始化參數 <servlet> <servlet-name>TestInitSe
關於sql server2012備份還原出現的2個介質問題的解決方法?
數據庫 還原備份 sql server2012 幾年前用ZBLOG的ASP+ACCESS建立了一個教育主題小博客,幾年下來,發現速度越來越慢了,因此想換個數據庫,研究了個把星期,終於將ACCESS數據庫換成了SQL SERVER2012版本,速度是快多了,但是我現在很想備份還原一下數據庫,因為數據