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