自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(37)
  • 资源 (1)
  • 收藏
  • 关注

转载 DLL注入技术之远线程注入

DLL注入技术之远线程注入    DLL注入技术指的是将一个DLL文件强行加载到EXE文件中,并成为EXE文件中的一部分,这样做的目的在于方便我们通过这个DLL读写EXE文件内存数据,(例如 HOOK EXE文件中的API),或以被注入EXE的身份去执行一些操作等等。    远线程注入原理是利用Windows 系统中CreateRemoteThread()这个API,其中第4个参数是准

2016-07-13 20:53:41 316

转载 DLL注入技术之依赖可信进程注入

DLL注入技术之依赖可信进程注入    依赖可信进程注入原理是利用Windows 系统中Services.exe这个权限较高的进程,首先将a.dll远线程注入到Services.exe中,再利用a.dll将b.dll远线程注入到待注入进程中。具体过程如下图所示:这里提供一个小技巧,当注入到Services.exe里的DLL时,想在做完事情后悄无声息的将自己释放掉,在Wind

2016-07-13 20:53:02 272

转载 DLL注入技术之劫持进程创建注入

DLL注入技术之劫持进程创建注入    劫持进程创建注入原理是利用Windows系统中CreateProcess()这个API创建一个进程,并将第6个参数设为CREATE_SUSPENDED,进而创建一个挂起状态的进程,利用这个进程状态进行远程线程注入DLL,然后用ResumeThread()函数恢复进程。1.创建挂起的进程    下面是创建一个挂起的计算器程序进程的主要代码:

2016-07-13 20:52:22 265

转载 m_pDC->GetSafeHdc()的思考

问题:      经常看到OpenGL中的视场设置中有m_pDC->GetSafeHdc()这句话,我就想了想为甚要这样写呢?看了OpenGL和Vc技术内幕后,我终于好想知道了为什么。解答:      首先从 OpenGL开始,因为每个OpenGL应用程序必须有一个渲染描述表RC,而必须在会之前它应该是当前得到。渲染描述表是OpenGL输出与Windows设备描述表联系的机

2016-07-09 23:41:19 700

转载 ListCtrl的扩展类EditListCtrl

