原创 三、字符串操作

1、UNICODE_STRING ​ windows內核編碼字符集採用unicode字符集,字符串處理使用UNICODE_STRING,是一個結構體,定義如下: typedef struct _UNICODE_STRING {

原创 四、文件 註冊表 多線程

文件 註冊表 多線程 1、文件操作,內核模式下打開、創建、拷貝文件 #include <ntddk.h> VOID DriverUnload(PDRIVER_OBJECT pDriverObject) { KdPrint((

原创 DebugView使用說明

簡介 DebugView是一個系統調試信息捕獲工具,如果在程序中使用用戶模式使用OutputDebugString,或者內核模式使用 Out_Debug_String,DbgPrint ,_Debug_Printf_Service

原创 Win API使用記錄--RtlCopyMemory與RtlMoveMemory區別

1、RtlCopyMemory與RtlMoveMemory       這兩個函數是內核函數api,對應Win32 API是CopyMemory和MoveMemory。都能實現內存塊的複製,兩者的區別在於CopyMemory是非重疊內存區

原创 二、內核編程環境

1、內核編程的環境 ​ 32位系統的進程可訪問的內存大小是4G,低位2G是用戶空間,高位2G是內核空間。應用程序運行在用戶態,進程空間是相互獨立的,不必擔心進程間訪問同一地址空間出錯,但是如果如果內核空間獲取的信息肯定是一樣的。

原创 windbg調試方法以及應用與驅動交互

windbg調試方法 1、網絡連接 ​ 兩臺pc通過網絡連接,我們把驅動測試的主機稱爲目的機,把運行windbg進行遠程調試的主機稱爲host主機,首先設置目的機與host主機連接的ip端口以及key信息,已管理員權限運行CMD,

原创 管道通信相關知識總結

管道 概念 管道是進程間通信使用的一種共享內存的方式,創建管道的進程稱爲管道服務器,連接管道的進程成爲管道客戶端。進程間通過管道方式,一個進程往管道寫入數據,另一個進程從管道取數據,類似socket通信從buf緩衝區讀寫數據,管道

原创 window內核驅動開發學習--應用程序與驅動程序交互(緩衝模式)

新建exe控制檯程序 #include "pch.h" #include <windows.h> #include <iostream> #include <WinIoCtl.h> #include "ctl_code.h" usi

原创 VS c++編譯過程中遇到的問題及解決總結[更新中]

1、問題:LNK1104:無法打開lib文件      LINK : fatal error LNK1104: 無法打開文件“libboost_date_time-vc141-mt-gd-x64-1_71.lib”      解決:[項目

原创 一、基於單文檔 添加動態菜單

1、動態菜單的ID管理在資源管理裏面的string stable裏,添加要增加菜單的id,同時在Resource.h中添加相應的id 2、增加消息相應函數 通過類嚮導:鼠標右擊-》OnRButtonDown() 編輯相應代碼: void

原创 MFC函數啓動執行過程

瞭解MFC程序的啓動過程,對於初學者來講,了學習MFC很有幫助;對於不常用VC的人來說,過一段時間就會忘記。還是來記下來,方便以後查閱。 1、創建Application object對象theApp      程序一開始生產一個(且

原创 win7和win10下的dll遠程注入代碼和inline hook 進程隱藏

win7和win10遠程注入dll的代碼不通用,歸納代碼如下 判斷當前系統類型: DWORD checkOS() { OSVERSIONINFO os_version; os_version.dwOSVersionInfoSize

原创 libtorrent.lib靜態編譯以及創建client測試(全)

最近做一個BT下載的項目,使用libtorrent.dll動態鏈接依賴於實際環境,因此需要編譯一個lib,項目中使用靜態鏈接,運行庫 MTD 環境:win10+vs2017+boost1.7.1+libtorrent1.2.1 1、首先下

原创 libtorrent實現bt客戶端程序

以下代碼利用libtorrent實現了BT客戶端程序,需要包含boost庫和libtorrent庫 具體使用如下: ltclient.exe e:\5DE0513D406C65FEA074E39CD4B98A7F16816C86.tor

原创 Libtorrent客戶端代碼解析(client_test)

/* Copyright (c) 2003-2017, Arvid Norberg All rights reserved. Redistribution and use in source and binary forms, wi