分类: |

任务门,调用门,中断门,陷阱门

每个任务有一个任务状态段TSS,用于保存任务的有关信息,在任务内变换特权级和任务切换时,要用到这些信息。为了控制任务内发生特权级变换的转移,为了控制任务切换,一般要通过控制门进行这些转移。本文将介绍任务状态段和控制门。
<一>系统段描述符
系统段是为了实现存储管理机制所使用的一种特别的段。在80386中,有两种系统段:任务状态段TSS和局部描述符表LDT段。用于描述系统段的描述符称为系统段描述符。
1.系统段描述符的格式
系统段描述符的一般格式如下表所示。

查看更多...

Tags: 人物们 调用门 中断门 陷阱门

分类:内核探究 | 固定链接 | 评论: 0 | 查看次数: 8362

引导程序的编写

   对于一个操作系统来说,如果没有一个引导程序是无法工作的。但是,引导程序却往往不被认为是操作系统的一部分。这也是为什么我们在安装多个操作系统的时候可以使用linux来引导windows,也可以使用windows的引导程序引导linux。但是,这里的引导是有附加条件的。那就是你必须做一些改动。不过,这个不是我们要讨论的。
    那么,什么是引导程序呢?引导程序到底做了那些工作?他有起到了什么作用?有一个比喻是很贴切的。那就是我们可以把引导程序想像成药引子,如果说操作系统被看成是一副中药的话。
    那么引导程序做了那些工作呢?不同的引导程序实现的具体功能是不一样的。比如GRUB和NTLD的功能就千差万别。不过有一句话道出了其中的共性,那就是“一个好的引导程序相当于一个小的操作系统”。
    GRUB就是一个好的引导程序,他有shell,可以访问多种文件系统(包括ext2、FAT12/16/32、iso等等)。他甚至还包含了简单的内存管理。
    不过无论他多么强大,他也只是一个引导程序。我们现在就来看一下如何写我们自己的引导程序。

查看更多...

分类:破解调试 | 固定链接 | 评论: 0 | 查看次数: 9176
一 :关于指针和堆的内存分配 
先来介绍一下指针 : 指针一种类型,理论上来说它包含其他变量的地址,因此有的书上也叫它:地址变量。既然指针是一个类型,是类型就有大小,在达内的服务器上或者普通的PC机上,都是4个字节大小,里边只是存储了一个变量的地址而已。不管什么类型的指针,char * ,int * ,int (*) ,string * ,float * ,都是说明了本指针所指向的地址空间是什么类型而已,了解了这个基本上所有的问题都好象都变的合理了。 

在C++中,申请和释放堆中分配的存贮空间,分别使用new和delete的两个运算符来完成: 
指针类型 指针变量名=new 指针类型 (初始化); 

查看更多...

分类:c/c++ | 固定链接 | 评论: 0 | 查看次数: 6407

new和malloc的区别(转)

1、new 是c++中的操作符,malloc是c 中的一个函数

2、new 不止是分配内存,而且会调用类的构造函数,同理delete会调用类的析构函数,而malloc则只分配内存,不会进行初始化类成员的工作,同样free也不会调用析构函数

3、内存泄漏对于malloc或者new都可以检查出来的,区别在于new可以指明是那个文件的那一行,而malloc没有这些信息。

查看更多...

分类:破解调试 | 固定链接 | 评论: 0 | 查看次数: 6306

C++列举指定进程的模块

本文起源于这样一个问题,如何得到某个EXE中加载的某个DLL的基址(BaseAddress)呢?有人回答,用远程注入,CreateRemoteThread之后再GetModuleHandle,因为这个回答实现的复杂性和不确定性,此人没能将发帖者的可用分转换为自己的专家分。没错,这就是黄色论坛CSDN(床上等你)

很多人都用过CreateToolhelp32Snapshot,做什么呢?列举进程对吧?嘻嘻,其实它也可以用来列举某一个进程加载的模块噢,下面给出参考代码

BOOL ListProcessModules( DWORD dwPID ) 

查看更多...

