Windows无法安装到GPT分区形式磁盘,如何处理 很多时候,在安装win7系统的时候会出现这样的提示Windows无法安装到GPT分区形式磁盘,那么面对这样的情况应该如何处理呢?今天小编为大家简单的介绍一下。方法/步骤 首先我们进入系统安装界面的时候,我们按住SHIFT+F10,调出cmd。 然后在命令行中,我们输入diskpart,点击回车,如图示。 然后我们再次输入list disk,查看分区情况,如...
虚拟机提示:无法打开内核设备“\\.\Global\vmx86”: 系统找不到指定的文件 Win 10 vmware12 无法打开内核设备“\.\Global\vmx86”: 系统找不到指定的文件。你想要在安装 VMware Workstation 前重启吗?打开vmware12后出现内核错误,查了一下,在自己的win10下面应该是如下的解决方法:找到c:\windows\system32\cmd.exe 文件,右击选择以管理员身份运行 输入以下的命令并回车 net sta...
Vmware虚拟机设置静态IP地址 一、安装好虚拟后在菜单栏选择编辑→ 虚拟网络编辑器,打开虚拟网络编辑器对话框,选择Vmnet8 Net网络连接方式,随意设置子网IP,点击NAT设置页面,查看子网掩码和网关,后面修改静态IP会用到。 二、检查宿主机VM8 网卡设置,打开网络和共享中心→ 更改适配器设置→,在VMware Network Adapter VMnet8上单击右键,选择属性按钮打开属性对话框...
3.1进程的创建过程 打开进程并且结束 # include <Windows.h># include <stdio.h># include <TlHelp32.h>int main(){ //定义需要的结构体 STARTUPINFO si = { 0 }; si.cb = sizeof(STARTUPINFO); PROCESS_INFORMATION pi =...
内存分配详解 malloc, new, HeapAlloc, VirtualAlloc,GlobalAlloc 很多地方都会使用内存,内存使用过程中操作不当就容易崩溃,无法运行程序,上网Google学习一下,了解整理下他们之间的区别以及使用 ,获益匪浅0x01 各自的定义和理解 (1)先看GlobalAlloc() GlobalAlloc()主要用于Win32应用程序实现从全局堆中分配出内存供2017-03-05程序使用,是16位WINDOWS程序使用的API,对应于系统的全局栈,返回...
国内首部大型C++网络游戏开发教程624+课时,MINI快跑、水果忍者、DirectX技术、传奇游戏3 2014年3月 国内首部大型C++网络游戏开发教程624+课时,MINI快跑、水果忍者、DirectX技术、传奇游戏3 500联系方式 见主页
vt驱动入门教程22课 2019年1月 硬件虚拟化 1.内核VT虚拟化技术简介.zip2.Win10+VS2017+WDK10的安装.zip3.Win10内核双机调试环境搭建.zip4.内核程序开发基础入门.zip5.开启VMware虚拟化与VT基本原理.zip6.侵染多核CPU的DPC回调安装.zip7.检测CPU对VT虚拟化的支持情况.zip8.初始化VMX与VMCS的非分页内存.zip9.内存对齐与VMCS第1...
驱动开发高级班46课 2018年11月 老 内核教程 高级班 内核知识大整理 46课 300联系方式 见主页深入理解windows 操作系统1第一课 驱动开发进阶篇介绍.mp423:392第二课 常用工具介绍.mp416:373第三课 实现驱动实现最早启动21:514第四课 程序安装实现驱动最早启动19:005第五课 将驱动打包到exe安装包里实现17:036第六课 驱动程序重新初始化(共2种)15...
m_hWnd 和 this指针 m_hWnd ①m_hWnd这个成员变量,最早是定义在类CWnd中,而且是类CWnd的第一个数据成员, 先看一下MSDN的解析: The handle of the Windows window attached to this CWnd. The m_hWnd data member is a publi...
系统回调介绍 这个BugCheckCallback每当系统发出错误检查时,都会执行例程。这个KBUGCHECK_次要转储数据结构描述了一段驱动程序提供的数据,这些数据由KbCallbackSecdaryDumpData例程写入崩溃转储文件。使用 设置 PspNotifyEnableMask 为 0 CreateProcess CreateThread LoadImage 回调函数都不会起作用...
MYSQL+PHP的网站搭建 实验目的:掌握MYSQL+PHP的网站的搭建过程实验准备:一台Server,一台Client实验前的准备:搭建一台web服务器(过程省略)实验步骤:步骤一1.安装PHP数据包解压php-5.1.4-Win32这个解压包,把它解压到自己的文件夹内,然后修改php的解压后的文件夹的包名,把它这个包名修改为php----->然后设置这个解压后的php文件夹的属性信息,给本地的use...
获取cpuid 硬件信息 // 获取cpu序列号.cpp : 定义控制台应用程序的入口点。#include "stdafx.h"#include <iostream>#include <string>#include <windows.h>using namespace std;#define AFX_14BEC153_17B9_47BE_845F_71A27BF26B59_...
vt虚拟化入门 VMX的目的是简化虚拟化开发以及提升虚拟化应用的执行效率,跟传统的操作系统以及 驱动、进程没有关系,跟所谓Hook更没关系。你非要把这种“陷入/模拟”的执行流程 叫做一种hook也无不可。 虚拟化的本质是要获取全部硬件的控制权,拦截在硬件和传统操作系统之间。在传统操作系统 看来跟执行在真正的硬件上没有差别(等价性原则)。 虽然VMX指令一般执行在ring...
[虚拟机保护] [原创]关于滴水的VT调试器 关于滴水的VT调试器 by 海风月影论坛上今天吵的比较火热,主要是关于滴水的VT调试器,很多人不了解这个东西,我对Intel的VT技术略有了解,所以我来简单的介绍一下。第一,什么是VT技术VT是Intel的硬件虚拟化技术,说到VT,就不得不提虚拟机(例如VMWare)。在硬件还没有支持VT前,系统级的虚拟机其实是很难做的,要考虑的东西非常多(主要是效率问题,因为用软件模拟东西资源开销比较大)。VT...
boos 刷新时间 大集合 尸王 4 3点50 4小时一次沃玛教主5 触龙神5 点4点504小时一次虹膜教主 3 2点50 4小时一次未知全部集合魔龙教主 1:45,14:00,16:00,18:00,22:15,24:00魔龙血域 一共3个爱吃鸡魔人石原 大祭司 6小时刷一次 爆 赤月12 6点整 一天4个一层血手 白日门海岸 最左下...
BOSS刷新机制调整细则详解 一、背景设定 面对战斗力日益爆表的玛法勇士,各大BOSS不禁陷入了恐慌,纷纷在自己的老巢中派遣替身来迷惑冒险者。 替身与BOSS长相完全相同,甚至实力也不相上下。前往讨伐的勇士们除了必要的战力外,还需要一点点的运气,才能击败那些龟缩在迷宫深处的真正BOSS。 二、调整规则 1、当游戏版本达到特定阶段,该版本的BO...
vt新手学习之ept学习 dirbase的物理地址 处理 第一次取物理地址!低十二位 用零填充db4c7000第二次取物理地址!bd4c8867转换成二进制10111101010011001000100001100111 低十二位不零10111101010011001000 000000000000==0xbd4c8000pde 为1所以1*8==80xbd4c800...
如何利用C语言来获取当地时间和UTC时间? (设当地时间是北京时间) #include <stdio.h> #include <time.h> int main(){ time_t t = time(NULL); tm *tp = localtime(&t); // 北京时间 printf("%d/%d/%d", tp->tm_mon+1, tp->tm_...
vt新手学习第一课 虚拟出多个cpu 运行多个操作系统每一个操作系统都运行在一个虚拟的CPU或者是虚拟主机上而超线程技术只是单CPU模拟双CPU来平衡程序运行性能,这两个模拟出来的CPU是不能分离的,只能协同工作。vmm虚拟机监视器 提供这个能力操作系统运行在虚拟框架中 操作系统cpu执行的指令被我们截获 cpu实现函数调用功能 中断进行控制 屏幕键盘硬件断点 用int实现的 操作系统相当于一个虚...
NewBluePill源码学习 NewBluePill的源码也看的差不多了,一直说等有时间了再写学习的一些心得,拖来拖去弄到现在了,时间不是等来的,慢慢开始吧。0x00 初识硬件虚拟化硬件虚拟化对大数人来讲还是比较陌生。什么是硬件虚拟化?因为早期的虚拟机都是进程级虚拟机,也就是作为已有操作系统的一个进程,完全通过软件的手段来模拟硬件,软件再翻译内存地址的方法实现物理机器的模拟,这样虚拟效率较低,资源利用率低。之后...
遍历windows驱动遍历对象目录的对象 驱动都存在\\Driver或者\\FileSystem目录对象里我们只需要遍历这两个目录就可以遍历windows所有驱动知识点\\Driver\\FileSystem(dt_OBJECT_DIRECOTRY)都属于ObpDirectoryObjectType(window内核全局变量)对象其他对象全局变量可以参考作者:潘爱民书名:wind...
通过驱动名获取驱动对象 这里需要用到一个未公开的(undocumented)APIObReferenceObjectByName函数可以通过对象名字得到包括设备对象在内的各种内核对象的指针,比如内核事件,互斥体对象等.他会增加内核对象的引用计数,使用完内核对象后要用ObDereferenceObject内核函数将引用计数减1.定义参考:NTKERNELAPI NTSTATUS ObReferenceObj...
LycorisGuard Windows xp下IDT Hook和GDT的学习 LycorisGuardWindows xp下IDT Hook和GDT的学习一、前言 对于IDT第一次的认知是int 2e ,在系统调用的时候原来R3进入R0的方式就是通过int 2e自陷进入内核,然后进入KiSystemService函数,在根据系统服务调用号调用系统服务函数。而2e就是IDT(系统中断描述符表)中的索引位2e的项,而KiSystemService就是该...
IDT hook KiTrap03 关于idt的基本知识就不进行赘述了,先看一个例子0x1000: mov eax,00x1006: Int 3 ;------->进入内核,找到中断处理例程KiTrap030x1007: Mov eax,1这段代码执行,触发3号中断,然后开始执行KiTrap03例程,要知道,执行完中断以后还是要回到原来的程序处继续执行的,也就是...
IDT系统中断描述表以及绕过Xurtr检测的HOOK姿势 什么是中断?指当出现需要时,CPU暂时停止当前程序的执行转而执行处理新情况的程序和执行过程。即在程序运行过程中,系统出现了一个必须由CPU立即处理的情况,此时,CPU暂时中止程序的执行转而处理这个新的情况的过程就叫做中断。比如:除零(0号中断)、断点(3号中断)、系统调用(2e号中断)、以及异常处理等都会引发中断,所以自然需要相应的中断例程去进行处理。这样操作系统就会用数据结构来...
解决Themida加壳程序在VMware虚拟机无法运行问题_HS_TMD 开游戏 标 题: 解决Themida加壳程序在VMware虚拟机无法运行问题作 者: Y4ng时 间: 2012-08-23 12:32:13 星期四链 接: http://www.cnblogs.com/Y4ng/archive/2012/08/23/tmd_vmware_hs_TheMida.html 在调试韩国某游戏HS保护的时候,由于主程序被加了TMD(TheMida)壳,根本就没...
c++ system()和WinExec()的区别执行文件 区别1.system是c库的函数WinExec是windows函数区别2.system有一个参数,是命令行Winexec有两个参数,一个是命令行,一个是窗口显示区别3.虽然两个都是命令行,但有很大的区别Winexec的命令行参数一般是一个外部程序的路径加给这个程序的参数,如Winexec("D:\otepad.exe 1.txt",WM_SHOWWIN...
下载者001 // 下载者001.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <windows.h>#pragma comment(lib,"Urlmon.lib")int _tmain(int argc, _TCHAR* argv[]){ HRESULT urldown; urldown = URLDownloadToFi...
写日志函数c盘WriteLog void WriteLog(char * szLog){ SYSTEMTIME st; GetLocalTime(&st); FILE *fp; fp = fopen("c:\\log.txt", "at"); fprintf(fp, "MyLogInfo: %d:%d:%d:%d ", st.wHour, st.wMinute, st.wSecond, st.wMillis...
C4996:#("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name:") 在使用visual studio 2015 写程序时 ,出现了(“The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name:”) 的报错打开你创建的项目 菜单栏下“项目” 然后点击“ 属性/(*属性)”*“是你自己创建项目的名称接下来我们会看到然后再左侧找到 ”...
创建服务开机自启动 // 创建服务自启动.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <Windows.h>#include <stdio.h> #pragma comment ( lib, "Advapi32.lib" )void WINAPI ServiceMain(int argc, char** argv);...
注册表操作开机启动R0自启动 void C注册表操作_自启动runDlg::OnBnClickedButton2(){ HKEY hRoot = HKEY_LOCAL_MACHINE; wchar_t *szSubKey = L"Software\\Microsoft\\Windows\\CurrentVersion\\Run"; HKEY hKey;//打开指定子键 DWORD dwDisposition = R...
注册表R0自启动 开机启动L"Software\\Microsoft\\Windows\\CurrentVersion\\Run" void C注册表操作_自启动runDlg::OnBnClickedButton2(){ HKEY hRoot = HKEY_LOCAL_MACHINE; wchar_t *szSubKey = L"Software\\Microsoft\\Windows\\CurrentVersion\\Run"; HKEY hKey;//打开指定子键 DWORD dwDisposition = R...
TCP服务器+客户端_全部集合 #include<winsock2.h>#include<stdio.h>#include<windows.h>#pragma comment(lib,"WS2_32.lib")int main(){ WSADATA wsadata; WORD w=MAKEWORD(2,0); char sztext[60]="大赛 欢迎你 呵呵顶服务器\r\...
汇编插入打印函数 __asm {pushad pushfd call ceshi11 popfd popad }ULONG ceshi11(){ KdPrint(("进入退出线程111111122222222222")); return 0;}
ring0下的 fs:[124] KPCR结构体 反汇编内核函数的时候经常会看到mov eax, fs:[124].一直没弄清楚fs寄存器在ring0存放的是什么。今天查了下资料。 fs寄存器在Ring0中指向一个称为KPCR的数据结构,即FS段的起点与KPCR结构对齐。而在Ring0中fs寄存器一般为0x30。 这样看KPCR的数据结构:nt!_KPCR +0x000 NtTib : _N...
windows下的用户态调试的底层与上层实现 调试器通过CreateProcess传入带有DEBUG_PROCESS和DEBUG_ONLY_THIS_PROCESS的dwCreationFlags创建被调试进程。这种情况下,进程创建的早期(执行NtCreateProcess或NtCreateProcessEx之前),调用DbgUiConnectToDbg()使调用线程和调试子系统建立连接。DbgUiConnectToDbg()内部调用ZwCr...
windows下的用户态调试的底层与上层实现 调试器通过CreateProcess传入带有DEBUG_PROCESS和DEBUG_ONLY_THIS_PROCESS的dwCreationFlags创建被调试进程。这种情况下,进程创建的早期(执行NtCreateProcess或NtCreateProcessEx之前),调用DbgUiConnectToDbg()使调用线程和调试子系统建立连接。DbgUiConnectToDbg()内部调用ZwCr...
IAT表的详解(转) IAT表详解IAT的全称是Import Address Table。IAT表是执行程序或者dll为了实现动态加载和重定位函数地址,用到的一个导入函数地址表。这里面记录了每个导入函数的名字和所在的dll名称,在pe加载的时候系统会加载这些dll到用户的地址空间然后把函数地址覆盖这个表里的函数地址,然后重构所有用到这个表的代码,让其调用直接指向实际函数地址(PE是否覆盖不确定,驱动会这么做),...
PE格式第七讲,重定位表 作者:IBinary出处:http://www.cnblogs.com/iBinary/版权所有,欢迎保留原文链接进行转载:)一丶何为重定位(注意,不是重定位表格)首先,我们先看一段代码,比如调用Printf函数,使用OD查看.那么大家有没有想过这么一个问题,函数的字符串偏移是00407030位置,函数Call的地址是00401020的位置但是如果模块首地址申请不到了,变为...
PE结构之重定位表 什么是重定位: 重定位就是你本来这个程序理论上要占据这个地址,但是由于某种原因,这个地址现在不能让你占用,你必须转移到别的地址,这就需要基址重定位。你可能会问,不是说过每个进程都有自己独立的虚拟地址空间吗?既然都是自己的,怎么会被占据呢?对于EXE应用程序来说,是这样的。但是动态链接库就不一样了,我们说过动态链接库都是寄居在别的应用程序的空间的,所以出现要载入的基地址被应用程序占据了或者被其它...
梦无极_ssdt_hook_190_保护记事本_可用_ #include "ntddk.h"#pragma pack(1)typedef struct ServiceDescriptorEntry { unsigned int *ServiceTableBase; unsigned int *ServiceCounterTableBase; //仅适用于checked build版本 unsigned int NumberOfService...
C语言宏定义,内置宏,__FILE__,__LINE__,## 用法 当然宏定义非常重要的,它可以帮助我们防止出错,提高代码的可移植性和可读性等。下面列举一些成熟软件中常用得宏定义1,防止一个头文件被重复包含#ifndef COMDEF_H#define COMDEF_H//头文件内容 …#endif2,重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。typedef unsigned long int ...
祖玛阁怎么走 传奇永恒祖玛阁走法全面介绍 传奇永恒祖玛阁怎么走,祖玛阁的走法是什么,这个问题是不是一直困扰着大家呢,本期空白就教大家祖玛阁的走法,看看传奇永恒祖玛阁的走法,希望大家喜欢。传奇永恒 五层到七层: 左、上、上、上、右。 五层到药店: 右、左。 任意房间到药店: 左、上、左、上、左、上、左、上 七层到药店: 上、左、左、左、上、左 药店到五层: 左、左、左、左、上、...
传奇永恒BOSS精英怪在哪里刷 BOSS精英怪出现地点 简单 传奇永恒BOSS精英怪在哪里刷?很多人可能都不清楚在哪里可以刷BOSS精英怪吧,那么接下来就让琵琶网小编来告诉大家吧,希望可以帮助到大家。 传奇永恒BOSS精英怪在哪里刷? 【BOSS精英怪出现地点】 1.沃玛森林此处路过碰到一精英怪。 2.沃玛寺庙二层此处打怪,突然刷出一精英。 3.死亡峡谷随机卷飞到这个点,发现一个精英怪。 4...
各路BOSS精英怪刷点,欢迎各路大神来补充 沃玛森林此处路过碰到一精英怪,立马截了图上传 送TA礼物 回复1楼2016-03-28 16:19 9377游戏传奇1.76版本 怀旧经典游戏 传奇官方登录1.76版传奇,热血PK,大型攻城,沃玛教主,祖玛教主,经典传奇,不容错过.散人天堂,传奇玩家的福音.2018-11-25 06:38 广告 晚风爷 屠龙刀 12...
hook_对象类型的回调函数打开进程 保护记事本不被打开_ #include"ntifs.h"ULONG yuanshi_OpenProcedure;typedef enum _OB_OPEN_REASON { ObCreateHandle, ObOpenHandle, ObDuplicateHandle, ObInheritHandle, ObMaxOpenReason} OB_OPEN_REASON;...
遍历驱动类型 #include"ntifs.h"typedef VOID(__stdcall FUNCT_00A4_0EDA_DumpProcedure) (VOID*, struct _OBJECT_DUMP_CONTROL*);typedef LONG32(__stdcall FUNCT_000F_0EE2_OpenProcedure) (enum _OB_OPEN_REASON, CHAR, st...
关于Win7 x64下过TP保护(内核层)(转) 首先特别感谢梦老大,本人一直没搞懂异常处理机制,看了他的教程之后终于明白了。在他的教程里我学到了不少东西。第一次在论坛发帖,就说说Win7 x64位下怎么过TP保护。如果有讲错的地方,还望指出。说不定我发帖后一星期TP就会大更新呢。打字排版好辛苦。 先说说内核层,看大家的反应后再说说应用层的保护。(包括解决CE非法问题)调试对象:DXF调试工具:OD、Windbg调试环境:Win7...
关于Win7 x64下过TP保护(应用层)(转) 非常感谢大家那么支持我上一篇教程。Win10 快出了,所以我打算尽快把应用层的部分说完。调试对象:DXF调试工具:CE、OD、PCHunter、Windbg调试先言:TP的应用层保护做得比较多,包括对调试器的检测,比如CE工具会被DXF报非法。有的保护还是内核与应用层交替保护。应用层:1、TP让调试器卡死(内核互动)现象: <ignore_js_op> 如图,TP会检测...
MFC中定时器OnTimer函数的使用 在MFC中我们经常需要定时读写数据,或者定时刷新界面,更新数据和状态,这就需要用到定时器,其实现函数为OnTimer,下面对其用法步骤(基于VS2010)进行简要说明:1、在类视图中点击需要使用定时器的对话框类,在属性窗口选择消息,在下面的消息函数中选中WM_TIMER,后面选择添加OnTimer函数,如下图所示:2、编写OnTimer函数void CLD_PowerDlg::On...
本机使用无线WIFI时,虚拟机网络设置方式 当宿主机使用的是WIFI时,虚拟机不能选择NAT模式(或许可以,但是我好久也没解决),选择桥接模式是最快、最简单的方式1.虚拟机设置里面网络适配器选择桥接模式 2. edit——虚拟机网络编辑器——VMNET0 选择桥接模式,桥接到选择自动(记得自动设置里面的勾全打上),然后确定就解决了...
error LNK2019: 无法解析的外部符号 _socket@12,该符号在函数 _wmain 中被引用 Reason:学习使用socket,在stdafx.h文件加了#include,编译#include "stdafx.h"#includeusing namespace std;int _tmain(int argc, _TCHAR* argv[]) {int socketId;socketId = socket(AF_INET, SO...
得到系统版本 ULONG uMajorVersion; ULONG uMinorVersion; PsGetVersion(&uMajorVersion, &uMinorVersion, NULL, NULL);
内核中睡眠 函数 KeDelayExecutionThread 睡30秒 VOID shuimian(ULONG n){KdPrint(("进入睡眠............."));LARGE_INTEGER timeout;timeout.QuadPart = -10 * 1000 * 1000;timeout.QuadPart *= n;KeDelayExecutionThread(KernelMode, FALSE, &timeout)...
NTSTATUS状态码 详细解说 返回值/代码 描述 0x00000000 状态成功 手术顺利完成。 0x00000000 状态等待_0 调用方为WaitType指定WaitAny,对象数组中的Dispatcher对象之一已设置为已发出信号的状态。 0x00000001 状态等待_1 调用方...
NTSTATUS codes(驱动错误码对照表) These are from the Windows .NET Server 2003 RC2 DDK. 00000000 STATUS_SUCCESS 00000000 STATUS_WAIT_0 00000001 STATUS_WAIT_1 00000002 STATUS_WAIT_2 00000003 STATUS_WAIT_3 ...
字符串比较函数UNICODE_STRING //if (0 == RtlCompareUnicodeString(&pTempDataTableEntry->BaseDllName, &usModuleName, FALSE)) //RtlEqualUnicodeString if (0 == RtlEqualUnicodeString(&pTempDataTableEntry-...
wchar_t*和string相互转换 在处理中文时,一个中文通常占用2个字节,而char*和string字符串中的字符都是一个字节的,为了能够有效处理中文,引入了wchar_t*型变量,当需要处理中文时,可以首先将string转换成char*,然后将char*转换成wchar_t*即可。在window环境中,可以利用MultiByteToWideChar();WideCharToMultiByte();1 2两个A...
字符串转换Unicode下wstring(wchar_t*)和string(char*)互相转换 #include<string> using namespace std; //将string转换成wstring wstring string2wstring(string str) { wstring result; //获取缓冲区大小,并申请空间,缓冲区大小按字符计算 ...
导出对象类型POBJECT_TYPE extern POBJECT_TYPE *IoDriverObjectType; Status = ObReferenceObjectByName( &usObjectName, OBJ_CASE_INSENSITIVE, NULL, 0, *IoDriverObjectType, Ke...
三。对象创建(ObCreateObject)和对象删除(ObDereferenceObject、ObpRemoveObjectRoutine) 三。对象创建(ObCreateObject)和对象删除(ObDereferenceObject、ObpRemoveObjectRoutine)2010年05月11日 星期二 11:20 为对象分配内存看完了, 这次我们看一个比较高层的函数。ObCreateObject, 这是内核的导出函数, 所有模块都可以使用(虽然它没有被文档化....)它的作用是创建指定类型(OBJECT_...
对象创建(ObCreateObject)和对象删除(ObDereferenceObject、ObpRemoveObjectRoutine) 原文地址:http://uninformed.org/index.cgi?v=1&a=5&p=5 进程执行的临界时段是指在新的进程对象实例被nt!ObCreateObject创建 和该进程对象被nt!ObInsertObject插入到进程对象类型表之间的时段。在该时段尝试获取进程的句柄是不安全的,比如使用nt!ObOpenObjectByPointer。如果一个应用程序试...
关于未导出函数与导出但是未文档化的函数MmGetSystemRoutineAddress 未公开的函数(导出未文档化)是已经导出了,但是不能直接使用。使用方法:1。在驱动层使用MmGetSystemRoutineAddress加函数名去获取函数的地址2。在应用层使用Loadlibrary和GetProcessAddress(事先当然要先定义好原型)未导出函数的使用比较麻烦,一般要先获取那个函数所在模块的基地址,然后再通过特征码去得到函数地址。或者在某个函数内部进行特征码的搜索。...
windows蓝屏dump分析方法 一、WinDbg是什么?它能做什么? WinDbg是在windows平台下,强大的用户态和内核态调试工具。它能够通过dmp文件轻松的定位到问题根源,可用于分析蓝屏、程序崩溃(IE崩溃)原因,是我们日常工作中必不可少的一个有力工具,学会使用它,将有效提升我们的问题解决效率和准确率。二、WinDbg6.12.0002.633下载:x86位版本下载:【微软官方安装版】蓝屏Dump分析工...
ssdt表通用hook 任意ssdthook ULONG old_NtCreateDebugObject=0;ULONG ssdt_hook_quanbu_biaozhong(ULONG ssdt_i,ULONG newhanshu){ old_NtCreateDebugObject = KeServiceDescriptorTable.ServiceTableBase[ssdt_i]; __asm { cli m...
扫内核 //搜索函数地址ULONG sao_neihe(ULONG dizhi,ULONG daxiao, char*hanshuming, ULONG*dizhichu){ if (strstr(hanshuming, "KiFastCallEntry") != 0) { KdPrint(("进来了 ")); KdPrint(("基质%x 大小%x", dizhi, daxiao)...
2003系统_开双机调试_符号链接路径设置 设置好虚拟机串口将编译好的wrkx86.exe复制到\windows\system32\目录下看 哪个硬件抽象层 再把硬件抽象层驱动 复制 system32\目录下link -dump -all \WINDOWS\system32\hal.dll | findstr pdb如果不成功 需要设置路径 path C:\WRK\tools\x86;%path%教程中是 p...
《重要》内核下各种同步处理方法(自旋锁、信号灯、互斥体…) 《重要》内核下各种同步处理方法(自旋锁、信号灯、互斥体…)AloneMonkey 2014年7月19日 01.在支持多线程的操作系统下,有些函数会出现不可重入的现象。所谓“可重入”是指函数的执行结果不和执行顺序有关。反之如果执行结果和执行顺序有关,则称这个函数是“不可重入”的。 2.Windows将中断的概念进行了扩展,提出一个中断请求级(IRQL)的概念。其中规定了32个中断请求...
反汇编 结构体 系统函数 typedef struct EH3_EXCEPTION_REGISTRATION{ DWORD Next; DWORD ExceptionHandler; DWORD ScopeTable; DWORD TryLevel;}_EH3_EXCEPTION_REGISTRATION;typedef struct CPPEH_RECORD...
反汇编 while(i小于100) int _tmain(int argc, _TCHAR* argv[]){ int num = 0; int i = 0; while (i <= 100) { num = num+i; i++; } printf("num %d", num); getchar(); return 0;}int num = 0;00EA3CFE mov ...
64位驱动中加入汇编代码 本文介绍如何在驱动程序的C文件中调用ASM文件中导出的汇编函数引言 Windows驱动程序使用DDK或者IFSDDK(以下简称DDK)中的Build.exe程序对源文件进行编译和链接,操作时只需启动相应的DDK命令行程序,进入待编译的源文件目录,执行Build命令即可得到.sys文件。 Build命令实际上是调用了一个nmake程序,nmake程序随后调用cl.exe和link....
反汇编_do_while int _tmain(int argc, _TCHAR* argv[]){ int num = 0; int i = 0; do { num = i + num; i++; } while (i<101); printf("num %d", num); getchar(); return 0;}int num = 0;00D73CFE mov ...
反汇编 for(int i=0;i100;i++) #pragma warning(disable:4996)int _tmain(int argc, _TCHAR* argv[]){ int num = 0; for (int i=0; i < 101; i++) { num = num + i; } printf("num %d", num); getchar(); return 0;}int num =...
反汇编 switch_case_break_default数组形式 #include "stdafx.h"#include "windows.h"#pragma warning(disable:4996)int _tmain(int argc, _TCHAR* argv[]){ int num = 0; scanf("%d", &num); switch (num) { case 1: printf("11111111111");...
反汇编 if else_if else_if else int _tmain(int argc, _TCHAR* argv[]){ int a = 1; int b = 2; int c = 3; MessageBox(NULL, L"111", L"2", 0); if (a<b) { printf("11111111111n"); } else if (b<c) { printf("22222222"...
反汇编 if else #include "stdafx.h"#include "windows.h"int _tmain(int argc, _TCHAR* argv[]){ int a = 1; int b = 2; int c = 3; MessageBox(NULL, L"111", L"2", 0); if (a<b) { printf("11111111111n"); }..
两种HOOK IDT方法 IDT :就是系统中断表,是存放Windows的中断和异常的处理函数的表IDT的数据结构: typedef struct _IDTENTRY { unsigned short LowOffset; //处理函数的低2字节 unsigned short selector; //处理函数所在的段选择子 unsigned char retent...
结构化异常 try-except 语句 C 若要了解有关 Visual Studio 2017 RC 的最新文档,请参阅 Visual Studio 2017 RC 文档。Microsoft 专用try-except 语句是一项 Microsoft C++ 语言扩展,它使应用程序能够在正常终止执行的事件发生时获取对程序的控制权。 此类事件称为异常,处理异常的机制称为结构化异常处理。异常可能基于硬件或软件。 即使应用程序无法从硬件...
函数名获取函数地址 MmGetSystemRoutineAddress #include<ntifs.h>VOID DriverUnLoad(PDRIVER_OBJECT pDriverObject){ DbgPrint("驱动已卸载...");}NTSTATUS DriverEntry(IN PDRIVER_OBJECT pDriverObject, IN PUNICODE_STRING pRegPath){ NTSTATUS ...
ring0下的 fs:[124] 反汇编内核函数的时候经常会看到mov eax, fs:[124].一直没弄清楚fs寄存器在ring0存放的是什么。今天查了下资料。 fs寄存器在Ring0中指向一个称为KPCR的数据结构,即FS段的起点与KPCR结构对齐。而在Ring0中fs寄存器一般为0x30。 这样看KPCR的数据结构:nt!_KPCR +0x000 NtTib : ...
KPCR结构体 @0环的ETHREAD结构体是记录线程的相关信息,EPROCESS结构体是记录进程相关的信息,同样我们每个CPU也有一个结构体来记录每个CPU的状态这个结构体就是KPCR结构体KPCR结构体如下下面该结构体中几个主要的成员,kd> dt _KPCRnt!_KPCR +0x000 NtTib : _NT_TIB +0x01c SelfPcr ...
汇编工具安装一:MASM32的安装! MASM32是一款汇编开发工具,网址:http://www.masm32.com/ ,它是集合了很多开发汇编程序的工具,windows下汇编程序的开发,很多人都在使用它。直接下载:http://website.assemblercode.com/masm32/masm32v11r.zip安装:注意问题,如果你是64位操作系统,那么安装过程会报错,那是因为缺少win32一些文件造成的,我们可...
使用WinDbg分析蓝屏dump原因 http://support.icafe8.com/technologynews/focus/932.html 一、WinDbg是什么?它能做什么? WinDbg是在windows平台下,强大的用户态和内核态调试工具。它能够通过dmp文件轻松的定位到问题根源,可用于分析蓝屏、程序崩溃(IE崩溃)原因,是我们日常工作中必不可少的一个有力工具,学会使用它,将有效提升我们的问题解决效率和准...
C++ 'include' 的两个头文件互相包含出错 头文件保护符通常,现在写代码时都会随手在头文件中加入头文件保护符。有以下两种形式的保护符。 #ifndef ABCDE #define ABCDE //..... 内容 #endif #pragma once两种模式的作用是相同的,都是只让头文件在解析过程中只会展开一次。 能工作的循环包含情况今天遇到的问题...
C语言中,头文件和源文件的关系(转) 简单的说其实要理解C文件与头文件(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程:1.预处理阶段 2.词法与语法分析阶段 3.编译阶段,首先编译成纯汇编语句,再将之汇编成跟CPU相关的二进制码,生成各个目标文件 (.obj文件)4.连接阶段,将各个目标文件中的各段代码进行绝对地址定位,生成跟特定平台相关的可执行文件,当然,最后还可以用objcop...
结构体 struct _LDR_DATA_TABLE_ENTRY c++ xp3 win7 64 @Windows XP Professional Service Pack 3 (x86) (5.1, Build 2600)lkd> dt -b _LDR_DATA_TABLE_ENTRYnt!_LDR_DATA_TABLE_ENTRY +0x000 InLoadOrderLinks : _LIST_ENTRY +0x000 Flink : P...