分类: |

进程PEB结构的修改实现

作者:Gxter

关于进程PEB结构前辈们给出了几篇比较详细的文章。
例如:
《JIURL玩玩Win2k进程线程篇 PEB》

查看更多...

分类:破解调试 | 固定链接 | 评论: 0 | 查看次数: 9246
我相信大家在用OD的过程中也早已发现,如果不使用Create_SUSPENDED,初始化线程在跑到入口点后,其ebx同样指向PEB结构。 

显然,我们必须进入Win32系统新进程创建的过程来找这个真相。由于我们知道初始化线程被创建后(尚未Resume)ebx就已经指向PEB了,所以要不然就是在NtCreateThread过程中,要不然就是在它前面。同时也应该在NtCreatePeb之后。因此我就在这个范围内找寻。 

应该说这里我犯了个错误,就是没有详细看CreateProcess的流程,而是使劲往NtCreateThread的内核代码看去,N多函数调用关系看得我眼花,虽然这些内核函数对线程的Context有诸多操作,但是均并不涉及其Ebx。 

查看更多...

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

c语言rar,zip无损压缩算法实现

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

  *                                 *

  *HUFF.C Huffman encode for multimedia application 8*8 pixel Ver 3 *

查看更多...

Tags: c语言Rar 无损压缩 zip压缩

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

反汇编驱动常用结构体