分类:c/c++ | 固定链接 | 评论: 0 | 查看次数: 7724

对待64位windows

还记得640K内存就足够的好日子吗?那记得是什么时候,它显得捉襟见肘了吗?这是一个日新月异的时代,我们发明了各种方法,以在有限的寻址空间内,映射更多的内存:首先,是“扩充内存”(EMM),起初它只是一张硬件“卡”,以64K或128K HASH(0x80b9d4)为界,切换64K的HASH(0x80b9d4)页到DOS寻址空间内;然后,我们又看到了“扩展内存”(XMS),它使保护模式映射到更多的64K区域成为了可能。而所有这些,都只是给了程序一个权宜之计,我们真正需要的是一个更大的寻址空间,这时,32位寻址就成了大众欢迎的、暂时的“止痛片”。

如果640K对任何人都足够,那么2GB(Windows实际上可寻址到4GB)对大多数应用程序来说都绰绰有余,但是,仍有一些程序要求越来越大的寻址空间,这样,人们又发明了寻址窗口扩展(Address Windowing Extension AWE)和实体地址延伸(Physical Address Extension PAE)等等映射技术。今天,64位处理器和两个新版本的64位Windows来到了我们身边,与16位到32位的变化不同的是,大多数今天我们使用的程序,都没有突破2GB的寻址空间,那么新处理器有什么用呢?我们何必在意它呢。

诚然,在可预见的未来,我们将继续编写32位程序,但不管怎么说,在这两年里,64位CPU进入桌面电脑已成了不争的事实。AMD Athlon64和Opteron处理器随处可见,而主板生产商也推出了相应的主板,价格上与同级别32位主板相近;Intel,一开始掉在了安腾处理器(Itanium)的钱眼里,为了赶上老对手,匆匆于2004年底发布了“32位扩展架构”的至强(Xeon)处理器,技术名称为IA32E或EM64T。由于Intel的安腾处理器缺乏向后兼容,现有的二进制代码运行效率不高,一如当年Win16到Win32的转变,导致OS/2的陨落和Windows在桌面的崛起一样,AMD此时看到了也抓住了这个机会。虽然Intel的处理器可高效运行本地(native)64位代码,但从经验来说,32位程序在AMD64和EM64T架构上效率都不是很高,而Microsoft微软,由于吸取了操作系统源代码兼容性的教训,所以它从现今的Win32源代码从发,构建一个64位版本的系统应该不是件难事。

查看更多...

分类:破解调试 | 固定链接 | 评论: 0 | 查看次数: 10739

PEB结构----枚举用户模块列表(图)

本文在主主要以上述两篇文章为基础,对PEB的结构进行了详细的分析,重点是在揭示PEB结构中的list—entry的应用,并且以C语言Code进行实证。 
  本文主要分为四个部分,第一部分说明PEB地址如何获得;第二部分说明PEB的框架结构;第三部对PEB中的List-Entry结构进行了详细剖析,第四部分给出了枚举用户模块列表的代码。

  --------------------------------------------------------------------------------------------------------------

查看更多...

分类:破解调试 | 固定链接 | 评论: 0 | 查看次数: 7174

为PE文件添加节(汇编代码)

.386
.model flat,stdcall
option casemap:none
include windows.inc
include kernel32.inc

查看更多...

分类:破解调试 | 固定链接 | 评论: 0 | 查看次数: 8015

Downloading A File Winsock Http - C

#include <stdio.h>
#include <winsock2.h>
#include <windows.h>
#include <strings.h>

查看更多...

分类:c/c++ | 固定链接 | 评论: 0 | 查看次数: 8108

用户层关闭杀毒软件安全保护

只是一个小小的思路,老鸟自行飘过,呵呵

我写这个纯粹是hacker精神,如果被滥用做病毒木马一类的邋遢东东,可跟偶没关系哦。

原理very简单,我发现瑞星监控主要在RavMonD进程中,如果打破其与内核的联系, 则

查看更多...

分类:c/c++ | 固定链接 | 评论: 0 | 查看次数: 6593

WINDBG使用教程

