90wunch
码龄3年
关注
提问 私信
  • 博客:31,536
    社区:1
    31,537
    总访问量
  • 42
    原创
  • 37,923
    排名
  • 168
    粉丝
  • 0
    铁粉
  • 学习成就
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:湖南省
  • 加入CSDN时间: 2022-03-17
博客简介:

m0_68259687的博客

查看详细资料
  • 原力等级
    成就
    当前等级
    3
    当前总分
    208
    当月
    82
个人成就
  • 获得329次点赞
  • 内容获得6次评论
  • 获得316次收藏
  • 代码片获得176次分享
创作历程
  • 23篇
    2024年
  • 10篇
    2023年
  • 9篇
    2022年
成就勋章
TA的专栏
  • Win内核
    9篇
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

182人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

PAE的研究

我们知道,10-10-12分页的表示范围是有极限的,1024 * 1024 * 1024 * 4 也就是4GB,但是我们现在大部分的操作系统,包括我们平时所使用的个人电脑,基本上都超过了这个内存,所以,一定是有新的分页方式代替了原有的分页。选用的进程DirBase是0670d440 ,我们的PDPTE也是8个字节,按照我们之前所学,找到了GDT表的物理地址的位置,验证了我们之前的理论知识。首先先把页切回2-9-9-12,看CR3的值像下面一样就可以了。将这个地址按照2-9-9-12的顺序拆开。
原创
发布博客 5 小时前 ·
69 阅读 ·
1 点赞 ·
0 评论 ·
4 收藏

零地址挂页

我们现在是用windbg手动去修改PTE,但是随着我们学习的深入,我们就可以使用程序来自动化这一过程,来达到我们注入shellcode的效果。
原创
发布博客 17 小时前 ·
484 阅读 ·
10 点赞 ·
0 评论 ·
4 收藏

页的初步认识

我们在之前的学习中,已经学习了相当一部分有关段的知识,CPU提供了段的机制来给我们的内存进行保护,但实际上我们在x86下的段base是0,实际上并没有偏移。
原创
发布博客 前天 23:13 ·
474 阅读 ·
9 点赞 ·
0 评论 ·
8 收藏

中断门的研究

在介绍中断门之前,我们先介绍IDT表如果我们查看IDT表的解析结构,就会发现它和之前我们学习的GDT表非常类似IDT也是由段描述符组成的,既然我们之前已经介绍过了调用门,那么这个中断门我们自然是十分轻松的与调用门使用call来调用不同,中断门我们使用int指令来调用,没错,就是我们之前经常用到的int 3之流,在执行完之后会通过中断门跳入到对应的int 3函数中(int 3其实是一个函数,不只是指令怎么简单,我们马上来证明)
原创
发布博客 2024.11.18 ·
451 阅读 ·
5 点赞 ·
0 评论 ·
5 收藏

代码段数据段的划分

所以,综上所述,对于ss堆栈段来说,需要DPL和RPL保持一致,再由CS和SS必须保持一致的原则我们可以知道 对于堆栈来说,只有DPL== RPL==CPL,那么代码才能正常执行。所以我们在这里可以把ss改为R3,也就是4b,多余的过程就不截图了。CPL是当前进程的权限级别(Current Privilege Level),是当前正在指向的代码段所在段的成绩,也就是CS段的DPL。首先还是得到现在GDT表,然后把index为4的段描述符放到index为9的地方,并且改变其DPL为0环,00cff300。
原创
发布博客 2024.11.18 ·
301 阅读 ·
4 点赞 ·
0 评论 ·
7 收藏

调用门提权

在我写的2.保护模式+段探测这篇文章中,我们提到了S位对于段描述符的控制,之前我们已经介绍了代码段和数据段,现在我们来把目光转到系统段在这么多中结构里面,我们今天要介绍的就是编号为12的,32位调用门结合上面的图,我们先暂时只需要记住,当S = 0 ,type = C,那么这说明这个段描述符是一个调用门也就是下图所示。
原创
发布博客 2024.11.17 ·
738 阅读 ·
29 点赞 ·
0 评论 ·
24 收藏

DB Type

其中这张表里面Read可读,Write可写,Execute可执行,accessed被访问过,expand-down表示向下扩展,conformimg表示一致位,这几个里面一致位如果是1,那么就说明这个段所指的内存是纯段没有页的,但是现在的操作系统基本上都有分页,故不再赘述。左边是正常的向上拓展,即base到Limit这一段距离的内存有效,右边是base到Limit这一段距离无效,也就是向下拓展,总的来说,向下拓展就是段所指的这部分内存无效。S位会决定是下面哪种表格,当s = 1 时,说明此时是数据段。
原创
发布博客 2024.11.17 ·
317 阅读 ·
5 点赞 ·
0 评论 ·
3 收藏

段探测的研究

而base的值为 00 0000,再添加上两段分开的00,
原创
发布博客 2024.11.17 ·
668 阅读 ·
17 点赞 ·
0 评论 ·
29 收藏

Windows内核编程准备

本课程涉及的驱动,是利用驱动程序的高级权限,去做一些用户层不能做的工作,严格来说,这些写出来的东西不能算是驱动,因为它不会驱动任何设备。
原创
发布博客 2024.11.17 ·
290 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

某杀软环境下的添加账户

我们在某个杀软环境下,正常添加账户一般是会被直接拦截的。
原创
发布博客 2024.11.17 ·
394 阅读 ·
3 点赞 ·
0 评论 ·
1 收藏

UAC ByPass的研究

