Time of Update: 2018-12-07
先羅嗦兩句。我前幾天剛開始學破解。論壇裡優秀的文章很多,給了我很大的協助。可我在用OD時,卻不會用命令列在函數上下斷點。雖然OD命令列支援模糊尋找,可還是感覺不太方便,所以就自己把OD支援的命令整理了一下,發上來,喜歡對大家的學習有所協助。 ?/CALC 運算式 計算給定運算式. 注意,參與計算的數值預設為16進位 A 地址運算式,字串 在指定地址進行彙編。這個命令我不理解用法,請自行研究 AC 分析代碼
Time of Update: 2018-12-07
看上去很像,但又有一些區別,前幾天有人問我,當時有點糊塗,這裡總結一下。全域變數取地址用mov offset例如:mov dword ptr [ebp-14h],offset ConsoleTest+0x94620(00494620)局部變數取地址用lea例如:0042fb24 8d45f8 lea eax,[ebp-8] 0042fb27 8945ec mov dword ptr
Time of Update: 2018-12-07
作業系統本身並不知道有沒有鍵盤,他的win32子系統csrss.exe會在不停的在一個函數win32k!RawInputThread裡尋找\Device\KeyboardClass0或\Device\KeyboardClass1(數字依次累加)。那麼KeyboardClass0、KeyboardClass1等又是怎麼來的呢?kbdclass是個upper
Time of Update: 2018-12-07
MmGetSystemAddressForMdlSafe和MmGetSystemAddressForMdl其實都是宏,都直接或間接的調用了MmMapLockedPagesSpecifyCache核心功能。MmMapLockedPagesSpecifyCache的聲明如下:NTKERNELAPI PVOID MmMapLockedPagesSpecifyCache( IN PMDL MemoryDescriptorList, IN
Time of Update: 2018-12-07
NTSTATUS CompleteRoutine( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID Context ){ PIO_STACK_LOCATION IrpSp; PKEYBOARD_INPUT_DATA KeyData; int numKeys, i; IrpSp =
Time of Update: 2018-12-07
Windows快速顯示案頭快速鍵:win+DVC跳到定義:F12VC轉到彙編:Ctrl+F11...F2:設定斷點,只要在游標定位的位置(中灰色條)按F2鍵即可,再按一次F2鍵則會刪除斷點。(相當於 SoftICE 中的 F9)F8:單步步過。每按一次這個鍵執行一條反組譯碼視窗中的一條指令,遇到 CALL 等子程式不進入其代碼。(相當於 SoftICE 中的 F10)F7:單步步入。功能同單步步過(F8)類似,區別是遇到 CALL 等子程式時會進入其中,進入後首先會停留在子程式的第一條指令上。(
Time of Update: 2018-12-07
MmInitializeMemoryManager函數調用了BIOS的15H中斷(AX=E820h),此功能是枚舉出系統的擴充記憶體。調用MmGetAddressablePageCountIncludingHoles,返回實體記憶體的頁面數,即實體記憶體大小/頁面大小。調用MmFindLocationForPageLookupTable,返回一個數組地址,來存放PageLookupTable。這個地址是實體記憶體地址,它位於可用實體記憶體的最後一段。調用MmInitPageLookupTable
Time of Update: 2018-12-07
1.Flashgothttp://addons.mozine.cn/firefox/72.Foxmarks Bookmark Synchronizer(書籤同步)https://addons.mozilla.org/en-US/firefox/addon/24103.ScribeFire(用來編寫離線部落格)https://addons.mozilla.org/en-US/firefox/addon/17304.Quick Locale
Time of Update: 2018-12-07
控制項編程一般指的是在對話方塊中,程式員對控制項的控制。WTL提供了幾種靈活的做法。串連一個CWindow對象這個方法就是用GetDlgItem得到控制項的視窗控制代碼,然後將這個控制代碼通過Attach到控制項的類中,如CEdit,CButton等。包容器視窗(CContainedWindow)這個方法其實是子例化的簡單版本。如果子例化,必須編寫一個CWindow的子類。但這種方法,不用編寫子類就可以達到修改訊息映射的目的。子類化(Subclassing)此方法和MFC子例化方法雷同對話方塊資
Time of Update: 2018-12-07
在vs2005中我們可以很方便的使用“Properties.Settings.Default.anjouConnectionString”這樣的形式來獲得資料庫連接字串,但是資料庫連接字串在開發時和發布時往往是不一樣的,有時甚至需要在運行時動態修改資料庫連接字串的部分內容,例如:資料庫檔案的路徑和密碼等。運行時動態修改連接字串的方法如下: 1. 在vs2005【解決方案管理器】中雙擊【properties】; 2. 選擇【設定】tab page, 單擊【查看代碼】; 3. 在 Settings
Time of Update: 2018-12-07
不管是USB或者8042或者虛擬Keyboard/Mouse,裝置棧最上層都是Kbdclass或者Mouclass,作業系統會專門有個現成不停的向裝置棧發送Read IRP。kd> !devstack 80d8eaa0 !DevObj !DrvObj !DevExt ObjectName > 80d8eaa0 \Driver\Kbdclass 80d8eb58 KeyboardClass0 80d8ec88
Time of Update: 2018-12-07
pjf(jfpan20000@sina.com) 有來信詢問進程結束的有關問題,下面就這個問題簡單討論一下(下面的討論基於2000,其他NT系統也類似)。 首先看看一個應用程式想要強制結束另一個進程所要做的事:首先獲得目標的進程ID,接著利用OpenProcess擷取進程控制代碼(確保足夠許可權),最後將控制代碼傳給TerminateProcess了結那個進程。
Time of Update: 2018-12-07
Message Crackers是Platform SDK提供的一組封裝訊息映射的宏,使用的時候需要包含標頭檔windowsx.h。傳統訊息映射映射使用一個大的的switch...case組合,這樣會代碼很臃腫。MFC的架構很好的解決了這個問題,但是有時候開發我們想只用純SDK開發,這時候使用Message Crackers提供的宏則是一個不錯的選擇。訊息映射用HANDLE_MSG宏LRESULT CALLBACK MainWndProc (HWND hwnd, UINT msg,
Time of Update: 2018-12-07
PDE:Page Directory EntryPTE:Page Table Entry(記錄著虛擬位址的真實物理地址) 用KernelDebug舉例說明: kd> !pte 80572000 VA 80572000PDE at C0300804 PTE at C02015C8contains 0003D163 contains 00572121pfn 3d -G-DA--KWEV pfn 572
Time of Update: 2018-12-07
在使用vs2005開發3層結構(資料層、邏輯層和展示層)的應用程式時,資料層和展示層通常都又自己的設定檔;部署後的程式又只有展示層的設定檔(app.config或web.conifg)。那麼如何部署資料層和邏輯層的設定檔(app.config)呢? 其實,很簡單只好把資料層或邏輯層的設定檔“合并”到展示層的設定檔(app.config或web.conifg)中即可。例如:資料層的設定檔(app.config)如下:<?xml version="1.0" encoding="utf-8" ?
Time of Update: 2018-12-07
下面的例子示範了用模板繼承,可以避免使用virtual函數卻可以同樣達到override的效果。不需要vtable。但是也有缺點:不能再被其他類繼承來實現override。#include <iostream>using namespace std;template <typename T>class Base {public:void fun() {cout << "Base::fun" << endl;}void doSomething() {
Time of Update: 2018-12-07
WinForm程式啟動時不顯示主表單的實現方法,試來試去還是這個方法比較好: 1 using System; 2 using System.Collections.Generic; 3 using System.Windows.Forms; 4 5 namespace winAppTest1 6 { 7 static class Program 8 { 9 /// <summary>10 /// The main entry poin
Time of Update: 2018-12-07
INTEL的IDE控制器串連在PCI匯流排上,其驅動是INTELIED.sys(intel提供)+PCIIEDX.sys(微軟提供),堆棧關係如下: !DevObj !DrvObj !DevExt ObjectName > 80e9b030 \Driver\IntelIde 80e9b0e8 PciIde0 80e931d0 \Driver\PCI 80e93288 NTPNP_PCI0002
Time of Update: 2018-12-07
獲得 Web Service 方法的描述資訊: 1 public partial class Service : System.Web.Services.WebService 2 { 3 public Service(){} 4 5 [WebMethod(Description = "第一個 Web 方法。")] 6 public string HelloWorld() 7 { 8 return "Hello World"; 9 }10
Time of Update: 2018-12-07
!dh 命令kd> !dh 7c800000File Type: DLL FILE HEADER VALUES 14C machine (i386) 4 number of sections 4121457C time date stamp Tue Aug 17 07:38:36 2004 0 file pointer to symbol table 0 number of symbols E0