typedef struct _DEVICE_OBJECT {
    CSHORT Type; 0x00
    USHORT Size; 0x02
    LONG ReferenceCount; 0x04
    struct _DRIVER_OBJECT *DriverObject; 0x08

查看更多...

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

fs寄存器及kernel32.dll地址的获取

[b]FS寄存器[/b]指向当前活动线程的TEB结构(线程结构)
偏移 说明
000 指向SEH链指针
004 线程堆栈顶部
008 线程堆栈底部

查看更多...

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

学习汇编的重要意义!!

几日前,在一位仁兄的blog里看到如下一番话:其实我发现中国的教育还是有很大问题的,你们得让你们的学生认识到这门课的作用啊,有些师兄说到出去工作了才发现汇编的作用。 
  我觉得值得庆幸的是这位仁兄在在校期间的学习中及时地意识到了汇编的重要性,并做出了正确的选择。然而这位仁兄提到的“老师没有让学生认识到汇编的重要性”和“有些师兄工作了才发现汇编的重要性”这些在计算机专业教育中存在的客观事实,再次让我心情沉重! 
  为了让更多的计算机学习者意识汇编语言的重要性,我就抛砖引玉,发表一下对汇编语言的理解,希望能够让更多的计算机技术的学习者对汇编语言的作用有一个正确的认识。 
1.汇编语言 
  汇编语言是最接近于机器语言的编程语言。如果说机器语言是计算机操作的本质,那么汇编语言就是最最接近本质的语言。汇编语言操作直接面向硬件,所以,我们在使用汇编语言的时候,我们能够感知计算机的运行过程和原理,从而能够对计算机硬件和应用程序之间的联系和交互形成一个清晰的认识。这也是最能够锻炼编程者编程思维逻辑的,只有这样,学习者才能形成一个软、硬兼备的编程知识体系,这是任何高级语言都无法给予的!相对于繁复的高级语言,汇编语言指令集合更简约,指令操作更直接,从汇编开始学习更符合循序渐进的学习原理!所以,对于计算机技术初学者或者自学者,汇编语言重要性无可替代! 

查看更多...

分类:智慧人生 | 固定链接 | 评论: 0 | 查看次数: 7113
Writer:yykingking

 Rk always use HOOK important functions to hide something , and some ARK first recover these hookers ( common by harddisk files) and then call the function.
And this is another way to HOOK in the kernel by DRX register. About the DRX register ,you can google it, there should be much info. So i only post some simple code next because of my poor english, if you know chinese, you can get the comment. 

查看更多...

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

XDE反汇编引擎源代码

网上流传的一个代码,能看懂的自己看吧。主要用到一下几个文件。
、、、、、

文件名:xde.c

查看更多...

分类:破解调试 | 固定链接 | 评论: 0 | 查看次数: 29235
请照主旨之顺序读:
1》误会;2》钉子;3》且慢下手;4》宽大。

1》误会:
早年在美国阿拉斯加地方,有一对年轻人结婚,婚後生育,他的太太因难产而死,遗下一孩子。

查看更多...

分类:智慧人生 | 固定链接 | 评论: 0 | 查看次数: 7012

手工加载exe到内存(loadEXE.cpp)

//*******************************************************************************************************
// [b]loadEXE[/b].cpp : Defines the entry point for the console application.
//
// Proof-Of-Concept Code
// Copyright (c) 2004

查看更多...

Tags: 代码 文件 pe 格式 添加

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

进程防注

只给出一个代码有兴趣的朋友自己测试一下


BOOL Lock_CurrentProcess()
{

查看更多...

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

内核钩子实例

#include <ntddk.h>
#include <ntimage.h>

#pragma pack(1)
typedef struct ServiceDescriptorEntry {

查看更多...

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

Rootkit技术之内核钩子原理


总是离不开系统内核所提供的服务,比如它要使用内存的时候,只要跟操作系统申请就行了,而不用自己操心哪里有空闲的内存空间等问题,实际上,这些问题是由操作系统的内核来代劳的。站在黑客的角度讲,如果能够控制内核,实际上就是控制了内核之上的各 
一、系统调用表 

系统调用表又称系统服务表或者服务描述符表,是Windows 内核在进行各种系统操作时所需的一个函数指针表。也就是说,这个表中存放的是提供系统服务的各种函数的地址。当然,该表所指向的都是系统自身的一些函数,但是,如果我们对它做了手脚后,就可以让它指向我们自己的函数。这正是本文要讲解的重点。 

查看更多...

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

不用驱动进入内核模式

不用驱动进入内核模式并且利用APIC得到中断的信息
说明:原文地址 http://www.codeproject.com/system/soviet_kernel_hack.asp
转载请说明译者:WH  QQ: 19552451,  QQ Group: 5497193
介绍:
尽管使user-mode的应用程序进入kernel绝对是一件令人激动的体验,但是这已经不是什么新鲜事了/还有很多事情我们从未听说过。Matt Pietrek是第一个完成这件事的人(许多年前他在windows95上做过了)。他的技术后来被Prasad Dabak, Sandeep Phadke和 MilindBorate修改了一下用到了windows NT上。为了从一个应用程序进入kernel,其中一个方法是去调用全局描述表(Global Descriptor Table(GDT))中的门调用描述符(call gate descriptor),所以一个应用程序能够通过门调用进入kernel。然而一旦 user-mode代码不允许进入GDT,上面作者使用的kernel-mode 驱动就是为了去调用一个描述门。那么,有个很合乎逻辑的问题会被提出,如果你始终需要用一个驱动来起作用那么离开驱动来实现这个功能其最关键的是什么?毕竟,用驱动的方法仅仅是达到了这个目的,难道你不认为吗?

查看更多...

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

进程创建和映像装入 windows

关于Windows的进程创建和映像装入的过程,“Microsoft Windows Internals 4e”一书的第六章中有颇为详细的说明。本文就以此为依据,夹译、夹叙、夹议地作一介绍。书中说,创建进程的过程分成六个阶段,发生于操作系统的三个部分中,那就是:Windows客户端即某个应用进程的包括Kernel32.dll在内的动态连接库,Windows的“执行体”、即内核(确切地说是内核的上层),以及Windows子系统的服务进程Csrss中。这六个阶段是:
    1. 打开目标映像文件。
    2. 创建Windows的“执行体进程对象”,也就是内核中的“进程控制块”数据结构。
    3. 创建该进程的初始(第一个)线程,包括其堆栈、上下文、以及“执行体线程对象”,即内核中的“线程控制块”数据结构。
    4. 将新建进程通知Windows子系统。

查看更多...

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

进程控制块pcb

进程控制块(Process Control Block)存放进程的管理和控制信息的数据结构称为进程控制块。它是进程管理和控制的最重要的数据结构,每一个进程均有一个PCB,在创建进程时,建立PCB,伴随进程运行的全过程,直到进程撤消而撤消。


在不同的操作系统中对进程的控制和管理机制不同,PCB中的信息多少也不一样,通常PCB应包含如下一些信息。

查看更多...

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

存储管理的基本原理

1 内存管理方法
内存管理主要包括内存分配和回收、地址变换、内存扩充、内存共享和保护等功能。

下面主要介绍连续分配存储管理、覆盖与交换技术以及页式与段式存储管理等基本概念和原理。

查看更多...

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

windows下堆溢出的几种利用方式

1.利用RtlAllocHeap 
这是ISNO提到的,看这个例子 
main (int argc char *argv[]) 

char *buf1 *buf2; 

查看更多...

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

ms09002漏洞分析

绿盟公告:
Internet Explorer的CFunctionPointer函数没有正确地处理文档对象,如果以特定序列附加并删除了对象,
就可以触发内存破坏,导致以当前登录用户的权限执行任意代码。

查看更多...

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

简析内存分页机制

其实分页机制并不复杂,无论关于cpu的技术文章还是操作系统技术的文章都会提到分页机制,这是一种虚拟存储器的实现方法。 
        虚拟存储器的思想是程序、数据和堆栈的大小都有可能超过物理内存大小,由操作系统把当前使用的放在内存,而不需要的放在磁盘。 
        而绝大部分操作系统使用的虚拟存储器技术就是分页技术。 
        在虚拟存储器中,程序所产生的地址为虚拟地址,虚拟地址构成了虚拟地址空间。(当然了在没有虚拟存储器的系统上,程序产生的地址就是物理地址。其实程序并不知道,只是操作系统和处理器知道。下面都是按照使用虚拟存储器的系统来说)这些虚拟地址通过MMU(内存管理单元)映射为物理地址。 
        采用分页机制的系统,虚拟地址空间以页面为单位进行划分,虚拟地址空间会被划分成多个等大小的页面。物理地址空间也按页面为单位进行划分每一块成为页帧,或者页框。每一虚拟页面可以随意对应到物理页框,也可以对应到磁盘的页面文件的上。 

查看更多...

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