diheqiu3577
码龄9年
求更新 关注
提问 私信
  • 博客:20,622
    20,622
    总访问量
  • 暂无
    原创
  • 1
    粉丝
  • 0
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:中国
加入CSDN时间: 2016-04-12
博客简介:

diheqiu3577的博客

查看详细资料
个人成就
  • 获得2次点赞
  • 内容获得0次评论
  • 获得26次收藏
  • 博客总排名362,509名
  • 原力等级
    原力等级
    0
    原力分
    0
    本月获得
    0
创作历程
  • 63篇
    2019年

TA关注的专栏 0

TA关注的收藏夹 0

TA关注的社区 0

TA参与的活动 0

创作活动更多

新星杯·14天创作挑战营·第13期

这是一个以写作博客为目的的创作活动,旨在鼓励大学生博主们挖掘自己的创作潜能,展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴,那么,快来参加吧!我们一起发掘写作的魅力,书写出属于我们的故事。我们诚挚邀请你们参加为期14天的创作挑战赛!注: 1、参赛者可以进入活动群进行交流、互相鼓励与支持(开卷),虚竹哥会分享创作心得和涨粉心得,答疑及活动群请见:https://bbs.csdn.net/topics/619781944 【进活动群,得奖概率会更大,因为有辅导】 2、文章质量分查询:https://www.csdn.net/qc

89人参与 去参加
  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

[DLL注入的方法]进程创建期修改PE输入表法

  进程创建期修改PE输入表法的原理和静态修改PE输入表完全相同,可以在R3/R0的各个阶段进行干预(必须在主线程运行之前)。1.以读写方式打开目标文件:2 //以读写方式打开目标文件3 HANDLE hFile = CreateFile(szImageFilePath,4 GENERIC_READ|GENERIC_WRITE,...
转载
博文更新于 2019.09.25 ·
487 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

[dll注入实现IAT勾取] 计算器显示中文