[size=24][url=http://www.zeroplace.cn/article.asp?id=546]windbg命令解释[/url][/size]

什么是[b]WinDBG[/b]? 

查看更多...

Tags: WINDBG使用教程 WINDBG教程

分类:破解调试 | 固定链接 | 评论: 0 | 查看次数: 9691

小览call stack(调用栈)

栈在计算机领域中是个经常提到的名词,数据结构中有栈;网络传输中有协议栈。今天我们讨论的调用栈(call stack),指的是在程序的执行过程中存储函数调用信息的动态数据结构。

 

这个定义可能太抽象了一些,在给出具体的例子之前,请大家先思考一个问题,哪些信息是函数调用过程中所需要的?或者这么问,一个编译器,在面对一个函数的调用指令时,该生成哪些代码?

查看更多...

分类:破解调试 | 固定链接 | 评论: 0 | 查看次数: 8144

进程防调试的处理办法

1.程序窗口句柄检测
原理:用FindWindow函数查找具有相同窗口类名和标题的窗口,如果找到就说明有OD在运行
//********************************************
//通过查找窗口类名来实现检测OllyDBG
//********************************************

查看更多...

分类:破解调试 | 固定链接 | 评论: 0 | 查看次数: 7388

谈解决ARP攻击的方法

现在ARP不只是协议的简写,还成了掉线的代名词。很多网吧和企业网络不稳,无故掉线,经济蒙受了很大的损失。根据情况可以看出这是一种存在于网络中的一种普遍问题。出现此类问题的主要原因就是遭受了ARP攻击。由于其变种版本之多,传播速度之快,很多技术人员和企业对其束手无策。下面就来给大家从原理到应用谈一谈这方面的话题。希望能够帮大家解决此类问题,净化网络环境。

  在局域网中,通过ARP协议来完成IP地址转换为第二层物理地址,实现局域网机器的通信。ARP协议对网络安全具有重要的意义。这是建立在相互信任的基础上。如果通过伪造IP地址和MAC地址实现ARP欺骗,将在网络中产生大量的ARP通信量使网络阻塞、掉线、重定向、嗅探攻击。

  我们知道每个主机都用一个ARP高速缓存,存放最近IP地址到MAC硬件地址之间的映射记录。Windows高速缓存中的每一条记录的生存时间一般为60秒,起始时间从被创建时开始算起。默认情况下,ARP从缓存中读取IP-MAC条目,缓存中的IP-MAC条目是根据ARP响应包动态变化的。因此,只要网络上有ARP响应包发送到本机,即会更新ARP高速缓存中的IP-MAC条目。如:X向Y发送一个自己伪造的ARP应答,而这个应答中的数据发送方IP地址是192.168.1.3(Z的IP地址),MAC地址是DD-DD-DD-DD-DD-DD(Z的真实MAC地址却是CC-CC-CC-CC-CC-CC,这里被伪造了)。当Y接收到X伪造的ARP应答,就会更新本地的ARP缓存(Y可不知道被伪造了)。那么如果伪造成网关呢?

查看更多...

分类:网络安全 | 固定链接 | 评论: 0 | 查看次数: 5761

老调重弹 Microsoft Sql public利用

本人注:很老的技术了,大部分是对sql2000的测试,对sql2005不是很有效果
1.
xp_runwebtask msdb.dbo.mswebtasks
可以允许'PUBLIC'权限进行Insert、Update、Delete和Select操作

查看更多...

分类:网络安全 | 固定链接 | 评论: 0 | 查看次数: 5931
针对Web应用的攻击——SQL注入为人所熟知,安全专家对被越来越多的黑客所利用的这一方式长期以来都非常警惕。SQL注入是一种人为向Web表单的输入框中加入恶意的结构化查询语言(SQL)代码以试图获取资源的访问权限或是改变数据的安全攻击。

它需要的唯一条件是网络端口80处于开放状态。即使有设置妥当的防火墙,这一端口也是少数的几个允许流量的通道之一。最近发生的SQL注入案例是Heartland Payment Systems公司的服务器攻击事件,它让网络管理人员意识到SQL注入威胁的严重程度并且开始重新审视他们对这一攻击的防范措施。

防御SQL注入攻击的主要方法是使用参数化的存储程序。当这些程序被使用时,将以参数和用户定义的子程序的形式对数据库发出请求,这就代替了需要用户直接提供数值的命令方式。SQL参数的优势不光体现在输入的安全性上,而且他们还能够很大程度地减少SQL注入攻击发生的成功几率。

查看更多...

分类:网络安全 | 固定链接 | 评论: 0 | 查看次数: 6029

在Ring3上实现文件碎甲(文件解锁)

作者:cbns888
一.概述:
如果一个病毒文件被植入正在运行的进程中,我们想要清除它时系统总会提供无法删除;有时编辑文件的进程被意外中止而文件句柄没有正确释放,导致此文件无法进行改写操作。现在我们会使用Unlocker之类的小工具去解锁,但在编写程序的可能会需要把这些功能包含在自己的代码中,本文就是自己写代码实现”如何关闭已经被加载的DLL或是正在使用的文件”功能,使用文章中的方法能很方便的完成文件解锁功能。
按最初的想法准备在ring0中完成这些功能,但在查找资料的过程中发现既然我们能在ring3中做,为什么不让这些方法更通用一些呢。其实功能实现并不难,主要是前期从哪里入手比较麻烦。
我们知道无论是动态库或是文件在加载到进程中时,总会有一个指向它的指针,如果让进程释放这段指针,那么这些文件就不会被系统锁定。下面将是我们的需要实现文件解锁功能而分解出的步骤

查看更多...

分类:破解调试 | 固定链接 | 评论: 0 | 查看次数: 6190

Ewebeditor编辑器各版本

最近看了一些关于ewebeditor这个编辑器,关于此的漏洞还是不少,其实很多人在做安全检测的时候大多偏向于注入方面,有的时候关注下编辑器方面还是不错的,目前主要有asp、aspx、php等版本

首先我们来说下asp版本,如:www.xxx.com/admin/ewebeditor/admin_login.asp,这是一个关于此的编辑器后台,用户名当然也是默认的,如果不对大家可以下载它的数据库试一试,或许能成功的解密MD5,类似:

www.xxx.com/ewebeditor/admin_login.asp

查看更多...

分类:网络安全 | 固定链接 | 评论: 0 | 查看次数: 7172

IRP结构

IRP 是 I/O request packet 的缩写,即 I/O 请求包。驱动与驱动之间通过 IRP 进行通信。而使用驱动的应用层调用的 CreatFile,ReadFile,WriteFile,DeviceIoControl 等函数,说到底也是使用 IRP 和驱动进行通信。

     可以这么看这个IRP,这首先是一个定义好的数据结构,里面含有一个叫IO_STACK_LOCATION 结构组成的数组,每个元素是一个IO_STACK_LOCATION 结构,这个结构组成的数组的数量是有你irp包所在的驱动的层数决定的,如果此是所处的驱动程序的层数是2,也就是说下边还有一个驱动程序,数组就有两个IO_STACK_LOCATION 结构,可以用函数PIO_STACK_LOCATION pIrpStack = IoGetCurrentIrpStackLocation( pIrp );得到此时所处驱动的IO_STACK_LOCATION 结构
[img]http://photo.hexun.com/p/2005/0715/2272/b_37F41840B9EB111B.jpg[/img]
此为一个IRP的整体结构,其中的Tail部分分为三部分组成,如下图:

查看更多...

分类:内核探究 | 固定链接 | 评论: 0 | 查看次数: 7016
信息来源:*八进制信息安全团队
备注:获取文件在扇区的位置后,向磁盘驱动发送srb命令读写扇区,来穿透冰点等还原软件。
编译时注意:FileSystemControl的数据结构需要自己添加。
警告:本代码有一定的危险性,纯粹为了研究、学习,勿滥用!

查看更多...

Tags: 穿透还原 机器狗 文件读写驱动

分类:破解调试 | 固定链接 | 评论: 0 | 查看次数: 7232