自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xuplus的专栏

三人行必有我师……

  • 博客(50)
  • 资源 (25)
  • 收藏
  • 关注

转载 DLL相关知识

  MFC的DLL   一般的,在介绍Windows编程的书中讲述DLL的有关知识较多,而介绍MFC的书则比较少地提到。即使使用MFC来编写动态链接库,对于初步接触DLL的程序员来说,了解DLL的背景知识是必要的。另外,MFC提供了新的手段来帮助编写DLL程序。所以,本节先简洁的介绍有关概念。   DLL的背

2008-04-30 10:46:00 824

原创 不错的MFC教程

http://www.vczx.com/tutorial/mfc/mfc.php

2008-04-30 10:45:00 702

原创 字节对齐预编译指令的复杂用法及应用场合

  我看到这样的:   #pragma   pack(,[n])       预编译指令,看了msdn后还是不甚明白,应用场合,#pragma   pack()功能是局部调整结构成员内存位置对齐用的.     因为操作系统为了加快内存访问速度,缺省时总是将结构成员分配在整数对齐边界的内存位置.         #pragma   pack()可以改变这一缺省行为.   除了一些Hook程序

2008-04-29 17:01:00 1135

原创 什么是字节对齐,为什么要对齐?

现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。     对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。比如有些架构的CPU

2008-04-29 14:10:00 1274 1

原创 内存分配相关,new , GlobalAlloc, VirtualAlloc, HeapAlloc

Windows 内存模式从用户的角度来看,WIN32的内存管理是非常简单和明了的。每一个应用程序都有自己独立的4G地址空间,这种内存模式叫做“平坦”型地址模式,所有的段寄存器或描述符都指向同样的起始地址,所有的地址偏移都是32位的长度,这样一个应用程序无须变换选择符就可以存取自己的多达4G的地址空间。这种内存管理模式是非常简洁而便于管理的,而且我们再不用和那些令人讨厌的“near”和“far”

2008-04-29 13:24:00 3366

原创 ddk source文件编写,加入库

我看了你的程序了,解决办法(在windows   xp   sp2+ddk   xp上编译通过)如下: 在sources文件中 *去掉   DRIVERTYPE=WDM   这一行 **另外把   TARGETLIBS   要设置对.我把它改成了使用环境变量的,这样比较灵活。 最终的sources文件如下 TARGETNAME=pmoni

2008-04-28 13:59:00 2939

原创 宏内核 VS 微内核

Minix与Linux创建新进程的过程比较可以看出二者之间的区别,Minix是建立在分模块之上的,模块之间以信息传递联系。Linux内部也是分模块的,但在运行的时候,他是一个独立的二进制大映像,其模块间的通讯是通过直接调用其他模块中的函数实现的。宏内核与微内核的区别也就在这吧,微内核是一个信息中转站,自身完成很少功能,主要是传递一个模块对另一个模块的功能请求,而宏内核则是一个大主管,把内存管理,文

2008-04-24 09:18:00 1015

原创 ZwSetSystemInformation的SystemLoadAndCallImage 加载驱动的缺陷

绕过监控进入ring0安装驱动这部分是重中之重。由于几乎每个主动防御系统都会监控未知驱动的加载和试图进入ring0的举动, 而我们在第一,第二和第三部分绕过主动防御要做的处理,都必须需要ring0权限。因此监控进入ring0,是一个独立的话题,也是我们实现前三个部分需要的条件。直接添加注册表项,ZwLoadDriver安装驱动,是几乎要被任何主动防御系统报警。必须要采用一些隐蔽的或者是为人不知的方

2008-04-23 09:13:00 2349 1

原创 病毒的行为分析帮助理解驱动pe等

来哇,病毒也整主动防御了!<!-- if (!document.phpAds_used) document.phpAds_used = ,; phpAds_random = new String (Math.random()); phpAds_random = phpAds_random.substring(2,11); document.wr

2008-04-22 20:21:00 1137