勾取dll源码详解:首先在创建时候来保存原始IAT地址到全局变量,然后通过Hook_iat函数来进行iat函数的勾取BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved){ switch( fdwReason ) { case D...
转载
博文更新于 2019.09.25 ·
995 阅读 ·
1 点赞 ·
0 评论 ·
7 收藏

[记事本API Hook] 调试器 勾取 WriteFile()Api

调试器的工作原理:  调试进程经过注册后,每当被调试者发生调试事件(DebugEvent)时,OS就会暂停其运行,并向调试器报告相应事件,然后调试器对相应事件进行处理,使被调试者继续运行。 具体调试流程如下:对想Hook的进程进行附加操作,使进程成为被调试者。Hook:将API起始的第一个字节修改成0xcc 也就是int3 断点。调用相应API 时,控...
转载
博文更新于 2019.09.25 ·
460 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

[1]编程实现加载驱动

加载驱动的标准方法 只有一种,就是利用服务管理器函数加载----SCM 加载法。WIN64驱动模板//[0]包含的头文件。可以加入系统或自己定义的头文件#include <ntddk.h>#include <windef.h>#include<stdlib.h>//[1]定义符号链接,一般来说修改为...
转载
博文更新于 2019.09.25 ·
279 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

[DLL注入的方法]静态修改PE输入表法

1.三种DLL加载时机:进程创建加载输入表中的DLL(静态输入)通过调用LoadLibrary主动加载(动态加载)系统预设加载  通过干预输入表处理过程加载目标dll1.静态修改PE输入表法(测试程序 Notepad.exe)准备工作:自行编写一个MsgDLL,到处一个函数Msg();#include "stdafx.h"BOOL...
转载
博文更新于 2019.09.25 ·
913 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

[保护模式]测试一致代码段

1.首先在被调试机器里定义一下代码// r3.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <stdio.h>#include <stdlib.h>int gupdate_value = 0;int main(int argc,char * argv[])...
转载
博文更新于 2019.09.25 ·
161 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

[保护模式]联系1 三环访问高2G

// 三环读高两G.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <windows.h>int _tmain(int argc, _TCHAR* argv[]){ int* gdtAddress = NULL; //定义个变量 getchar(); gdtA...
转载
博文更新于 2019.09.25 ·
234 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

15.[保护模式]TSS任务门

1.任务门描述符(跨表)本身在IDT 跨表查GDT 的TSS任务门的 S=0, TYPE=0101。2.任务门的执行过程3.为什么有了任务段还要有任务门呢?CPU提供任务门,是为了方便访问任务段。在CPU发生二重错误的时候,会直接跳到 8 号中断,而 8 号中断就是任务门(这是Windows xp 系统设计的任务门),这意味着什么?一旦进入 8 号中...
转载
博文更新于 2019.09.25 ·
272 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

13.[保护模式]陷阱门

1.陷阱门描述符 0D111 F唯一的区别:可屏蔽中断受IF影响转载于:https://www.cnblogs.com/hanhandaren/p/11205734.html
转载
博文更新于 2019.09.25 ·
123 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

14.[保护模式]TSS任务段

1.TSS的结构:  TSS不是寄存器,它是一个内存;(包含所有寄存器的值)2.TSS的作用:如果切换一个线程那么一定需要切换寄存器;3.CPU怎么找到TSS内存块呢? 通过TaskRegister段寄存器  TaskRegister段寄存器 的值是CPU启动的时候通过GDT表中 TSS Descrptor (段描...
转载
博文更新于 2019.09.25 ·
516 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

12.[保护模式]中断门

Windows没有使用调用门,但是使用了中断门:<1>系统调用<2> 调试1.IDT 中断描述符表    2.IDT表的构成  3.中断门的描述符 0D110 E除了不能传参数和8-12位,其他与中断门基本无异    转载于:https://www.cnblogs.co...
转载
博文更新于 2019.09.25 ·
107 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

11.[保护模式]调用门

1.调用门执行流程  指令格式:CALL CS:EIP(EIP是废弃的)执行步骤:  根据CS的值查GDT表,找到对应段描述符,这个描述符是一个调用门在调用门描述符中存储另一个代码段段的选择子选择子指向的段 ,段.BASE +偏移地址 就是真正执行的地址2.门描述符S位一定是0; 只有为0 才是系统段描述符TYPE位为1100的...
转载
博文更新于 2019.09.25 ·
226 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

10.[保护模式]长调用与短调用

CALL FAR长调用最终需要执行的代码由CS段选择子找到的调用门决定的提权的时候堆栈发生了切换,保留原CS,ESP,SS返回也是RETF总结:    1.跨段调用时,一旦有权限切换,就会切换堆栈;  2.CS的权限如果没有变更,那么只换CS;’CS的权限一旦发生改变,SS的权限也要随之改变,CS与SS的等级必须一样;  3....
转载
博文更新于 2019.09.25 ·
230 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

8.[保护模式]段权限检查

1.CPU的分级 2.如何查看程序处于几环?  CPL:当前特权级  CS和SS中存储的段选择子后两位3.DPL:描述符的特权级别:  举例说明:MOV DS,AX  第一步:先判断CS代码段是否有权限执行代码  第二步:如果有权限执行,那么把AX的值复制给DS (ds=ax),如果ds原本就等于ax,那么啥也不做  GDT RPL>...
转载
博文更新于 2019.09.25 ·
227 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

6.[保护模式]段描述符属性_S位_TYPE域

1.S位S = 1 代码段或者数据段描述符S = 0 系统段描述符注意:DPL在WINDOWS内只会出现两种情况,全是0或者1代码段那么P为已经确定为1S也为1那么DPL 为0 则是9为1 则是F2.TYPE域TYPE域小于8则为数据段大于8则是代码段数据段说明:8A 代表是否被加载如果访问过则为1 反之则为0...
转载
博文更新于 2019.09.25 ·
216 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

9.[保护模式]代码的跨段跳转流程

  IRETD图上错了段描述符如果是数据段是不允许跳转的!4.权限检查:    如果非一致代码段,要求CPL == DPL 并且 RPL<=DPL (应用层不能直接访问的)    如果是一致代码段,要求 :CPL >=DPL;(电脑内核提供可以直接有3环访问的(共享段))5.加载段描述符    通过上面的检查...
转载
博文更新于 2019.09.25 ·
154 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

4.Windows 用户态调试模型

转载于:https://www.cnblogs.com/hanhandaren/p/11173014.html
转载
博文更新于 2019.09.25 ·
182 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

7.[保护模式]段描述符DB位

B = 0 64K 65535字节B = 1 4G(指定的虚拟4GB空间)如果需要去16位的加个前缀67:1.DB位位于第22位对以下三种情况都有影响:只要是代码段都为B, 只要是数据段都为D情况一: 对CS段的影响    D =1 采用32位寻址方式    D =0 采用16位寻址方式    前缀67 改变寻址方式情况二:对SS段的影...
转载
博文更新于 2019.09.25 ·
204 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

2.[保护模式]段寄存器

1.段寄存器结构段寄存器一共96位,但是可见部分只有16位Struct SegMent{ WORD Selector; //16位段选择子 WORD Attributes; //16位属性 DWORD Base; //32位基址 DWORD Limit; //32位段限长}其中红色...
转载
博文更新于 2019.09.25 ·
496 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

5.[保护模式]段描述符属性_P位_G位

1.P位P = 1 段描述符有效P = 0 段描述符无效2.段描述符与段寄存器的对应关系Struct SegMent{ WORD Selector; //16位段选择子 WORD Attributes; //16位属性 对应的高4字节,从8位开始到23位结束 刚好16字节 DWORD Base; ...
转载
博文更新于 2019.09.25 ·
296 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多