自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

93Storm

用一个键盘来狙击整个世界

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

原创 windows 64位和32位

如何根据PE结构查看 32 或64位程序?根据 IMAGE_OPTIONAL_HEADER中的magic 进行判断:magic  = 0x10b     ; //the file is a 32 bit applicationmagic = 0x20b    ; // the file is a 64 bit application 如何根据pe结构查看EXE 或DLL程序:根

2017-01-02 15:48:39 385

转载 读书笔记之《Windows内核原理与实现》

原文地址近学习《Windows内核原理与实现》发现其博大精深,粗略过了一遍,很多东西比较茫然,看书之余把书中涉及的函数,结构,全局变量的所在页数总结出来,便于以后查阅。由于半自动半手工,难免有写错的地方,如有发现还请留言通知,谢谢。函数函数名称所在页数_KeSystemStartup149_

2017-01-01 22:01:21 2575 1

转载 MmGetSystemRoutineAddress 函数实现代码

原文链接MmGetSystemRoutineAddress这个函数也是比较有用的,是得到系统导出函数的地址,不过网上都是写了一堆汇编代码在哪里,根本没有可读性,还不如用IDA看呢。下面的函数是摘自ReactOS项目的代码:[cpp] view plain copyPVOID  NTAPI  MmGetSystemR

2017-01-01 17:56:15 498

转载 ObReferenceObjectByHandle() 函数简略分析