转载 zwload隐藏服务加载驱动

五、隐藏服务:    普通情况下加载驱动需要 OpenSCManager->CreateService->StartService,这样驱动就会跑到服务管理器中去注册一下自己,并且要隐藏这样加载驱动的服务,不是不行,只是太麻烦而且没效率了。要hook一大堆的服务函数。不过在逆向IS的时候发现了一个不需要去服务管理器注册而直接加载驱动的方法。就是使用ZwLoadDriver(这个函数通常是ring0

2008-04-22 16:53:00 2309

转载 WDM系统入门基础篇

WDM(Win32 Driver Model),即Win32驱动程序模型,是Microsoft力推的全新驱动程序模式,旨在通过提供一种灵活的方式来简化驱动程序的开发,在实现对新硬件支持的基础上减少并降低所必须开发的驱动程序的数量和复杂性。   除了通用的平台服务和扩展外,WDM还实现了一个模块化的、分层次类型的微型驱动程序结构(见图1)。类型驱动程序实现了支持通用总线、协议或设备类所需的功能性接口

2008-04-22 10:37:00 2870

转载 重建 PE 文件的输入表 TiTi

标题:重建 PE 文件的输入表原著:TiTi/BLiZZARD 翻译:Sun Bird [CCG] 日期:2000年5月24日 1. 前言 ======= 大家好 :) 我之所以写这篇短文,是由于我在 Dump 时发现,很多加压、加密软件都使得输入表(Import Table)不可用,所以 Dump 出的可执行文件必须要重建输入表。而在普通的讲授 Win32 汇编的站点上我没有

2008-04-21 18:52:00 2390

转载 驱动版Hello World

我们学习程序设计,都是从“Hello World”开始的,驱动程序也不例外,今天我就写一个驱动版的“Hello World”来热热身,目的希望大家能对驱动程序的基本框架有所了解。驱动程序分为2类,一个是Kernel模式驱动,另一个是Windows模式驱动,2种模式本质是相同,但细节不同,本文介绍的是内核模式驱动和驱动程序的安装、使用。驱动程序同普通的EXE,DLL一样,都属于PE文件,而且

2008-04-21 16:39:00 763

转载 使用ZwLoadDriver加载驱动

#include #include typedef struct _LSA_UNICODE_STRING {    USHORT Length;    USHORT MaximumLength;    PVOID Buffer;} LSA_UNICODE_STRING, *PLSA_UNICODE_STRING; typedef LSA_UNICODE_STRING UNICODE_STRING,

2008-04-21 16:38:00 3808

转载 一个简单的tcp filter的例子

     这两天版面日渐萧条,我只好硬着头皮把我自己的一个尚在开发,非常不成熟的东西拿出来了。    前面我曾经就网络加密这个议题讨论过,那个时候我提出的方法是imd,9x下就是利用hook_device_service,用这些方法的一个好处就是,接收数据比较低层,直接得到的就是mac数据,而且可以知道是哪块网卡上来的,而且,可以加密各种数据帧,ipx,ip什么的都不在话下。因为我所遇到的加密

2008-04-18 17:10:00 1249

原创 驱动学习笔记bosch

windows内核驱动分为三种类型:总线驱动,过滤驱动, 功能驱动。各自作用如下:总线驱动:就是驱动总线的,负责发现设备和管理设备。过滤驱动:就是在消息(irp)到达目的地之前将其截获,可以改变最终驱动的行为。功能驱动:实现最终的设备功能。我们要做一个虚拟的串口驱动程序,大家就很清楚,这个设备是一个虚拟的,虚拟的就不能在任何总线上面了。这样子,我们就先虚拟一个总线出来,然后

2008-04-18 11:19:00 1078

转载 win32使用OutputDebugString输出调试信息的方法

在win32程序中可以使用函数OutputDebugString输出调试信息。输出的结果可以在vs的集成环境中看到,也可以使用工具DbgView.exe捕捉结果。函数的原形如下:OutputDebugStringThe OutputDebugString function sends a string to the debugger for display. void Output

