- 博客(1599)
- 资源 (29)
- 收藏
- 关注

原创 学习笔记
1、定义纯汇编的祼函数: void __declspec(naked) __stdcall NakeFunction(){__asm {nopret}} 2、编译器中断指令用于设置INT 3中断__debugbreak();KdBreakPoint(); 3、内核下修改内存读写属性VOID WPOFF(){ U...
2016-07-06 18:46:03
958

原创 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
2194

转载 关于Windows安全权限的学习
本篇文章内容主要参考了 陈皓 《以程序的方式操纵NTFS的文件权限 》,然后加入了一些自己学习和理解的东西。在NTFS文件系统出现后,在Windows系统(2K/XP/Vista..)下的对象,包括文件系统,进程、命名管道、打印机、网络共享、或是注册表等等,都可以设置用户访问权限。在Windows系统中,其是用一个安全描述符(Security Descriptors)的结构来保存其权限的设
2014-03-11 21:42:53
2322

转载 【x64 指令系统】之指令编码内幕
作者: mik 时间: 2008-12-5 23:23 标题: 【x64 指令系统】之指令编码内幕 -- (1 楼:目录)目 录-------------------------------------------------------------------------------1、序言
2013-12-06 12:05:16
4106

转载 开始进行 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
1257

原创 学习笔录(持续更新)
=============小功能模块函数收集================================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
1958

原创 VS2010编译环境一些选项的设置(总结)
--------------------------------------------------------------------------------------------------------------------------------------------VS2010编译环境中选择编译是按C++方式还是C方式来编译代码的选项位置:右键工程属性--属性对话框中Co
2013-08-02 23:08:59
15279

转载 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
15998

转载 使用dbghelp获取调用堆栈--release下的调试方法学(精华)
使用dbghelp获取调用堆栈--release下的调试方法学Author : Kevin Lynx当软件作为release模式被发布给用户时,当程序崩溃时我们很难去查找原因。常见的手法是输出LOG文件,根据LOG文件分析程序崩溃时的运行情况。我们可以通过SEH来捕获程序错误,然后输出一些有用的信息作为我们分析错误的资料。一般我们需要输出的信息包括:系统信息、CPU寄存器信
2013-07-17 20:31:04
1244

转载 64位驱动中加入汇编代码
本文介绍如何在驱动程序的C文件中调用ASM文件中导出的汇编函数引言 Windows驱动程序使用DDK或者IFSDDK(以下简称DDK)中的Build.exe程序对源文件进行编译和链接,操作时只需启动相应的DDK命令行程序,进入待编译的源文件目录,执行Build命令即可得到.sys文件。 Build命令实际上是调用了一个nmake程序,nmake程序随后调用cl.exe和li
2013-06-10 18:54:59
5753

转载 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
1062

转载 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
1256

转载 Windows 驱动与驱动之间的通信
本文主要介绍 windows NT 驱动之间利用 CTL_CODE 如何通信. 一般来讲, 用户态的应用程序通过调用 CreateFile 和 DeviceIOControl 就可以和内核态驱动之间进行通信, 如果是内核态的一个驱动程序想和另外一个驱动程序进行类似操作又如何实现呢, 接下来会做详细的说明.主要的思路是首先得到另外一个驱动的 handle, 再构建一个 IRP, 赋予必要的参
2013-04-11 17:29:21
1886

转载 MASM64里怎么调用带多个参数的自定义的子程序?
请看这里http://www.x64asm.com/viewthread.php?tid=28CreateWindowExA函数就是超过4个参数的.四个参数后的其他参数依次压入堆栈,其中看到64位下长度为8指针.如: ;开始创建窗口 sub rsp,84H xor rcx,rcx
2013-04-08 12:45:00
1558

原创 函数调用约定(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
1231

原创 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
1820

原创 Windows NT引导过程源代码分析
Windows 引导过程Windows 内核中的各个组件和各种机制在起作用以前,必须首先被初始化。此初始化工作是在系统引导时完成的。当用户打开计算机的电源开关时,计算机便开始运行,但操作系统并不立即获得控制权,而是BIOS 代码首先获得控制,它执行必要的硬件检测工作,并允许用户通过一些功能键来配置当前系统中的硬件设置,甚至诊断硬件问题,然后才将控制权交给操作系统。1.1 内核加载在In
2012-08-11 19:49:17
5803

转载 驱动开发基础资料 ( 精华总结)
1、三种类型的WDM驱动程序 总线驱动程序(bus driver) 功能驱动程序(function driver) 过滤驱动程序(filter driver)2、其他分类方法 类驱动程序(class driver) 端口驱动程序(port driver) 小端口驱动程序(miniort driver)3、驱动程序对象(DRIV
2012-07-08 02:18:14
1390

转载 驱动和应用层的三种通信方式 (学习)
驱动程序和客户应用程序经常需要进行数据交换,但我们知道驱动程序和客户应用程序可能不在同一个地址空间,因此操作系统必须解决两者之间的数据交换。驱动层和应用层通信,主要是靠DeviceIoControl函数,下面是该函数的原型:BOOL DeviceIoControl ( HANDLE hDevice, // 设备句柄 DWORD dwIoControlCode, // IOCTL请求
2012-07-08 02:14:48
1495

转载 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
2205

转载 windbg命令解释
inDbg 文档翻译----85cc682/NetRochttp://netroc682.spaces.live.com/!processfields!processfields 扩展命令显示执行进程块(EPROCESS)中字段的名字和偏移。语法!processfields DLLWindows NT 4.0
2012-06-29 22:23:07
5475

原创 创建线程函数区别CreateThraed/_beginthreadex/AfxBeginThread(重点理解)
(1)CreateThread函数CreateThread:是Windows的API函数(SDK函数的标准形式,直截了当的创建方式,任何场合都可以使用),提供操作系统级别的创建线程的操作,且仅限于工作者线程。不调用MFC和RTL的函数时,可以用CreateThread,其它情况不要使用。因为:C Runtime中需要对多线程进行纪录和初始化,以保证C函数库工作正常。MFC也需要知道新线
2012-06-23 15:56:58
1232

转载 构造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
2240

转载 经典文章-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
4485

转载 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
1322

转载 制作精简Linux(精华)
一,什么是BabyLinux二,为什么要做这样一个linux三,什么人适合读这篇文档四,应该具备的知识五,linux系统引导过程简介六,编译内核七,编译busybox八,制作根文件系统九,制作ramdisk映象文件十,内核与busybox的整合十一,安装测试和内容调整十二,babylinux中的BUG十三,接下来要做的事情十四,参考文献一
2012-06-07 22:16:18
2396

转载 IPC空连接测试代码
//****************************************************//****** 网蝉工具--135弱口令猜解器 ******//ip.txt纪录要猜测的IP地址。//user.txt纪录要猜测的用户名。//password.txt纪录要猜测的密码。//3个文件格式为标准的字典文件, 方便与修改和承接其他扫描器扫出的结果。//**
2012-06-07 22:06:57
1697
原创 利用unrarlib库实现对加密rar文件的密码爆力破解
http://my.oschina.net/u/213072/blog/52053http://blog.csdn.net/cq_3964/article/details/5737089
2023-03-07 19:41:46
759
1
原创 基于ObRegisterCallbacks实现的线程和进程监控及其保护
要实现监控系统线程和进程,并实现对指定线程和进程的保护,在 32 位系统上可以使用 HOOK 技术,HOOK 相关的函数来实现。但是,到了 64 位平台上,就不能继续按常规的 HOOK 方法去实现了。好在 Windows 给我们提供了 ObRegisterCallbacks 内核函数来注册系统回调,可以用来注册系统线程回调,监控系统的线程创建、退出等情况,而且还能进行控制;也可以用来注册系统进程回调,可以监控系统的进程创建、退出等情况,而且也能进行控制。这使得我们实现保护指定线程、进程不被结束,提供了可
2021-02-23 17:09:25
3746
1
原创 Win10禁用驱动程序强制签名方法
1.点击通知,找到并进入“所有设置”。2.在所有设置中找到并进入“更新和安全”3.找到恢复,点击“高级启动”下的“立即重启”,重启电脑。4.重启后选择“疑难解答”。5.选择“高级选项”6.选择“启动设置”。7.点击“重启”。8.按提示输入“7”禁用驱动程序强制签名。...
2020-06-03 17:22:47
3772
转载 从恶意软件获得的新姿势——通过rundll32.exe执行js原理详细分析
今年7月份,国外研究机构发现了一个比较新型的恶意软件,这个恶意软件不会在系统上安装任何文件,而是藏身在windows的注册表中通过rundll32.exe执行JavaScript代码。听上去确实很有意思,通过rundll32.exe来执行js代码,那么它究竟是怎么实现的呢?我们一起来研究下。实现代码很简单 1 rundll32.exejavascript:...
2020-04-23 18:48:02
1093
原创 Intel指令解析规则,反汇编引擎工作原理
一、Intel保护模式、实地址模式和虚拟8086模式指令格式(x86) 图在Intel手册Volume2 2.1章节 1.1)Instruction Prefixes:指令前缀,可选项,每个前缀一个字节,可选0个前缀到4个不等;指令前缀分为四组,每组都允许设置指定的前缀代码。 Group 1:锁定和重复前缀。 Group 2:段...
2020-04-09 10:27:46
1385
转载 Collecting User-Mode Dumps
Starting with Windows Server 2008 and Windows Vista with Service Pack 1 (SP1), Windows Error Reporting (WER) can be configured so that full user-mode dumps are collected and stored locally after a use...
2018-03-27 17:45:15
876
winhex编辑器
2014-03-29
w32dsm静态反汇编工具
2014-03-29
OllyDBG_1.10
2014-03-29
PEiD 0.94版本
2014-03-29
漫谈兼容内核
2013-05-02
驱动数字签名
2013-01-06
bochs 2.6 source code
2012-09-27
Import REConstructor V1.4和V1.6两个版本
2009-02-01
万能图标提取器 V1.0(100%不变色)
2009-02-01
win2000API学习资料
2009-02-01
Asp 文件加密器(MyAsp) v2.0,网马免杀,免杀
2009-02-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人