原文链接1. 逆向出来的 ObReferenceObjectByHandle() 函数实现这个函数的实现请参考这个文章:ObReferenceObjectByHandle() 函数,这里不再重复贴出。 这个函数的原型是:NTSTATUSObReferenceObjectByHandle(IN HANDLE Handle,IN ACCESS_MASK Desi

2017-01-01 14:11:58 6024

原创 SSDThook

SSDT hook整个流程:获取SSDT表,自定义函数替换表中函数地址。通过以下的方式获取SSDT表的内容:typedef struct ServiceDescriptorTable { PVOID ServiceTableBase; PVOID ServiceCounterTable; unsigned int NumberOfSection;

2016-12-31 21:06:49 372

原创 PE导出表、重定位详解

此文档主要讲解导出表,重定位信息:使用例子为: Windows.UI.Xaml.dll、010editor1、导出表,重定位表的地址存放在哪里DOS头-àPE头文件(_IMAGE_NT_HEADERS)-à扩展头(IMAGE_OPTIONAL_HEADER32)-à数据目录表数据目录表中的内容:structIMAGE_DATA_DIRECTORY  Export

2016-12-31 20:41:05 2439

原创 遍历IDT表和分析GDT表结构

//头文件IDT_GDT.h#include"basetsd.h"/**IDT寄存器结构*IDTR寄存器共有48位,高32位是IDT表的基地址,低16位是IDT表的长度(Limit)*IDT表示一张位于物理内存中的线性表,共有256个表项。*/typedef struct _IDT_INFO{ UINT16 uIdtLimit; UINT16 uLowIdtBa

2016-12-26 13:44:48 2972 1

转载 段描述符与段选择子的结构

段选择子结构段选择子就是一个数字,一共有16位,结构如下:| 1 | 0 | 字节|7654321076543 2 10| 比特|-------------|-|--| 占位| INDEX |T|R | 含义| |I|P || | |L |123456123456INDEX:在G

2016-12-25 22:53:06 1409

转载 使用VS2012调试ReactOS源码

一. 下载并安装VS2012我安装的是VS2012_ULT_chs.iso, 网上随便下载二. 下载并安装WDK8.0下载地址: http://msdn.microsoft.com/zh-cn/windows/hardware/hh852365安装完之后打开VS2012, 会发现新建项目中多了一些Driver项目, 菜单栏上也多了一个菜单项DRIVER三.

2016-11-17 14:32:44 643

转载 设备对象(DEVICE_OBJECT)

DEVICE_OBJECT结构体是操作系统用来表示某个具体的设备对象,一个设备对象是一个逻辑上的,或者虚拟的,或者物理上的设备的具体抽象,驱动通过设备对象来处理I/O请求。[cpp] view plain copytypedef struct _DEVICE_OBJECT {    CSHORT                      Type

2016-11-03 22:22:53 1342

原创 windbg停在无符号驱动的DriverEntry(WIN10)

第一步:获取需要调试驱动名字。第二步:搭建“VM+windbg”双机调试环境第三步:在宿主机windbg中输入:sxe ld 360SelfProtection.sys(注;sxe 当发生该异常时,在任何错误处理器被激活之前目标立即中断到调试器中。ld;Load Module)。输入指令G,让系统运行起来。一会将会中断。第四步:输入lm,显示中断时系统加载的模块。可以看到,系统在加

2016-07-29 15:33:14 808 3

转载 windbg随进程加载自动启动(映像劫持技术)

1.在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options下,建一个项,比如DNF,就叫DNF.exe,2.再在右边建一个 子项叫Debugger 类型REG_SZ,填上windbg的地址,3.再用windbg -I(大写)设置为默认调试器,之后就可以直接

2016-07-29 13:44:36 1090

转载 反调试技术

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

2016-07-27 09:00:03 708

转载 win10中 “windbg+vmware+win10双机调试” 设置

本文主要介绍在win10下如何设置windbg+vmware,以进行双机调试。本文主要参考:李Sir的博客(http://www.cnblogs.com/lzjsky/archive/2010/12/14/1905248.html),并浏览了大量网文,以及windbg自带的help文档和MSDN,除了综合各家的经验外,也分享了本人在实践遇到的问题和解决办法。一、安装环境1,主机(H

2016-07-25 21:33:24 18433 2

转载 汇编---跳转指令

助记符标志位说明JZ/JEZF=1等于零/相等JNZ/JNEZF=0不等于零/不相等JSSF=1符号为负JNSSF=0符号为正JP/JPEPF=1低8位"1"的个数为偶JNP/NPOPF=0低8位"1"的个数为奇JOOF=1溢出JNOO

2016-07-19 21:39:23 1153

转载 WinDBG 指令整理

静态调试常用命令:!analyze  -V    分析Dump文件dps   栈中内容k   显示一定数量的栈帧   如:          kp  5  :显示调用栈中前5个函数以及 他们的参数。          kb 5 :显示调用栈中前5个函数以及他们的前三个参数          kf 5 : 显示在调用栈中五个函数所使用的栈的大小;每个栈帧所占的空间使用量的计算

2016-04-26 09:14:35 743

翻译 NtQueryObject 函数

若翻译出现错误,请指出,本人会即时改正。这个函数未来可能会改变或者从windows中移除,但是不会通告你。(微软有多贱,我嘞个草了)函数声明:NTSTATUS NtQueryObject(_In_opt_  HANDLE  Handle,_In_        OBJECT_INFORMATION_CLASS objectInformationClass,_Out_opt_

2016-04-25 23:50:37 4138

翻译 Microsoft Edge 拒绝未经过标记的DLL注入

原文网址:http://techreport.com/news/29337/microsoft-edge-update-protects-users-from-unsigned-dll-injection

2016-04-24 23:36:55 1262

原创 缓冲区溢出---栈

缓冲区溢出“正义与邪恶共存,邪恶推动正义的进步,正义迫使邪恶的升华,两者谁是谁非。是非只是它人的定义,两者都是正确的”在我们调试程序的时候,我们如何去掉调试窗口中的CCCC的内容。第一步:打开项目属性------>c/c++----->代码生成-------->基本运行时检查设置为“未初始化的变量”------->\安全检查“否”第二步:打开项目属性------>连接器

2016-04-24 21:52:35 758

原创 手动脱壳技巧总结

1、 壳名:PECompact 2.x -> Jeremy Collake脱壳方式:采用ESP定律进行脱壳2、后序会慢慢总结进行补充。

2016-04-24 18:57:18 446

转载 VS 快捷键

Shift+Alt+Enter: 切换全屏编辑Ctrl+B,T / Ctrl+K,K: 切换书签开关Ctrl+B,N / Ctrl+K,N: 移动到下一书签Ctrl+B,P: 移动到上一书签Ctrl+B,C: 清除全部标签Ctrl+I: 渐进式搜索Ctrl+Shift+I: 反向渐进式搜索Ctrl+F: 查找Ctrl+Shift+F: 在文件中查找F3:

2016-04-20 10:46:09 219

转载 IE11对 Activex控件的兼容性问题

因项目需要,开始学习并研究VC、DLL及ActiveX控件,网上资料找了很多,但没一个可用的或者说没一个例子可理解并运行的。没办法,自己研究吧。功夫不负有心人,终有小成了,呵呵,现在把自己学习总结了一下,献给需要的人。一、 概述 因项目需要,开始学习并研究VC、DLL及ActiveX控件,网上资料找了很多,但没一个可用的或者说没一个例子可理解并运行的。没办法,自己研究吧。功夫不负有心人,终有小

2016-04-12 10:35:04 21857 1

原创 进程间通讯---共享内存

核心函数:HANDLE WINAPICreateFileMappingW(    _In_ HANDLE hFile,    _In_opt_ LPSECURITY_ATTRIBUTES lpFileMappingAttributes,    _In_ DWORD flProtect,    _In_ DWORD dwMaximumSizeHigh,    _In_

2016-04-10 20:24:13 400

原创 在类中使用类成员函数创建线程

demo书写大概步骤:     1》创建一个类,在类中创建一个函数     2》在构造函数中创建线程,使用类中的成员函数类中代码: 类头:#pragma once#include class tt{public: tt(void); ~tt(void);private: DWORD WINAPI ThreadProc();};类体:#include "s

2016-04-10 15:54:05 4138 1

原创 远程线程注入

通过实例对远程线程注入进行详细的讲解:      远程线程注入的核心函数是CreateRemoteThread(    _In_ HANDLE hProcess,    _In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes,    _In_ SIZE_T dwStackSize,    _In_ LPTHREAD_START_R

2016-04-10 15:32:47 422

原创 Tls 线程局部存储

什么是TLS?        如果需要在一个线程内部的各个函数调用都能访问、但其他线程不能访问的变量(被称为static memory local to a thread 线程局部静态变量),就需要新的机制来实现。这就是TLS。      TLS声明的空间,其他线程无法访问,增加了可移植性。       TlsAlloc(): 返回TLS索引        Tlssetvalue(

2016-04-06 09:35:04 316

转载 回调函数

此片文章为,在网上进行查询回调函数相关文章做的整理:回调函数是什么?        摘录一:        你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留下了你的电话,过了几天店里有货,店员就打你的电话,然后你接到电话就到店里去取了货。在这个例子中,你的电话就是回调函数,你把电话留给店员就叫登记回调函数,店里后来有货了,叫做触发了回调关联的事件,店员给你打电话叫做调用回调

2016-03-30 19:07:51 268

原创 项目日志文件存放位置

日志文件的存放位置:目的:获取当前用户固定目录,存放项目的运行日志,方便日后对项目维护函数简单声明:HRESULT SHGetMalloc(          LPMALLOC *ppMalloc );HRESULT SHGetSpecialFolderLocation(          HWND hwndOwner,    int nFolder,

2016-03-24 13:22:02 4193

原创 面试经历

本篇文章会持续更新:从第一面试,到现在....随着面试的次数增多,面试经验也慢慢变好了。面试之前需要查看该公司主要针对的是那些业务,想好明天要说那些方面的知识,做到心里有底。第一次面试(忘记日期了)太过于重视第一次面试,导致的结果就是,面试问题一个也不会(蒙了)。放宽心态,总会有适合你的工作。2016.3.12  今天上午面试,碰到一个技术类的老总(小公司),技术大拿,看了

2016-03-12 11:49:31 1135

原创 PE结构---获取导入表中函数的实际地址

系统流程图流程图简要概述:第一步:通过枚举模块,后去.exe的加载地址,这个地址就是PE在进程中的加载基址。第二步:计算出导出表的位置。第三步:将目标进程中的数据读到本进程中。示例代码下载地址:http://download.csdn.net/detail/qq_21000273/9362435

2015-12-17 15:12:07 866

原创 UNION和位域的使用

以下讲解都是在VS2012中进行试验的:联合体和位域的使用都是以节省空间为目的。联合体同stuct一样,联合默认方位权限也是共有的,并且,也具有成员函数。共用体和结构体有以下区别:1.共用体内存=MAX(各变量)2.结构的内存=sizeof(各变量之和)+内存对齐刚接触的union的人,大概只能记住“所有的公用体成员公用一个空间,并且同一时间只能存储其中一个成员变量的值”。

2015-12-03 11:01:27 5694

原创 C++父类指针指向子类对象

#includeusing namespace std;class A{public: void i(){cout}};class B :public A{public :void i(){cout}};class c:public B{public :void i(){cout}};class

2015-05-08 09:36:45 1322

获取进程中导入表函数的地址

普通PE工具,可以静态查看导入函数的名字,和编号。这个项目可以实现查看,导入函数的地址。(主要是技术方面的讨论)

2015-12-16

空空如也

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

TA关注的人

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