获取系统中所有进程&线程信息 读书笔记--[计算机病毒解密与对抗]目录:遍历进程&线程程序终止进程获取进程信息获取进程内模块信息获取进程命令行参数代码运行环境:Win7 x64 VS2012 Update3遍历系统中所有进程[cpp] view plain copy print?#inc...
windbg-.process切换进程(内核) .process.process 命令指定要用作进程上下文的进程(Set Process Context).process显示当前进程的EPROCESS,这里显示当前进程为test.exe[cpp] view plain copy print?kd>.processImplicitprocessisnow...
ring3硬件断点 4个断点寄存器DR0~DR3用来设置断点的线性地址。DR6为状态寄存器,DR7为控制寄存器。DR4和DR5保留。当CR4.DE==1时,访问DR4和DR5产生#UD异常;IF CR4.DE==0,访问DR4和DR5将是对DR6和DR7的访问。下面这张表非常清楚: |---------------|----------------|Dr0| ...
NewBluePill源码学习 NewBluePill的源码也看的差不多了,一直说等有时间了再写学习的一些心得,拖来拖去弄到现在了,时间不是等来的,慢慢开始吧。0x00 初识硬件虚拟化硬件虚拟化对大数人来讲还是比较陌生。什么是硬件虚拟化?因为早期的虚拟机都是进程级虚拟机,也就是作为已有操作系统的一个进程,完全通过软件的手段来模拟硬件,软件再翻译内存地址的方法实现物理机器的模拟,这样虚拟效率较低,资源...
Intel VT入门 前言传说中的VT貌似很神秘的样子,关于VT入门的资料又很少,于是研究了一番由于资源有限,自身水平亦有限,并且是闭门造车之作,如有错误的地方请指正,不胜感激!关于VT可以先参考海风月影写的关于VT调试器http://bbs.pediy.com/showthread.PHP?t=96122运行环境操作系统:windowsXPCPU:in...
x64内核内存空间结构 0x00 前言本文主要是讨论Windows 7 x64下的内核虚拟地址空间的结构,可以利用WiinDBG调试的扩展命令"!CMKD.kvas"来显示x64下的内核虚拟地址空间的整体布局。了解内核的地址布局在某些情况下是很有的,比如说在研究New Blue Pill的源码和虚拟化的时候。0x01 基本结构X64的CPU的地址为64位,但实际上只支持48位的虚拟地址空间供软件...
VS2012下X64平台嵌入汇编程序 VS2012在win32平台编译的时候可以很好的支持汇编语言的嵌入。建立一个控制台应用程序,选择空项目。项目建立好之后添加一个.cpp文件。在cpp文件中写入如下代码:[cpp] view plain copy print?#include<iostream>usingnamespaces...
VC 快速创建多层文件夹 BOOL CreateDirectory( LPCTSTR lpPathName, LPSECURITY_ATTRIBUTES lpSecurityAttributes);这个是大多数用户都知道的,但是这个有缺点,只能是一层一层的创建。。。很是麻烦!!!下面给大家介绍一个函数:BOOL MakeSureDirectoryPathExists( ...
windows 物理内存获取 由于我一般使用的虚拟内存, 有时我们需要获取到物理内存中的数据(也就是内存条中的真实数据), 按理说是很简单,打开物理内存,读取就可以了.但似乎没这么简单:[cpp] view plain copy print?#include"windows.h"//定义相应的变量类型,见ntddk.htypedefLONG...
ObCallback回调钩子检测 ObCallback回调钩子检测2013-12-20 Nie.Meining Ring0在 PatchGuard 的摧残下,通过 ObRegisterCallbacks 函数注册回调钩子已经成了 RK/ARK 中的主流技术之一。注册回调钩子的具体做法可以参考MSDN上的示例代码:http://code.msdn.microsoft.com/windowshardware/Ob...
VadRoot枚举进程模块在Windows7下的完整实现 原理小伟的小伟在http://bbs.pediy.com/showthread.php?t=66886说的挺清楚了,Windows7下有一些变化,使用NtQueryVirtualMemory来枚举模块是一个效率很低的事情,自己枚举VadRoot速度是很快的,有N个子节点时,为log(N),还有我在这里补上的基地址获取和镜像大小获取,废话不多说,完整代码如下,仅给有需要的人参考...
修改vs helpview手册路径 Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Help][HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Help\v2.1]"AppRoot"="C:\\Program Files\\Microsoft Help Viewer\\v2.1\\""D...
Ring3下的DLL注入(NtCreateThreadEx + LdrLoadDll方式实现,可以注入系统进程) 工具介绍及使用请移步:http://blog.csdn.net/sunflover454/article/details/50441014本文首发在零日安全论坛:http://www.jmpoep.com/thread-833-1-1.html使用NtCreateThreadEx + LdrLoadDll方式实现远程线程注入的特色在于比一般的远程线程注入稳定,可以注入...
遍历注册表回调函数(仿PCHunter CmpBack) 遍历注册表回调函数(仿PCHunterCmpBack)typedefstruct_CAPTURE_REGISTRY_MANAGER{PDEVICE_OBJECTdeviceObject;BOOLEANbReady;LARGE_INTEGERregistryCallbackCookie;LIST_ENTRYlQueuedRegistryEven...
系统回调介绍 使用 设置 PspNotifyEnableMask 为 0 CreateProcess CreateThread LoadImage 回调函数都不会起作用目的:遍历系统中的回调类型:与Xuetr遍历到的类型相同如有雷同,还望见谅。。。有错误或者不恰当的地方请指正。附件中代码大量冗余,可以将相同的部分写成一个函数,...
遍历CallBack对象 和 HHIVE对象 内核中有个PLIST_ENTRYCmpHiveListHead;CmpHiveListHead=&CMHIVE.HiveList;CMHIVE结构如下:kd>dt_CMHIVEnt!_CMHIVE+0x000Hive:_HHIVE+0x210FileHandles:[3]Ptr32Void...
反调试技术常用API,用来对付检测od和自动退出程序 在调试一些病毒程序的时候,可能会碰到一些反调试技术,也就是说,被调试的程序可以检测到自己是否被调试器附加了,如果探知自己正在被调试,肯定是有人试图反汇编啦之类的方法破解自己。为了了解如何破解反调试技术,首先我们来看看反调试技术。一、Windows API方法Win32提供了两个API, IsDebuggerPresent和CheckRemoteDebuggerPrese...
windows OBJECT查找 PspCidTable表里。索引值总之4的倍数。也就是说 PID/4 才是PspCidTable索引。*8 才是PsPCidTable+偏移。获取进程对应的 _HANDLE_TABLE_ENTRY 结构查找 Object_Header 地址 = Object对象地址-0x18TypeIndex = [Object对象地址-0c] * 4 是ObTypeIndexTable索引...
x86平台转x64平台关于内联汇编不再支持的解决 x86平台转x64平台关于内联汇编不再支持的解决2011/08/25 把自己碰到的问题以及解决方法给记录下来,留着备用!工具:VS2005 编译器:cl.exe(X86 C/C++) ml64.exe(X64 ASM64)前提:X86下内联汇编是嵌在函数当中实现的在X86平台下,可以轻松的在C/C++代码中嵌入汇编代码,称其为“内联汇编...
windows消息钩子注册底层机制浅析 标 题: 【原创】消息钩子注册浅析 作 者: RootSuLe 时 间: 2011-06-18,23:10:34 链 接: http://bbs.pediy.com/showthread.php?t=135702 windows消息钩子很古老,但目前仍有很多地方需要用到,简单跟踪...