(User Account Control)是Windows Vista(及更高版本操作系统)中一组新的基础结构技 术,可以帮助阻止恶意程序(有时也称为“恶意软件”)损坏系统,同时也可以帮助组织部署更易于管理 的平台使用UAC,应用程序和任务总是在非管理员帐户的安全上下文中运行,但管理员专门给系统授予管理员 级别的访问权限时除外。UAC会阻止未经授权应用程序的自动安装,防止无意中对系统设置进行更改。
原创
发布博客 2024.11.17 ·
787 阅读 ·
16 点赞 ·
0 评论 ·
29 收藏

SSDT Hook

系统服务描述符表这里以Windows XP SP3为例第一个参数指向的是内核函数存储的首地址第三个参数11c(284)代表的是SSDT表有多少个内核函数第四个参数指向的是一个地址,这个地址表示的内核函数相对应的参数个数比如0x2c = 44,44/4 = 11个参数。
原创
发布博客 2024.11.17 ·
700 阅读 ·
29 点赞 ·
0 评论 ·
17 收藏

Session注入

在进行Dll注入的时候,我们发现没法注入一些系统进程提示我们缺少权限或者拒绝访问,甚至干脆就是什么反应都没有这时候我们考虑往更加底层去跟函数,我们不能再使用在用户层所给我们的函数,我们自己去寻找内核层的函数。
原创
发布博客 2024.11.17 ·
1047 阅读 ·
20 点赞 ·
0 评论 ·
11 收藏

WinDefender Weaker

Windows Vista / Server 2008引入 了受保护进程的概念,其目的不是保护您的数据或凭据。其最初目标是保护媒体内容并符合DRM (数字版权管理)要求。Microsoft开发了此机制,以便您的媒体播放器可以读取例如蓝光,同时 防止您复制其内容。当时的要求是映像文件(即可执行文件)必须使用特殊的Windows Media证 书进行数字签名(如Windows Internals的“受保护的过程”部分所述)。在实践中,
原创
发布博客 2024.11.17 ·
766 阅读 ·
27 点赞 ·
0 评论 ·
10 收藏

Inline Hook

我们之前提到过SSDT Hook IAT Hook等,这种Hook需要基于 这些SSDT,IAT这些表的Hook但是如果我们需要找一些未导出的函数,那么就很难去进行Hook,这就引出了另一种Hook,也就是在代码里面Hook,InlineHookAPI函数都都由操作系统所提供的DLL文件中引来,当在使用某个API函数时,在运行程序后,程序会主动把API所需的DLL链接进入进程中,这样,程序就会像调用自己的函数一样调用API这些在DLL文件中的函数,在加载的时候以写拷贝的权限在进程中申请内存。
原创
发布博客 2024.11.16 ·
862 阅读 ·
24 点赞 ·
0 评论 ·
10 收藏

DLL注入

在DLL注入的时候,起的是远程的线程在上面的参数中,lpStartAddress就是线程的函数,使用LoadLibrary的地址作为线程函数的地址,这样我们就可以用LoadLibrary来起lpParameter中装载的dll路径。
原创
发布博客 2024.11.16 ·
462 阅读 ·
3 点赞 ·
0 评论 ·
6 收藏

DLL劫持

打开我们的Process Monitor,来监测一下某些程序启动的事件,这里我们要注意一个细节,当我们想要寻找存在Dll劫持的程序的时候,要把exe托出它原来的环境来执行,原因是上面所提到的dll加载顺序,我们需要保证找到的dll,一定是exe所在目录加载的。随着版本的更新,代码的更迭,应用程序自带的Dll数不胜数,几乎随便打开一个应用程序的主目录,都能看见一大把Dll,它们中的很多都满足被劫持的条件。这样进行劫持,还是有可能会让我们的程序没有办法正常运行,因为我们链上了一个原本不存在的dll,这样。
原创
发布博客 2024.11.16 ·
779 阅读 ·
23 点赞 ·
0 评论 ·
10 收藏

C语言基础

多用于虚拟设备驱动。此关键字可以使编译器在生成代码时不包含任何注释或标记。仅可以对函数的定义使用,不能用于数据声明、定义,或者函数的声明。如果想要使用x64,需要额外弄一个asm文件,这个后面会说这里给出一个默认C调用的demo,裸函数可以依照这个结构。
原创
发布博客 2024.11.16 ·
723 阅读 ·
20 点赞 ·
0 评论 ·
10 收藏

R3隐藏导入表

通过pe文件,我们可以看见IAT导入表,在这个表中,记录了PE文件的使用以及相关的dll模块我这里在vs2022中用dumpin /imports 命令举例这里我们可以看见,很多api,其中,等api会被重点盯防那么,怎么在导入表中隐藏这些api呢首先我们使用的方法可以是,不直接调用这些函数,转而从kernel32里面直接找到这些函数的真实加载地址来做到不出现敏感api这里我就不放截图演示导入表了,但是同时我们会获得一个疑问那如果杀软连都查,那么怎么办呢。
原创
发布博客 2024.11.16 ·
553 阅读 ·
11 点赞 ·
0 评论 ·
6 收藏

内存加载检测

上面没有提到,在win10里面加载驱动是需要Kernel-Mode driver manager的,如果提示Open handle error那么检查有没有用管理员权限其次,win10以上不接受没有数字签名的驱动,这个可以关掉最后就是,在测试几个注入和shellcodeloder的过程中Session注入在dll进程所附加的活动确实没有启动,但是在线程中的活动照常启动了(疑惑。
原创
发布博客 2024.11.15 ·
987 阅读 ·
28 点赞 ·
0 评论 ·
27 收藏
加载更多