- 博客(1604)
- 资源 (29)
- 收藏
- 关注
原创 学习笔记
1、定义纯汇编的祼函数: void __declspec(naked) __stdcall NakeFunction(){__asm {nopret}} 2、编译器中断指令用于设置INT 3中断__debugbreak();KdBreakPoint(); 3、内核下修改内存读写属性VOID WPOFF(){ U...
2016-07-06 18:46:03
1018
原创 Windbg条件断点之字符串比较
bu ntdll!LdrLoadDll "r $t0=poi(poi(esp+c)+4);as /mu ${/v:dllname} @$t0;.block{.if($spat(\"${dllname}\",\"*pass.dll\")){kbn}; .else{ad ${/v:dllname};g}}"// 判断注册表查询的是否是Start *值bu kernel32!RegQue
2016-02-23 17:11:44
2292
转载 关于Windows安全权限的学习
本篇文章内容主要参考了 陈皓 《以程序的方式操纵NTFS的文件权限 》,然后加入了一些自己学习和理解的东西。在NTFS文件系统出现后,在Windows系统(2K/XP/Vista..)下的对象,包括文件系统,进程、命名管道、打印机、网络共享、或是注册表等等,都可以设置用户访问权限。在Windows系统中,其是用一个安全描述符(Security Descriptors)的结构来保存其权限的设
2014-03-11 21:42:53
2421
转载 【x64 指令系统】之指令编码内幕
作者: mik 时间: 2008-12-5 23:23 标题: 【x64 指令系统】之指令编码内幕 -- (1 楼:目录)目 录-------------------------------------------------------------------------------1、序言
2013-12-06 12:05:16
4498
转载 开始进行 64 位 Windows 系统编程之前需要了解的所有信息
原文链接:http://www.microsoft.com/china/MSDN/library/Windev/64bit/issuesx64.mspx?mfr=true 开始进行 64 位 Windows 系统编程之前需要了解的所有信息发布日期: 2006-5-30 | 更新日期: 2006-5-30本文讨论: •64 位版本 Windows 的背
2013-12-05 12:00:33
1351
原创 学习笔录(持续更新)
=============小功能模块函数收集================================static short OutputToFile(LPCTSTR strFile, LPCTSTR szText){FILE *file;if (fopen_s( &file, strFile, "a+" ) == 0 ){fseek(file,0,SEEK_END
2013-08-08 21:05:58
2012
原创 VS2010编译环境一些选项的设置(总结)
--------------------------------------------------------------------------------------------------------------------------------------------VS2010编译环境中选择编译是按C++方式还是C方式来编译代码的选项位置:右键工程属性--属性对话框中Co
2013-08-02 23:08:59
15516
转载 MSDN Library for vs 2010 下载和安装(终于知道原来是这样安装的)
MSDN Library for vs 2010 下载和安装 MSDN2010安装及使用(MSDN Library)VS2010正式版不再有单独的MSDN Library安装选项,以至于很多同学找不到本地的MSDN Library来用,其实VS2010的ISO安装光盘里已经包含有MSDN Library,只不过要手动安装,方法如下:1、安装完VS2010后,在开始菜单中
2013-08-02 22:12:18
16219
转载 使用dbghelp获取调用堆栈--release下的调试方法学(精华)
使用dbghelp获取调用堆栈--release下的调试方法学Author : Kevin Lynx当软件作为release模式被发布给用户时,当程序崩溃时我们很难去查找原因。常见的手法是输出LOG文件,根据LOG文件分析程序崩溃时的运行情况。我们可以通过SEH来捕获程序错误,然后输出一些有用的信息作为我们分析错误的资料。一般我们需要输出的信息包括:系统信息、CPU寄存器信
2013-07-17 20:31:04
1278
转载 64位驱动中加入汇编代码
本文介绍如何在驱动程序的C文件中调用ASM文件中导出的汇编函数引言 Windows驱动程序使用DDK或者IFSDDK(以下简称DDK)中的Build.exe程序对源文件进行编译和链接,操作时只需启动相应的DDK命令行程序,进入待编译的源文件目录,执行Build命令即可得到.sys文件。 Build命令实际上是调用了一个nmake程序,nmake程序随后调用cl.exe和li
2013-06-10 18:54:59
5885
转载 VMware+Windgb+Win7
本文主要记录个人安装VMware+Windgb+Win7内核驱动调试的笔记。一、安装环境主机:Windows Vista Bussiness虚拟机:VMware 7GUestOS: Win7Windbg: 6.11二、虚拟机配置打开相应 vmware 虚拟机上的 “Virtaul Machine Settings“ “Hardware ”选项中 ---->
2013-05-16 20:49:03
1109
转载 Windows7+WDK+VS2010+VisualDDK驱动开发环境搭建(菜鸟的经验)
原文链接:http://www.cppblog.com/guojingjia2006/archive/2011/03/19/142211.htmlWINDOWS 7 配置驱动开发环境(wdk7.60)1. 安装VS2010,WDK7.60(GRMWDK_EN_7600_1)2. 新建VC 控制台项目(选择为空项目)3. 新建项目配置“dri
2013-04-12 23:29:09
1303
转载 Windows 驱动与驱动之间的通信
本文主要介绍 windows NT 驱动之间利用 CTL_CODE 如何通信. 一般来讲, 用户态的应用程序通过调用 CreateFile 和 DeviceIOControl 就可以和内核态驱动之间进行通信, 如果是内核态的一个驱动程序想和另外一个驱动程序进行类似操作又如何实现呢, 接下来会做详细的说明.主要的思路是首先得到另外一个驱动的 handle, 再构建一个 IRP, 赋予必要的参
2013-04-11 17:29:21
2022
转载 MASM64里怎么调用带多个参数的自定义的子程序?
请看这里http://www.x64asm.com/viewthread.php?tid=28CreateWindowExA函数就是超过4个参数的.四个参数后的其他参数依次压入堆栈,其中看到64位下长度为8指针.如: ;开始创建窗口 sub rsp,84H xor rcx,rcx
2013-04-08 12:45:00
1604
原创 函数调用约定(Calling Convention)
cdecl调用约定又称为C调用约定,是C语言缺省的调用约定,它的定义语法是:int func (int x ,int y) //默认的C调用约定 int __cdecl func (int x,int y) //明确指出C调用约定该调用约定遵循下面的规则:参数入栈顺序:从右到左还原堆栈者:调用者修改堆栈,所以可以支持变参函数,因为能够恢复堆栈平衡 stdcall调
2013-03-19 22:44:25
1280
原创 A simple IOCP Server/Client Class
原文地址:http://www.codeproject.com/Articles/10330/A-simple-IOCP-Server-Client-ClassDownload demo project v.1.16 - 64.66 KbDownload source v1.16 - 154.59 KbDownload other client/server implementations usi
2012-08-29 22:16:23
1874
原创 Windows NT引导过程源代码分析
Windows 引导过程Windows 内核中的各个组件和各种机制在起作用以前,必须首先被初始化。此初始化工作是在系统引导时完成的。当用户打开计算机的电源开关时,计算机便开始运行,但操作系统并不立即获得控制权,而是BIOS 代码首先获得控制,它执行必要的硬件检测工作,并允许用户通过一些功能键来配置当前系统中的硬件设置,甚至诊断硬件问题,然后才将控制权交给操作系统。1.1 内核加载在In
2012-08-11 19:49:17
6042
转载 驱动开发基础资料 ( 精华总结)
1、三种类型的WDM驱动程序 总线驱动程序(bus driver) 功能驱动程序(function driver) 过滤驱动程序(filter driver)2、其他分类方法 类驱动程序(class driver) 端口驱动程序(port driver) 小端口驱动程序(miniort driver)3、驱动程序对象(DRIV
2012-07-08 02:18:14
1451
转载 驱动和应用层的三种通信方式 (学习)
驱动程序和客户应用程序经常需要进行数据交换,但我们知道驱动程序和客户应用程序可能不在同一个地址空间,因此操作系统必须解决两者之间的数据交换。驱动层和应用层通信,主要是靠DeviceIoControl函数,下面是该函数的原型:BOOL DeviceIoControl ( HANDLE hDevice, // 设备句柄 DWORD dwIoControlCode, // IOCTL请求
2012-07-08 02:14:48
1555
转载 SYSENTER指令相关(精华学习)
在 Intel 的软件开发者手册第二、三卷(Vol.2B,Vol.3)中,4.8.7 节是关于 sysenter/sysexit 指令的详细描述。手册中说明,sysenter指令可用于特权级 3 的用户代码调用特权级 0 的系统内核代码,而 SYSEXIT 指令则用于特权级 0 的系统代码返回用户空间中。sysenter 指令可以在 3,2,1 这三个特权级别调用(Linux 中只用到了特权级
2012-07-06 00:18:22
2311
转载 windbg命令解释
inDbg 文档翻译----85cc682/NetRochttp://netroc682.spaces.live.com/!processfields!processfields 扩展命令显示执行进程块(EPROCESS)中字段的名字和偏移。语法!processfields DLLWindows NT 4.0
2012-06-29 22:23:07
5851
原创 创建线程函数区别CreateThraed/_beginthreadex/AfxBeginThread(重点理解)
(1)CreateThread函数CreateThread:是Windows的API函数(SDK函数的标准形式,直截了当的创建方式,任何场合都可以使用),提供操作系统级别的创建线程的操作,且仅限于工作者线程。不调用MFC和RTL的函数时,可以用CreateThread,其它情况不要使用。因为:C Runtime中需要对多线程进行纪录和初始化,以保证C函数库工作正常。MFC也需要知道新线
2012-06-23 15:56:58
1287
转载 构造IRP 直接读写磁盘扇区内容
构造IRP 直接读写磁盘扇区内容DDK示例中的代码。NTSTATUSFltReadSectors( IN PDEVICE_OBJECT DeviceObject, OUT PVOID Buffer, IN ULONG Length, IN LONGLONG ByteOffset, IN BOOLEAN Wait )
2012-06-22 11:32:50
2286
转载 经典文章-API Hook Revealed
原文: Intercepting Win32 API calls has always been a challenging subject among most of the Windows developers and I have to admit, it's been one of my favorite topics. The term Hooking represents
2012-06-10 07:53:55
4651
转载 T-Cmd源码学习
这里和大家一起看一个源代码,直接复制下面的代码到文本文件,保存后辍为.cpp格式文件,用VC6.0编译生成可执行文件,自己测试过生成后的可执行文件可直接运行。#include #include #include #define BUFFER_SIZE 1024#pragma comment(lib,"ws2_32.lib")#pra
2012-06-10 07:53:28
1367
转载 制作精简Linux(精华)
一,什么是BabyLinux二,为什么要做这样一个linux三,什么人适合读这篇文档四,应该具备的知识五,linux系统引导过程简介六,编译内核七,编译busybox八,制作根文件系统九,制作ramdisk映象文件十,内核与busybox的整合十一,安装测试和内容调整十二,babylinux中的BUG十三,接下来要做的事情十四,参考文献一
2012-06-07 22:16:18
2439
转载 IPC空连接测试代码
//****************************************************//****** 网蝉工具--135弱口令猜解器 ******//ip.txt纪录要猜测的IP地址。//user.txt纪录要猜测的用户名。//password.txt纪录要猜测的密码。//3个文件格式为标准的字典文件, 方便与修改和承接其他扫描器扫出的结果。//**
2012-06-07 22:06:57
1743
原创 _chkstk栈溢出 c00000fd (STATUS_STACK_OVERFLOW)的原因
摘要:栈溢出异常触发机制主要基于_chkstk函数。当程序分配大局部变量(如30KB)时,编译器自动插入_chkstk检查栈空间。Windows线程栈按需提交页,初始仅提交部分(如64KB)。_chkstk通过逐页探测(test[eax],eax)触发PageFault提交新页。若探测到栈底未提交页(如eax接近StackLimit),系统无法扩展栈,则抛出STATUS_STACK_OVERFLOW异常(0xC00000FD)。此异常并非传统"栈写满"或递归溢出,而是_chkstk探测失
2025-10-24 18:28:44
313
原创 第 14 章 传输语法 NDR —— 14.4 输入/输出流表示 (Encoding of Streams for Transmission)
摘要:NDR规范定义了数据在网络传输中的编码规则,包括基本类型对齐、填充字节处理及字节序标识。构造类型(数组、字符串、结构体等)采用递归展开方式按声明顺序编码,其中指针分为唯一/引用/全指针三种处理方式。RPC调用中客户端和服务端分别通过存根完成数据的封送(本地→字节流)与解封送(字节流→本地),确保跨平台互操作性。示例展示了结构体成员的对齐规则及填充机制,最终形成8字节对齐的传输流。该规范为RPC报文解析提供了核心解码依据。
2025-09-28 14:16:12
522
原创 第 14 章 传输语法 NDR —— 14.3 构造类型(Constructed Types) 部分
摘要:NDR构造类型是IDL中由基本类型组成的复合数据结构,包括数组、字符串、结构体、判别联合体、指针和管道。数组有固定大小、可变大小和可变长度三种形式;字符串以字符数组表示,分为固定、可变大小和可变长度类型;结构体包含固定和可变两种;判别联合体通过判别字段确定成员;指针分为唯一、引用和全指针三种语义;管道用于流式数据传输。这些类型在字节流中各有特定的编码规则,包括长度字段、对齐方式等。下一节将介绍NDR在RPC PDU中的流封装方式。
2025-09-28 14:15:18
669
原创 第 14 章 传输语法 NDR —— 14.2 基本类型(Primitive Types) 部分
本文介绍了NDR(网络数据表示)的基本数据类型及其编码规则。主要内容包括:1)基本类型的表示约定、对齐规则(如布尔型1字节对齐,32位整数4字节对齐);2)布尔型、字符型、整型(16/32/64位)和枚举类型的编码方式;3)浮点数的多种表示格式(IEEE/VAX/Cray/IBM);4)未解释字节的原始传输特性。这些基本类型是构造复杂数据类型的基础,其严格的编码规范确保了跨平台数据交换的一致性。
2025-09-28 14:14:01
476
原创 第 14 章 Transfer Syntax NDR
摘要:NDR定义了数据传输格式标签(4字节)来标识RPCPDU中的数据表示方式,包括字符(ASCII/EBCDIC)、整数/浮点数字节序(大/小端)、浮点格式(IEEE/VAX等)。第0字节高4位控制数字节序,低4位控制字符格式;第1字节指定浮点格式。NDR通过基本类型(布尔、字符等)和构造类型的八位字节流映射实现IDL到网络传输的转换,支持多标准数据表示。
2025-09-28 14:10:23
421
原创 利用unrarlib库实现对加密rar文件的密码爆力破解
http://my.oschina.net/u/213072/blog/52053http://blog.csdn.net/cq_3964/article/details/5737089
2023-03-07 19:41:46
916
1
原创 基于ObRegisterCallbacks实现的线程和进程监控及其保护
要实现监控系统线程和进程,并实现对指定线程和进程的保护,在 32 位系统上可以使用 HOOK 技术,HOOK 相关的函数来实现。但是,到了 64 位平台上,就不能继续按常规的 HOOK 方法去实现了。好在 Windows 给我们提供了 ObRegisterCallbacks 内核函数来注册系统回调,可以用来注册系统线程回调,监控系统的线程创建、退出等情况,而且还能进行控制;也可以用来注册系统进程回调,可以监控系统的进程创建、退出等情况,而且也能进行控制。这使得我们实现保护指定线程、进程不被结束,提供了可
2021-02-23 17:09:25
4360
1
驱动数字签名
2013-01-06
PEiD 0.94版本
2014-03-29
bochs 2.6 source code
2012-09-27
w32dsm静态反汇编工具
2014-03-29
OllyDBG_1.10
2014-03-29
winhex编辑器
2014-03-29
Import REConstructor V1.4和V1.6两个版本
2009-02-01
Asp 文件加密器(MyAsp) v2.0,网马免杀,免杀
2009-02-01
win2000API学习资料
2009-02-01
漫谈兼容内核
2013-05-02
万能图标提取器 V1.0(100%不变色)
2009-02-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