08 2021 档案
摘要:#include<stdio.h> #include<Windows.h> __declspec(naked) DWORD getKernel32() { __asm { mov eax,fs:[30h] mov eax,[eax+0ch] mov eax,[eax+14h] mov eax,[ea
阅读全文
摘要:#include<stdio.h> #include<Windows.h> __declspec(naked) DWORD getKernel32() { __asm { mov eax,fs:[30h] mov eax,[eax+0ch] mov eax,[eax+14h] mov eax,[ea
阅读全文
摘要:1 typedef struct _PEB_LDR_DATA 2 { 3 ULONG Length; // +0x00 4 BOOLEAN Initialized; // +0x04 5 PVOID SsHandle; // +0x08 6 LIST_ENTRY InLoadOrderModuleL
阅读全文
摘要:typedef struct _PEB { UCHAR InheritedAddressSpace; // 00h UCHAR ReadImageFileExecOptions; // 01h UCHAR BeingDebugged; // 02h 这里QAQ UCHAR Spare; // 03h
阅读全文
摘要:FS寄存器指向当前活动线程的TEB结构(线程结构) 线程TEB结构体中,每个TEB+0x30(fs:[0x30])中都指向同一个地址(TEB.ProcessEnvironmentBlock)So。我们可以用fs:[0x30]来访问PEB的结构体地址 kd> dt _tebnt!_TEB +0x000
阅读全文
摘要:在使用c#时候,很多人会有一个小疑问:为啥一个类型会有两种写法,比如string和String, object和Object...而且两种写法等价?主要原因是小写的是基元类型(编译器直接支持的数据类型,比如C#编译器),而大写的是FCL(Framework Class Library)中定义的类型(
阅读全文
摘要:1.Console.WriteLine("姓名:{0},年龄:{1}",name,age); 2.Console.WriteLine($"姓名:{name},年龄:{age}"); //+拼接 3.Console.WriteLine("姓名"+name+"年龄"+age); 4.占位符 Consol
阅读全文
摘要:// Dll1.cpp : 定义 DLL 的导出函数。 // #include "pch.h" #include "framework.h" #include "Dll1.h" #pragma comment(linker,"/EXPORT:Add=Dll2.Add") // Dll2.cpp :
阅读全文
摘要:原因: Dll1.lib写成了Dll1.h 说明:隐式加载dll会在导入表中出现dll 此时如果删除DLL 就会报错
阅读全文
摘要:Source.def LIBRARY exportDll2 EXPORTS Add exportDll2.h // The following ifdef block is the standard way of creating macros which make exporting // fro
阅读全文
摘要:这里有个疑问,VS2017生成dll时为何会同时生成一个lib文件? 静态库生成lib,动态库也生成lib。 动态库生成的那个lib一般管它叫"导入库",这样的lib在大多数情况下要比静态库的lib小,里面不包含涉及到的函数的具体代码,里面只包含"这个函数在什么dll里面叫什么名字"这样的信息。即函
阅读全文
摘要:1.隐式链接(需要.dll,.lib,.h) 隐式链接就是在程序开始执行时就将DLL文件加载到内存当中,而显示链接,是实时加载,程序需要的时候加载,不需要的时候,卸载。 Windows程序bin目录包含了可执行文件(.exe) 和 动态链接库(.dlll), lib目录包含了静态库。 只要没有在程序
阅读全文
摘要:#include<stdio.h> //引用库的时候必须包含两个文件 #include"../exportDll2/exportDll2.h"//1.头文件 int main() { int result; result = Add(1, 2); printf("%d", result); retu
阅读全文
摘要:retn 4 是个函数返回指令。 以前一直纠结这个retn的寄存器操作顺序,手头正好在调试,详细跟了一下,豁然开朗,特分享。先假设个环境:retn 4未执行时,ESP=0013feb8;EIP=5d1d8b97;而[0013feb8]=7c974a19 执行retn 4之后: 首先EIP=[0013
阅读全文
摘要:https://blog.csdn.net/liny000/article/details/81260385
阅读全文
摘要:#include <wdm.h> NTSTATUS DriverUnload(PDRIVER_OBJECT driver) { UNREFERENCED_PARAMETER(driver); DbgPrint("Unload driver"); return STATUS_SUCCESS; } NT
阅读全文
摘要:// driver.c #include <ntddk.h> void DriverUnload(PDRIVER_OBJECT pDriverObject); NTSTATUS DriverEntry(PDRIVER_OBJECT pDriverObject, PUNICODE_STRING pRe
阅读全文
摘要://测试代码: #include <ntddk.h> VOID DriverUnload(PDRIVER_OBJECT driver) { DbgPrint(("Uninstall Driver Sucess!")); } NTSTATUS DriverEntry(PDRIVER_OBJECT dr
阅读全文
摘要:[File] => [Symbol File Path] 1.初始值:srv* 2.修改为:SRV*c:\mysymbol* http://msdl.microsoft.com/download/symbols 未成功 https://blog.csdn.net/lxc1014/article/de
阅读全文
摘要:#include <ntddk.h> #include <wdf.h> VOID EvtDriverUnload(IN WDFDRIVER driver) { KdPrint(("驱动卸载\n")); } NTSTATUS DriverEntry(IN PDRIVER_OBJECT driver_o
阅读全文
摘要:使用DebugView打印内核调试信息是开发驱动的非常重要的手段,但DebugView在VISTA/WINDOWS 7下却无法获取内核的调试日志,修改方法是: HKLM/SYSTEM/CurrentControlSet/Control/Session Manager,打开或者创建子项Debug Pr
阅读全文
摘要:1.您需要将WDK标头路径添加到vcxproj包含目录:vcxproj属性 – > C/C++ – >一般 – >附加包含目录 C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\km\ P.S.:确保将SDK 10与WDK 10一
阅读全文
摘要:Win32程序的开头都可看到: #include <windows.h> Windows.h是一个最重要的头文件,它包含了其他Windows头文件,这些头文件的某些也包含了其他头文件。这些头文件中最重要的和最基本的是: Windef.h 基本数据类型定义。 Winnt.h 支持Unicode的类型定
阅读全文
摘要:stdafx.h在C++中起到的作用是头文件预编译,即把C++工程中使用的MFC头文件预先编译,以后该工程编译时,直接使用预编译的结果,以加快编译速度。C++编译器通过一个头文件stdafx.h来使用预编译头文件。stdafx.h并不是标准C++头文件,与项目的源代码文件存放在同一个文件文件夹下,通
阅读全文

浙公网安备 33010602011771号