该类继承自MFC的CListCtrl类;实现列可选,多单元格可选,单击选中单元格并能双击编辑,同时也可以设定某一列是否能进行编辑等等。功能强大,欢迎使用。头文件:CEditListCtrl.hclass CEditListCtrl : public CListCtrl{ // Constructionpublic: CEditListCtrl(); // Attri

2016-07-09 22:57:59 462

转载 我对CONTAINING_RECORD宏的详细解释

宏 CONTAINING_RECORD 的用处其实还是相当大的, 而且很是方便, 它的主要作用是:根据结构体中的某成员的地址来推算出该结构体整体的地址!下面从一个简单的例子开始说起, 我们定义一个结构体, 同时类型化:typedef struct{ int a; int b; int c;}ss;这是一个很简单的结构体, 没什么特殊的, 稍微分析下该结

2016-07-09 19:53:09 182

转载 PE文件详解之区块表

趁热打铁,今天开始对块的学习。     块最重要的结构体是:_IMAGE_SECTION_HEADER 。       PE文件中所有节的属性都被定义在节表中,节表由一系列的IMAGE_SECTION_HEADER结构排列而成,每个结构用来描述一个节,结构的排列顺序和它们描述的节在文件中的排列顺序是一致的。节表总是被存放在紧接在PE文件头的地方;节表中IMAGE_SECTION_H

2016-07-09 19:52:46 295

转载 PE文件详解之区块表

趁热打铁,今天开始对块的学习。     块最重要的结构体是:_IMAGE_SECTION_HEADER 。       PE文件中所有节的属性都被定义在节表中,节表由一系列的IMAGE_SECTION_HEADER结构排列而成,每个结构用来描述一个节,结构的排列顺序和它们描述的节在文件中的排列顺序是一致的。节表总是被存放在紧接在PE文件头的地方;节表中IMAGE_SECTION_H

2016-07-09 19:35:30 166

转载 PE文件详解之IMAGE_NT_HEADER结构

PE Header 是PE相关结构NT映像头(IMAGE_NT_HEADER)的简称。里面包含了许多PE装载器用到的重要字段。     先看看该结构体:[cpp] view plain copytypedef struct _IMAGE_NT_HEADERS {    DWORD                 Signature

2016-07-09 19:30:47 440

转载 PE文件详解之PE文件头

1, PE文件头(PE Header ) 紧挨着 DOS stub    2,  PE Header 是PE相关结构NT映像头(IMAGE_NT_HEADER)的简称。里面包含着许多PE装载器用到的重要字段。    3,执行体在支持PE文件结构的操作系统中执行时,PE装载器将从 IMAGE_DOS_HEADER 结构中的 e_lfanew 字段里找到PE Header的其实偏移量,

2016-07-09 19:29:50 423

转载 PE文件详解之MS-DOS头

MS-DOS头   1,每个PE文件是以一个DOS程序开始的,有了它,一旦程序在DOS下执行,DOS才能识别出这是有效的执行体。   2,PE文件的第一个字节起始于一个传统的MS-DOS头部,被称作为IMAGE_DOS_HEADER。   3,IMAGE_DOS_HEADER 结构如下:[cpp] view plain copy

2016-07-09 19:29:22 289

转载 PE文件详解之IMAGE_NT_HEADER结构

PE Header 是PE相关结构NT映像头(IMAGE_NT_HEADER)的简称。里面包含了许多PE装载器用到的重要字段。     先看看该结构体:[cpp] view plain copytypedef struct _IMAGE_NT_HEADERS {    DWORD                 Signature

2016-07-09 19:27:03 174

转载 PE文件结构简介

PE结构总览图MZ头部又称为DOS头部,该部分用于在DOS下加载可执行程序,是用IMAGE_DOS_HEADER来定义的。DOS残留是一段简单的程序,主要用于输出“This program cannot be run in DOS mode.”类似的字符串。存在DOS头部的原因,关键是为了该可执行程序可以兼容DOS系统。PE头部PE头部保存W

2016-07-09 19:13:43 181

转载 DOS头部IMAGE_DOS_HEADER

对于一个PE文件来说,最开始的位置就是一个DOS程序。DOS程序包含一个DOS头和一个DOS程序体。DOS头部是由IMAGE_DOS_HEADER结构体来定义的。该结构体定义如下:[cpp] view plain copytypedef struct _IMAE_DOS_HEADER {       //DOS .EXE he

2016-07-09 19:12:15 371

转载 PEB及PEB_LDR_DATA结构

PEB结构如下:(比MSDN上详细多了http://msdn.microsoft.com/en-us/library/windows/desktop/aa813706(v=vs.85).aspx)这个进程环境块就不罗嗦了,直接贴代码。[cpp] view plain copytypedef struct _PEB { // Size:

2016-07-09 19:08:25 617

转载 Windows API数据类型表

BOOL                               布尔型变量BYTE                               字符类型(8位)CHAR                               8比特字节(ANSI)CONST                              常量,相当于标准C中的"const"关键字

2016-03-14 00:19:31 230

转载 ssdt与shadowssdt区别

(ring3)            (NtOpenProcess)      ssdt层                  实现OpenProcess->ntdll!ZwOpenProcess->ntos!ZwOpenProcess->ntos!NtOpenProcess(内核中有2套函数 ,zw,nt,nt才是真正的执行函数,zw只是一个过渡函数,可用ida察看ntoskrnl.exe

2016-02-26 22:49:00 213

转载 进入保护模式

本文为 第11章笔记以下图2, 图4和图5截自Intel手册全局描述符表全局描述符表中存放着段描述符, 每个段描述符8个字节.为了跟踪全局描述符表, 处理器内部有一个48位寄存器, 叫做全局描述符表寄存器(GDTR), GDTR分为两部分,分别为32位的线性地址和16的边界, 32位线性基地址部分保存的是全局描述符表在内存中的起始线性地址, 16位边界部分是全局描述符表的边界(界限),

2016-02-24 16:48:50 237

转载 页表项(PTE)地址计算公式的解释

在《JIURL玩玩Win2k内存篇 分页机制 (三)》中提到计算虚拟地址对应PTE地址的公式,如下:代码:PTE_Addr = (VirtualAddr >> 12) * 4 + 0xC0000000从虚拟地址转换到物理地址的过程来看,计算PTE需要虚拟地址的高10位做页目录索引,还需要第12 - 21位做页表索引,上面的公式晃眼看起来,貌似是错的,但是偏偏它又是对的,为

2016-02-24 16:46:37 786

转载 PAE下的虚拟内存映射 分析

PAE 即为物理地址扩展(Physical Address Extension),详细的内容请Google。 我的电脑是Win7,CPU是双核处理器,信息如下,0: kd> !sysinfo cpuinfo [CPU Information]~MHz = REG_DWORD 2527Component Information = REG_BINARY 0,0,0,0,0,

2016-02-24 16:45:17 190

转载 PAE ( Physical Address Extension )

首先,内存访问和管理是一个跨越应用程序,操作系统,硬件平台的一个复杂过程,不能单纯的讲32bit系统就支持4G内存,从而认为这个过程只是OS和内存两者之间的关系 理论上:32位系统,32bit的地址总线位数,寻址空间2^32B=4GB。 64位系统,寻址空间2^64。至于在实际应用环境中,对于有4G物理内存而OS最多只能识别3G的情况,主要是主板的问题,丢掉的内存被PCI设

2016-02-24 16:44:21 367

转载 GDT、GDTR、LDT、LDTR的理解

GDT是全局描述附表,主要存放操作系统和各任务公用的描述符,如公用的数据和代码段描述符、各任务的TSS描述符和LDT描述符。(TSS是任务状态段,存放各个任务私有运行状态信息描述符)LDT是局部描述符表,主要存放各个任务的私有描述符,如本任务的代码段描述符和数据段描述符等。GDTR是一个长度为48bit的寄存器,内容为一个32位的基地址和一个16位的段限。其中32位的基址是指GDT在内存中

2016-02-24 16:41:16 437

转载 DLL劫持技术详解(lpk.dll)

背景知识https://support.microsoft.com/en-us/kb/164501中记录了除了window的搜索dll顺序要看中文的兄弟可以看:https://support.microsoft.com/zh-cn/kb/164501我们当然主要关注32位的dll对于 32 位 Dll 在找到 KnownDLLs 注册表项:[cpp]

2016-02-21 21:11:53 482

原创 驱动基本框架

#include "Ring0.h"//驱动在卸载的时候,经过这里,我们可以在这里释放一些资源。//断开通话VOID DriverUnload(PDRIVER_OBJECT DriverObject){ UNICODE_STRING DeviceName; UNICODE_STRING DosDeviceName; //删除符号链接 RtlInitUnic

2016-02-21 13:14:07 274

原创 Shadow SSDT是什么玩意

全名:Shadow System Services Descriptor Table。影子        系统       服务         描述            表主管范围:图形(gdi32.dll)、用户(user32.dll)相关函数

2016-02-21 11:59:09 493

转载 反调试与反反调试内容收集

反调试技术在调试一些病毒程序的时候,可能会碰到一些反调试技术,也就是说,被调试的程序可以检测到自己是否被调试器附加了,如果探知自己正在被调试,肯定是有人试图反汇编啦之类的方法破解自己。为了了解如何破解反调试技术,首先我们来看看反调试技术。一、Windows API方法Win32提供了两个API, IsDebuggerPresent和CheckRemoteDebuggerPresent可

2016-02-21 09:12:08 282

转载 标 题: 又灌水-反(调试/跟踪/脱壳) 技术集锦

标 题:又灌水-反(调试/跟踪/脱壳) 技术集锦发信人: kongfoo时 间: 2004-05-27,14:50详细信息: 反(调试/跟踪/脱壳) 技术集锦kongfoo/2004.4.18-5.27  具体代码就不贴了,知道原理就可以写出代码。一些是实践所得,一些是别人的成果,也都收集在一起了。解密、加密这个攻防战好像和传统作战的攻防战不同,防的

2016-02-21 09:07:28 239

转载 DLL注入技术之劫持进程创建注入

劫持进程创建注入原理是利用Windows系统中CreateProcess()这个API创建一个进程,并将第6个参数设为CREATE_SUSPENDED,进而创建一个挂起状态的进程,利用这个进程状态进行远程线程注入DLL,然后用ResumeThread()函数恢复进程。1.创建挂起的进程    下面是创建一个挂起的计算器程序进程的主要代码:STARTUPI

2016-02-20 22:29:39 517

转载 DLL注入技术之依赖可信进程注入

DLL注入技术之依赖可信进程注入    依赖可信进程注入原理是利用Windows 系统中Services.exe这个权限较高的进程,首先将a.dll远线程注入到Services.exe中,再利用a.dll将b.dll远线程注入到待注入进程中。具体过程如下图所示:这里提供一个小技巧,当注入到Services.exe里的DLL时,想在做完事情后悄无声息的将自己释放掉

2016-02-20 22:28:43 193

转载 Dll注入技术之远程线程注入

DLL注入技术之远线程注入    DLL注入技术指的是将一个DLL文件强行加载到EXE文件中,并成为EXE文件中的一部分,这样做的目的在于方便我们通过这个DLL读写EXE文件内存数据,(例如 HOOK EXE文件中的API),或以被注入EXE的身份去执行一些操作等等。    远线程注入原理是利用Windows 系统中CreateRemoteThread()这个API,其中第4个参数是准备运

2016-02-20 22:27:28 342

原创 远程注入Dll

Handle WINAPI CreateRemoteThread(hProcess,线程所属进程的进程句柄lpThreadAttributes,指向SECURITY_ATTRIBUTES结构指针,线程安全属性,Null。dwStackSize,线程初始大小,0为默认。lpStartAddress,地址空间中,线程函数起始地址。lpParameter,传递线程函数的参数dwC

2016-02-20 16:07:32 284

原创 走路Call

A总理论:已知一个数据,怎么寻找访问这个数据的Call转变成:怎么寻找把这个数据作为参数的Call同理:如果已经找到了这个数据,搜索Ce,看谁访问这个数据,就相当于谁把他作为参数调用了,那么这个Call就是众多Call里面的功能Call。总结:1.从Call-》基址2.从基址-》Call所以很多课程第一课是找基址找完就没事了,第二课根第一课也没有关系了其实第

2016-02-20 09:42:19 745

原创 钩子(hook)

SetWindowsHookEx(int idHook, 钩子类型(消息类型)HOOKPROC lpfn,指针,他指向处理的函数指针HINSTANCE hMod,实例句柄,Dll句柄DWORD dwThreadID   被监视线程ID);

2016-02-20 00:47:19 190

原创 OD 测试申请内存

OD插件StrongOD,里面有一个Alloc Memory ,快捷键Alt+Q。可以分配一个内存区域,然后选择窗口跟随,走到数据区,改写数据区数据,用于注入。

2016-02-19 23:50:22 542

原创 send断点数据地址

send断点数据地址,第一个参数socket,第二个数据内容,第三个数据长度,第四个不知道。看第二个数据内容的地址是不是固定的。固定的话,就下bb 固定地址 断点。

2016-02-19 23:31:25 198

原创 IsSerializeable

Serialize串行Bool IsSerializeable() const;实现方法virtual viod Serialize(CArchive& ar);CArchive 对于各种介质比如网络 文件 内存都做了封装。有效的隔离。

2016-02-19 21:55:24 167

原创 MFC几个重要的基类

老根CObject派生出CCmdTarget-这个类没听说能干啥。但是老子不出名,孩子却牛的狠。CCmdTarget有派生出CWinThread类,这个牛了,多线程,你懂的。1.多线程这个派生出CWinApp,这个更牛,程序的框架。2.第二条主线也比较牛。CWnd也是CCmdTarget派生出来的,他派生3个类,CDialog,CView,CFrameWnd,这三个类加上CWinA

2016-02-19 21:23:52 439

控制台+dll源码天龙八部

天龙八部 控制台 dll 源码

2016-07-20

空空如也

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

TA关注的人

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