刘收获

导航

2017年11月8日 #

[置顶] 反射Dll注入分析

摘要:(源码作者:(HarmanySecurity)Stephen Fewer) 0x01 反射Dll注入的优点 1.反射Dll注入的主要优点是它没有以主机系统的任何方式(例如LoadLibrary和LoadLibraryEx)进行注册,因此在系统和进程级别上基本上都是不可检测的,并且反射DLL注入写入了 阅读全文

posted @ 2017-11-08 23:05 沉疴 阅读(568) 评论(0) 推荐(0) 编辑

2017年9月12日 #

[置顶] MinHook测试分析02 (x64)

摘要:在X64模式中,存在的问题是JMP指令和整个地址空间相比仅仅覆盖了很窄的范围。因此引入一个中继函数(Relay Function)来实现对64位Detour函数地址的跳转。 在hook的分析之前,先谈一下前一篇帖子评论中的相关话题。 之前发布的一篇Minhook分析,有大牛说没有写出多线程安全,指令 阅读全文

posted @ 2017-09-12 23:02 沉疴 阅读(822) 评论(0) 推荐(0) 编辑

2017年9月2日 #

[置顶] MinHook 分析01 (x86的jmp+offset类型hook)

摘要:MinHook的原理就在于重写目标函数。在这次分析的X86模式中,32位相对JMP覆盖了整个地址空间。因为在相对地址计算中溢出的位被忽略,所以在X86模式中,函数的地址是容易掌控的。 直接来进入正题。 使用时需要通过#pragma来导出模块定义文件 (.def)中的DLL函数: Hook的第一步是用 阅读全文

posted @ 2017-09-02 21:40 沉疴 阅读(603) 评论(0) 推荐(0) 编辑

2017年8月24日 #

[置顶] 32位程序中获取64位函数地址

摘要:总结一下之前学习过的在blackbone中的一个x86程序中获取x64位进程函数地址的方法,之前就已经系统地梳理了一遍,今天贴出来分享一下。 这个程序的目的说白了就是要让让运行在Wow64环境中的x86应用程序可以获取到x64下ntdll.dll中的Native API的地址,从而能够直接调用x64 阅读全文

posted @ 2017-08-24 13:10 沉疴 阅读(505) 评论(0) 推荐(0) 编辑

2019年10月24日 #

分析记录:文件不落地的恶意脚本攻击——傀儡进程盗号

摘要:分析的一个恶意Html文件,因为不熟悉脚本语言,所以花了近一天的时间。这里主要是记录一下自己的解密流程(分析得并不是很全面),一是备忘,二是希望能为正在学习或是参与到类似恶意程序分析的同学们提供一点参考,PE文件模块的功能就不做详细的展开了。 正文开始。 恶意程序全程调脚本访问url,url里又是一 阅读全文

posted @ 2019-10-24 16:39 沉疴 阅读(501) 评论(0) 推荐(0) 编辑

2019年8月9日 #

恶意宏学习备忘04——恶意宏调试记录

摘要:记录某次恶意宏分析 样本来源:https://mp.weixin.qq.com/s/xzO3pG45CNN-HGKDokI92A 可以用取巧的方式来进行宏调试,纯粹的宏能做到事情实际上是有限的,一般是对文档或 模板的操作。而宏病毒往往是作为payload的载体,通过创建其他例程,释放运行payloa 阅读全文

posted @ 2019-08-09 17:19 沉疴 阅读(192) 评论(0) 推荐(0) 编辑

恶意宏学习备忘03——手动清除文档宏

摘要:0x01破坏宏标志 在解析OLE文件时,我们介绍过Directory,其中其偏移0x42H这个字节的表示DirectoryEntry的类型Type。0为非 法,1为目录(storage),2为节点(Stream),5为根节点。 我们可以定位宏工程所使用的Directory,将Type位修改为0,即非 阅读全文

posted @ 2019-08-09 17:10 沉疴 阅读(152) 评论(0) 推荐(0) 编辑