2008-04-18 11:00:00 3191

转载 PE文件格式

PE文件格式引言分析内核版本是v0.3.1内核ntoskrnl.exe是一个可执行的文件即PE文件,freeldr在引导时候将这个文件读入到物理内存的0x200000处,整个读取过程采用了可执行文件加载器类是的方式,因此要搞清楚加载器如可工作,首先是要搞清楚PE文件格式。以下是PE文件格式的转贴标 题: 【翻译】“PE文件格式”1.9版 完整译文(附注释)作 者: ah00

2008-04-17 19:02:00 1647

原创 0xc0000008 invalid handle 错误原因纪实

 关于调试时程序报 0xC00000008: Invalid Handle 错误的原因。前几天在调试一个产品时,进入到某一个函数调试,在函数返回时, IDE开始报 "叉叉叉...0xC00000008: Invalid Handle " 的调试错误,此时按F10, 不能继续往下执行,只能转到汇编模式调试……这不明白着流氓吗!?我怎么能看得懂汇编……来劲了,非要弄明白到底是什么原因导致了报这个叉

2008-04-17 17:29:00 12533 1

转载 导出表 export table

理论:当PE装载器执行一个程序,它将相关DLLs都装入该进程的地址空间。然后根据主程序的引入函数信息,查找相关DLLs中的真实函数地址来修正主程序。PE装载器搜寻的是DLLs中的引出函数。DLL/EXE要引出一个函数给其他DLL/EXE使用,有两种实现方法: 通过函数名引出或者仅仅通过序数引出。比如某个DLL要引出名为"GetSysConfig"的函数,如果它以函数名引出,那么其他DLLs

2008-04-17 11:51:00 1653

转载 加壳相关的一点点知识,跟病毒类似