恶意宏学习备忘02

摘要:Office文档(如:.doc、.ppt、.xls等)很多是复合文档(OLE文件),所有文件数据都是存储在一个或多个流中。每 个流都有一个相似的数据结构,用于存储元数据的数据结构。这些元数据有用户和系统的信息、文件属性、格式信 息、文本内容、媒体内容。宏代码信息也是以这种方式存储在复合文档中的。为了在O 阅读全文

posted @ 2019-08-09 16:02 沉疴 阅读(246) 评论(0) 推荐(0) 编辑

恶意宏学习备忘

摘要:0x01实例一 这段宏首先拼接了一段字符串CGJKIYRSDGHJHGFFG,这段字符串是一段命令,接下来就调用Shell() ,执行这段命 令。但是CGJKIYRSDGHJHGFFG的内容经过混淆,我们没办法一眼看出执行了什么命令,我们可以改造宏代码,使用 Msgbox将CGJKIYRSDGHJH 阅读全文

posted @ 2019-08-09 15:09 沉疴 阅读(454) 评论(0) 推荐(0) 编辑

2019年2月21日 #

IRP小结 0x01 IRP & IO_STACK_LOCATION(结合WRK理解)

摘要:写博客整理记录一下IRP相关的知识点,加深一下印象。 所有的I/O请求都是以IRP的形式提交的。当I/O管理器为了响应某个线程调用的的I/O API的时候,就会构造一个IRP,用于在I/O系统处理这个请求的过程中代表该请求。 0x01 IRP与IO_STACK_LOCATION的结构体概览 IRP由 阅读全文

posted @ 2019-02-21 17:37 沉疴 阅读(501) 评论(0) 推荐(0) 编辑

2019年2月20日 #

文件防删除保护(miniifiter)

摘要:0x01 思路(原理) 驱动层文件保护的思路是通过minifilter过滤文件删除相关的IRP,并将目标文件与被保护文件相比较,命中保护规则的话返回STATUS_ACCESS_DENIED拒绝访问;也可以进一步利用回调函数获取的FLT_CALLBACK_DATA结构体解析文件删除操作对应的发起者进程 阅读全文

posted @ 2019-02-20 10:20 沉疴 阅读(1268) 评论(0) 推荐(0) 编辑

2018年2月25日 #

初识虚拟化

摘要:0x01 硬件虚拟化 早期的虚拟机都是进程级虚拟机,也就是作为已有操作系统的一个进程,完全通过软件的手段来模拟硬件,软件再翻译内存地址的方法实现物理机器的模拟,这样虚拟效率较低,资源利用率低。之后Intel和AMD相继推出了支持硬件虚拟化的处理器,所谓硬件虚拟化,也就是在硬件抽象层对虚拟技术提供直接 阅读全文

posted @ 2018-02-25 22:14 沉疴 阅读(450) 评论(0) 推荐(0) 编辑

2018年1月25日 #

HYPERSPACE

摘要:Windows中,不管是应用程序还是内核程序,都不能直接访问物理内存,所有非IO指令都只能访问虚拟内存地址,如Mov eax, DWORD PTR[虚拟地址]形式,但是,有时候,我们明明已经知道了某个东西固定在物理内存条某处,假如系统时间的值永远固定存放在物理内存条的物理地址0x80000000处, 阅读全文

posted @ 2018-01-25 15:02 沉疴 阅读(380) 评论(0) 推荐(0) 编辑

2018年1月22日 #

几个常用内核函数(《Windows内核情景分析》)

摘要:参考:《Windows内核情景分析》 0x01 ObReferenceObjectByHandle 这个函数从句柄得到对应的内核对象,并递增其引用计数。 两个特殊情况: #define NtCurrentProcess() (HANDLE)-1 #define NtCurrentThread() ( 阅读全文

posted @ 2018-01-22 23:35 沉疴 阅读(1086) 评论(0) 推荐(0) 编辑