一。免杀1。最简单的:加壳Svkp,Pelock,Telock,Asprotect等等牛壳,或者一些私人壳如免役007之类的,虽然方便,但免杀效果不一定好,因为现在杀毒会把壳的特征当病毒或者把加壳后的特征也收录,而且加壳的不能用于内存代码注射2。手工免杀用CCL一类的定位工具定位出特征码,不同的杀毒的特征录入是不一样的,而且不止一处,所以免杀是体力活;然后逐一修改定位出来的特征码,例如修改入口(代

2008-04-17 11:39:00 926

原创 今天发现了vmware6.o ace的一个bug

今天发现了vmware6.o ace的一个bug。今天为了确定rky2 .net加密后的程序在没有安装.netframework的系统上运行时会出现什么样的错误提示,我打开了虚拟机环境。我从本机选中要运行的加密后程序,通过拖拽到虚拟机的xp上运行,但就是拖拽不成功,显示“Cannot determine file size . or....” , 我很纳闷,以前拖拽过两次,成功啊!几天

2008-04-16 14:43:00 840

转载 CreateRemoteThread和WriteProcessMemory技术

CreateRemoteThread和WriteProcessMemory技术 示例程序:WinSpy另一种注入代码到其他进程地址空间的方法是使用WriteProcessMemory API。这次你不用编写一个独立的DLL而是直接复制你的代码到远程进程(WriteProcessMemory)并用CreateRemoteThread执行之。让我们看一下CreateRemoteThread

2008-04-16 10:27:00 8083 2

转载 可以参考用来写自己的猛壳

可以参考用来写自己的猛壳 NtoskrnlThis article is just for fun, dont take it too serious. Some time ago a friend

2008-04-15 21:08:00 1290 1

转载 如何合并DLL到你的EXE程序中

引用张尹 的 如何合并DLL到你的EXE程序中作者:任明汉  转自vckbase下载源代码 前言   你可能不希望在发布程序时附带上一个外部的 DLL,因为可能会有些用户在无意中把 DLL 删除了而造成 EXE 不能正确运行,也有可能该 DLL 会被别人拿去使用,也有可能,此 DLL 会成为破解者破解你的程序的突破口。无论出于何种原因,如果你想把一个 DLL 合并到一个 EXE 中

2008-04-15 21:06:00 8833

转载 获得重定位表&调试表的函数—from pediy

和前面一个类一样,这两个函数是对我前面那个类的更新!这次不和那个贴放一块了,我觉得重定位好像还是有点不足的地方,但是已经完全正常,就是不完美!    喜欢的就拿去用吧!这两类函数可是网络上的稀罕货!简单先说一下重定位的结构:地址:DWORD类型大小:DWORD类型内容:WORD数组主要来说内容;比如,内容的WO

2008-04-15 21:05:00 1047

转载 完美界面换肤解决方案 vc调用delphi皮肤库

http://www.vckbase.com/code/viewcode.asp?id=3120VC里边界面换肤是比较头痛的问题,网上有不少介绍,但是大多数仅仅提供Dll或者Lib,有代码的又有很多问题,效果很差。这几日突然想到一个解决方案,有源码,皮肤有一百多个,就是采用Delphi里边成熟的界面组件vclskin,将它做成Dll来用,效果相当不错,赶紧介绍给大家。zhai_hong_tao

2008-04-15 17:39:00 1349 1

转载 windows内存结构

  NT/2000的每一个进程都在启动时分配了4GB(0xFFFFFFFF)的虚拟内存。其中的某些部份实际上是由所有进程共享的,例如核心和设备驱动程序区域。但它们都会被映射到每个进程的虚拟地址空间里。实际上没有进程分配到4GB的物理内存,而是仅当需要时才分配物理内存。因此每一个进程都有各自的4GB虚拟内存,编址范围从0x00000000到0xFFFFFFFF。其中,0x00000000-0x000

2008-04-15 17:10:00 616

转载 从内存中加载并启动一个exe

windows似乎只提供了一种启动进程的方法:即必须从一个可执行文件中加载并启动。而下面这段代码就是提供一种可以直接从内存中启动一个exe的变通办法。用途嘛, 也许可以用来保护你的exe,你可以对要保护的 exe 进行任意切分、加密、存储,只要运行时能将exe的内容正确拼接到一块内存中,就可以直接从内存中启动,而不必不安全地去生成一个临时文件再从临时文件启动进程。另外这段代码也提供了一种自己写ex

2008-04-15 17:07:00 1157

原创 VirtualAllocEx 跨进程读写数据 代码注入

VirtualAllocEx 函数的作用是在指定进程的虚拟空间保留或提交内存区域,除非指定MEM_RESET参数,否则将该内存区域置0。 LPVOID VirtualAllocEx( HANDLE hProcess, // 申请内存所在的进程句柄 LPVOID lpAddress, // 保留页面的内存地址;一般用NULL自动分配 SIZE_T dwSize, // 欲分配的内存大小,字节

2008-04-15 16:33:00 7465

转载 重定位相关知识,为什么要重定位

在NT环境下隐藏进程,也就是说在用户不知情的条件下,执行自己的代码的方法有很多种,比如说使用注册表插入DLL,使用Windows挂钩等等。其中比较有代表性的是Jeffrey Richer在《Windows核心编程》中介绍的LoadLibrary方法和罗云彬在《windows环境下32位汇编语言程序设计》中介绍的方法。两种方法的共同特点是:都采用远程线程,让自己的代码作为宿主进程的线程在宿主进程的地

2008-04-15 13:25:00 11844

转载 通过病毒原理较好的阐述了如何在pe中添加一个section

PE 文件的修改和感染策略  既然已经能够搜索磁盘及网络共享文件中的所有文件,要实现寄生,那么自然下一步就是对搜索到的PE文件进行感染了。感染PE的很重要的一个考虑就是将病毒代码写入到PE 文件的哪个位置。读写文件一般利用Win32 API CreateFile、CreateFileMapping、MapViewOfFile等API以内存映射文件的方式进行,这样可以避免自己管理缓冲的麻烦,因而为较

2008-04-15 13:17:00 2545

转载 重定位的原理&实现

重定位  病毒自身的重定位是病毒代码在得以顺利运行前应解决的最基本问题。病毒代码在运行时同样也要引用一些数据,比如API 函数的名字、杀毒软件的黑名单、系统相关的特殊数据等,由于病毒代码在宿主进程中运行时的内存地址是在编译汇编代码时无法预知的,而病毒在感染不同的宿主时其位于宿主中的准确位置同样也无法提前预知,因此病毒就要在运行时动态确定其引用数据的地址,否则,引用数据时几乎肯定会发生错误。对于普通

2008-04-15 12:01:00 7619

转载 EXE文件的重定位表起作用

=====重定位表的使用方法为(我自己的理解):文件的实际装入地址-文件的建议装入地址=修正值实际装入地址+VirtualAddress+重定位项中的地址=需要重定位的代码在内存中的位置修正值+需要重定位的代码=正确的代码(只需要把地址加上修正值)只需要定位到需要重定位的代码在内存中的位置把该处的代码修改成正确的代码即可。注:上面说的代码应该是用于立即寻址的地址。=====算法:1.计算修正值(修

2008-04-15 11:40:00 3133

原创 dll的共享变量&预编译指令#pragma完全接触

dll的共享变量&预编译指令#pragma完全接触

2008-04-15 10:39:00 709

原创 对AddMessage源代码的部分解释

stardragon2007-12-03, 19:18在学习修改PE文件的源代码中,遇到这么一条语句,看了半天不懂 还请高手指教: // 得到代码偏移,用代码段起始RVA减去此段的物理偏移 // 应为程序的入口计算公式是一个相对的偏移地址,计算公式为: // 代码的写入地址+dwCodeOffset. dwCodeOffset=header-> opt_head.BaseOfCode-he

2008-04-14 21:45:00 1783 2

原创 DLL共享数据段

在主文件中,用#pragma data_seg建立一 个新的数据段并定义共享数据,其具体格式为:  #pragma data_seg ("shareddata") //名称可以                        //自己定

2008-04-14 20:39:00 11675 1

转载 对IRP的理解

对IRP的理解  驱动程序与I/O管理器通信,使用的是IRP,即I/O请求包。IRP分为2部分:1)IRP首部;2)IRP堆栈。IRP首部信息如下:IRP首部:IO_STATUS_BLOCK IoStatus         包含I/O请求的状态 PVOID AssociatedIrp.SystemBuffer 如果执行缓冲区I/O,这个指针指向系统缓冲区 PMDL MdlAddress   

2008-04-14 20:25:00 1158

原创 我的部门经理_ZhangSY

崇拜项目经理 ZhangSY

2008-04-14 20:21:00 1051

原创 文件系统驱动(IFS DDK)学习笔记

 文件系统驱动是windows系统中最复杂的驱动种类之一。它的全称 IFS DDK 是指可安装文件系统 设备驱动程序开发工具。这方面的资料非常少,我从网上找到的资料大都是文档,都是一些在学习文件系统驱动的人自己写的,几乎没有这方面的专门书籍,更不用说中文资料了。而且ifs ddk中的帮助文档没多大意义,文件系统相关的ddk帮助极其简略,很多重要的部分仅仅轻描淡写的带过。下图是我们的IFS DD

2008-04-14 20:15:00 1124

最新windows server在RAID卡上创建存储分层高清版

最新windows server在RAID卡上创建存储分层高清版, 进阶 raid卡应用的绝密资料,珍贵资料,仅此一份。

2014-08-06

51 单片机教程 & 精选代码汇编

关于51单片的经典教程。 内含30个经典的例子源代码。

2009-07-23

Windows 内核研究学习全资料 精华

想深入理解windows内核机制的一些好资料集结。 通过这些,可以让我们从内核理解windows的行为和机制。 对以后的编程和项目有很大的帮助。 也是走向“高手”的必读!

2009-07-23

SMTP邮件发送客户端(VC源码)

网上有好多介绍实现smtp发送邮件的介绍,但大部分都不能用,或者错误很多。 这个实现的非常好,支持: 1,多发送用户 2,支持附件发送 3,支持登录验证。 4,VC++代码。 希望对你有帮助。

2009-04-25

winhex数据恢复原理&实践(图解)精华

内附详细图解。 好教程。 希望对数据恢复感兴趣的朋友有用。

2008-11-14

操作系统原理上机实践指南

非常好的讲义,讲述了如何搭建研究windows内核所需要的实验环境,是研究操作系统内核不可多得的指南!

2008-06-30

Windows环境下32位汇编语言_罗文彬

《Windows环境下32位汇编语言》,罗云彬著,是了解windows底层的红宝书。 chm格式,方便携带

2008-06-20

汇编指令查询器

学习汇编的好工具!<br>可以查找一切汇编指令及其详细解释……

2008-05-13

PE 文件解析

自己写的一个逐步分析PE文件的VC例子,比较简单易懂,适合想进阶PE加密方向的同行。

2008-03-29

Visual C++6.0技术内幕.rar

Visual C++6.0技术内幕.rar<br>比较经典的学习VC6的好书。

2008-03-22

visual c++高级界面特效制作百例.rar

visual c++高级界面特效制作百例, rar格式,设计界面时的参考。

2008-03-22

vc++6游戏编程.rar

vc++6游戏编程, 这本书不错,是我自己的珍藏,在此奉献给个位。

2008-03-22

加密解密 技术内幕

加密解密 技术内幕, 我就不多说了,经典中的经典。

2008-03-22

.net 反编译工具reflector 工具

功能强大的.net 反编译工具,基本可以完全还原。包括类结构和功能函数。<br>支持.dll, exe文件。

2008-03-20

VC7转换到VC6

将VC7工程转换回VC6,内有详细说明

2008-03-07

VC++中的Rose双向工程.

VC++中的Rose双向工程 ppt 课件,<br>介绍如用用rose 实现vc工程的反向

2008-03-04

WndTap VC辅助工具

一个专门用于VC++6.0开发环境的辅助工具,能够快速切换源文件。<br>配合Visual Assixt 一起使用能够大大提高编码效率!实现源代码文件的快速切换!

2008-02-24

多线程_异步IO_RS232串口通信例子源代码

多线程_异步IO_RS232串口通信例子源代码,自己写的一个基于多线程,异步io操作串口的例子,希望对学习多线程,及串口通信的同行有帮助。

2008-02-24

accessport 串口调试工具

一个非常出色的串口调试工具,对刚开始进行串口编程的人是一个非常有用的帮助软件。能够检测计算机上所有的rs-232串口的状态,及数据……

2008-02-24

p2p原理与技术

一个系统讲解p2p原理的课件,是科技大学的知名教授的教学可见,翔实生动,是学习和了解p2p技术的好资料。

2008-02-23

Visual C++ 网络高级编程

一本系统深入学习windows下网络编程的一本好书的代码,非常难得,现与大家一起分享,共同提高进步!!!

2008-02-23

visual c++ 6.0 高级编程

一本进阶VC6非常难得的一本好书,现在发上来与大家一起分享!!!

2008-02-23

Visual.Assist.X.v10.4.1624Craked_best

最新版的Visual.Assist.X.v10.4.1624,<br>包含特别文件。<br><br>2007年12月发布。<br>功能超强,是windows下软件开发的好帮手。<br>

2008-02-20

局域网文件传输

自己编写的一个基于伯克利socket 的局域网文件传输工具,可以帮助初学网络编程的同行快速入门。<br>代码内有详细的注释,<br>基于多线程,阻塞模式

2008-02-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除