自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

pureman_mega的博客

程序=数据+算法

  • 博客(122)
  • 资源 (2)
  • 收藏
  • 关注

原创 windows 平台相关的资料(开发/逆向/漏洞等方向)

dll编写相关:链接:https://www.cnblogs.com/talenth/p/9585208.htmldll劫持:链接:https://www.cnblogs.com/wayuzhi/p/4152516.htmldll相关:链接:http://www.voidcn.com/article/p-pohgxapy-su.htmlcom编程相关:链接:https://blog.c............

2020-01-20 10:45:18 695

原创 locked勒索病毒流程记录

大部分功能都集中在模块3里面,其采用c#编写;内部有通过base64编码的形式携带易被利用的驱动和用于加密的模块。其中3.1和3.2可以在github上找到对应的仓库;关键点:socket+VirtualAlloc+CreateThread。模块 3,1,nday提权 2,byovd攻击进行杀软对抗 3,调用加密模块加密文件。模块 2,带有混淆的hta脚本通过mshta.exe执行。主要介绍其各个模块之间运行流程,不做细节上分析。3.1 相关git链接。3.2 相关git链接。

2024-03-26 13:38:54 164

原创 关于byovd攻击的原材料

关于byovd攻击的防御模型还行还没有怎么听说过,大部分厂商都是像wd一样使用黑名单或者提取特征,没有那种通用的处理方法。里面应有尽有啊,简直就是,完全看你自己的发挥咯。用的好就是第三方驱动插件,支持各种功能diy。

2024-03-12 13:40:20 350

原创 进程间通信之alpc

常见的进程间通信有管道,共享内存等。下面演示一种交少见的机制,alpc (advanced local procedure call)。文件CPP-ALPC-Basic-Client.cpp。下面出现的代码都来自参考链接中,非本人编写。文件CommandALPC.cpp。

2024-01-05 17:18:00 479

原创 通过windows cng api 实现rsa非对称加密

相对于aes等对称加密算法,rsa加密算法不可逆性更强。非对称加密在通常情况下,使用公钥对数据进行加密之后,如果没有私钥,基本是不可能实现解密的。在一些勒索程序中,非对称加密会经常出现;通过运行结果可以看出,调用系统cng api 每次生成的密钥对都不一样,这就很ok。(下文通过cng api演示rsa加密,不做原理性介绍)

2023-12-23 14:22:10 476

原创 在windows11上彻底关闭系统更新

步骤 1,定位到系统更新的关键程序文件,如下图中绿框中的4个文件,通常在c:\windows\system32目录下面,wuauclt.exe,wuaueng.dll,wuapihost.exe,wuapi.dll。系统更新是由具体的程序来完成的,可以通过修改(重命名或删除)该程序的文件,使得系统无法启动更新这个过程;步骤 2 ,以文件wuauclt.exe为例,选中该文件并右键,查看属性;步骤3,对wuauclt.exe进行重命名,会有弹框提示,如下图。如果上面都成功执行,7的确定会变亮,并点击确定。

2023-12-12 22:30:12 636 1

原创 Windows Management Instrumentation (WMI) 的使用---一些系统接口的替代者

之前在一些样本里面看到了类似于sql的字符串,一直不太清楚那些是做什么的。哪些语句是wql(大概就是windows系统自己的查询语句),通过执行这些特定的查询语句,可以获取或修改许多系统相关的信息。比如说查询系统中当前运行的进程,系统中服务信息等;之前这些操作一般通过系统底层的api(CreateService,OpenProcess等)来获取。用来做一些运行环境检查(虚拟机,杀毒软件等)。通过上面的截图可以看到,查询一个类(class)的信息,会有多个字段返回,就像sql里面的表(table)。

2023-12-04 14:56:34 468

转载 How to exploit a vulnerable windows driver

【代码】How to exploit a vulnerable windows driver。

2023-09-22 16:52:22 81

原创 c++ stl 之vector使用

C++ STL(标准模板库)是一套功能强大的 C++ 模板类,提供了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构,如向量、链表、队列、栈。当然,向量中除了可以存放int类型的数据,其他的像char,DWORD,std::string或者自定义的结构体都是可以的。向量容器(一个 C++ 标准的模板),它与数组十分相似,唯一不同的是,向量在需要扩展大小的时候,会自动处理它自己的存储需求."

2023-07-04 11:35:41 177

原创 通过修改peb中的命令行参数字段实现进程创建的劫持

之前分析过的一些恶意软件中会使用这种方法来进行浏览器的主页劫持,其原理就是在进程创建回调函数中处理进程的创建消息。下面示例展示了如何修改命令行参数:以abcdefg.exe进程为例,其完整文件路径为:"C:\Users\1909\Desktop\abcdefg.exe";进修改后变为:"C:\Users\1909\Desktop\abcdefg.exe" -124,当然也可以变为:"C:\Users\1909\Desktop\abcd.exe" -124。

2023-06-25 11:15:46 268

原创 windows 导入表/导出表 hook

【代码】windows iat hook。

2023-06-22 19:44:10 292

原创 windows pe文件导入表隐藏

假如,需要使用CreateFileA,WriteFileA,CloseHandle等api,我们会通过GetProcAddress来获取其地址,然后保存到自定义的函数原型指针中。但是,这样就会导致每个函数都有一个单独的变量,无法统一管理;分析过一些文件,发现里面都会对引用的api进行动态获取,然后通过内存指针调用。细细想来,这种方法还是有一定的对抗作用的,如果别人想要分析的必须的稍微深入或者动态调试一下。1,动态获取函数地址,统一保存,通过下标(漂移来识别)2,调用时,对函数地址进行函数指针化,完成调用。

2023-06-16 22:38:35 89

转载 windows 反调试相关/peb 结构体

【代码】windows 反调试相关。

2023-06-06 16:04:00 122

原创 minhook探究

在接口的设计,hook的兼容性等方面,还是值得我们初学者解决的。熟悉inline hook的,在阅读了minhook的代码之后就会发现,它也是用的这种hook方法。紧接着是一个jmp指令,但是跳转的地址看起来有点不对,实际上是反汇编引擎解析有误,从源码中可以知道这里实际上是跳转到一个绝对地址(0xff,0x25,0x000000,0x7fff05fa4175),也就是CreateFileA第二条指令开始的地方(0x7fff05fa4175)。总的来说还是好用的。

2023-06-05 16:02:33 654

原创 I/O完成端口(iocp)相关内容学习

通过阅读微软的I/O完成端口介绍,可以大致了解该机制通常结合异步I/O解决多线程的高并发问题。1,通过CreateIoCompletionPort将文件句柄与端口进行关联,并设置处理异步I/O业务的线程数。2,创建线程,等待处理I/O业务。3,调用异步I/O接口。

2023-06-01 17:05:57 160

转载 Windows下x86和x64平台的Inline Hook介绍

如果你通过windows.h头文件导入WriteConsoleA这个函数,会发现它调用了kernel32.dll的WriteConsoleA而不是kernelbase.dll的,这个你可以去反汇编看看,但是在kernel32.dll内部,你会发现函数头部就是一句jmp指令,而真正执行的是kernelbase.dll里的函数,所以一般选择要Hook的函数的时候,如果这个函数头部是一句跳转指令,则去修改跳转过去的地址。而__i386__是gcc定义的x86下的宏,_M_IX86是微软定义的。

2023-02-26 21:40:20 347

原创 [小记]注入服务进程/跨session注入

(都是系统管理员权限启动)左边是重启后,右边是重启前。进程的SeDebugPrivilege被“点开"后,可以注入svchost.exe。目标进程是svchost.exe,是服务进程,在session0;弄巧成拙:通过ProcessHacker把资源管理器进程重启后,发现又可以注入服务进程了。所有和session没有什么关系,那是为什么?最近测试注入遇到一个问题:OpenProcess 失败,报错码:5,没有权限。1,是否是管理员权限启动程序?2,注入的目标进程有什么特殊?3,上网搜索相关内容并继续试验。

2023-02-14 11:00:09 426

原创 [推荐]aes,base64使用

上面的aes和base64都是c语言实现的,没有本地库依赖,可以根据需要添加使用。后面的一个网站是在线的aes工具,支持多种模式与填充方式,输出支持base64和hex格式,可以用来作为辅助验证程序的正确性。(具体实现细节待研究)

2023-02-12 11:50:10 163

原创 cjson,libcurl 使用demo

这些开源的库使用起来能够节省不少精力和时间。如果是自己去实现相关的功能,一方面是时间来不及,一方面是效果和性能不一定有保证。这些库都是经过长时间维护和优化的,在开发中应用确实比较方便(其实是自己做不到同等效果,哈哈)。(相关的源码文件都可以在github上下载)

2023-01-16 11:18:38 227

原创 ACE-SSC-DRV64.SYS 文件分析

2,设备对象的通信操作,对应驱动里面irp_mj_device_control处理函数。驱动接收到数据之后,根据里面的索引执行对应的函数,没有使用通常的控制码来区分子功能。读取进程的内存时,使用PsAcquireProcessExitSynchronization来“锁住”进程,避免在读取操作期间,进程退出导致异常。1,设备对象的打开操作,对应驱动里面irp_mj_create处理函数中,会对进程名进行过滤;经分析,发现主要功能是进程的内存读取,为应用层提供相关的接口。而不是直接遍历进程。

2023-01-14 13:27:07 2737

转载 (转载)windows消息管理机制

一、基本概念1.SDK和API的区别SDK:软件开发工具包(外语首字母缩写:SDK、外语全称:Software Development Kit)一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。API:应用程序接口。windows API是通过C语言来实现的,头文件为windows.h;MFC和QT是C++实现的,是C++的GUI开发框架。3. 句柄4.消息。

2023-01-07 14:09:43 269

原创 通过进程id获取用户名

可以看到,User name这一栏里面,有NT AUTHORITY\SYSTEM,NT AUTHORITY\LOCAL SERVICE,HKS\1909等。不同的用户名拥有不同的权限。下面的代码获取的用户名与ProcessHacker的结果有一点不同。在一个样本中看到的:通过进程id获取对应的用户名,来确定需要注入的目标进程。实际结果中SYSTEM对应的是HKS$(HKS是设备名称,后面跟着'$‘,来表示SYSTEM);其他的LOCAL SERVICE,1909是一样的。

2022-12-24 19:19:00 840 3

原创 windows 各种inject/hook学习材料(自用)/监控远程线程创建

windows hook 学习

2022-12-01 11:35:25 524

转载 获取系统完整版本号/本机ip/系统开机时间/当前时间/本机mac/网关mac

【代码】获取系统完整版本号/本机ip/系统开机时间/当前时间/本机mac/网关mac。

2022-11-21 09:47:54 182

原创 终章-天花板

距离我最开始接触Equation Group的样本已经有3,4年了吧,分析这些样本在很大程度上促进了我对windows系统的了解;虽然我还是无法完成类似的作品,但是现在至少可以‘欣赏’一下。

2022-08-04 17:35:10 226

原创 windows驱动保活的思路/apc demo

windows 驱动保活

2022-07-11 10:18:20 255

翻译 基于tdi实现http的get和post请求

基于tdi实现http的get/post请求

2022-06-27 16:27:03 199

原创 域名拦截/嗅探

wfp拦截域名/ip

2022-06-08 09:23:34 5126

转载 kernel mitigations

*原文链接:Kernel Mitigations - CNO Development Labs (cnotools.studio)*关于windows kernel mitigationsIn this section, we shall take a brief look at some of the Windows kernel mitigations that might hinder or completely block our exploits. Additional details .

2022-03-09 11:03:16 466

原创 LIST_ENTRY 使用练习

来看一下它的登录验证方式,如下图:我觉得它的验证方式是真的厉害,你觉得了。

2022-03-06 08:29:21 1569

转载 关闭 Windows Defender

通过api关闭windows defender 服务

2022-01-29 15:40:54 352

原创 cerber勒索软件分析

前置关于对称/非对称加密:对称加密和非对称加密的区别 - 姚春辉 - 博客园 (cnblogs.com)常见的对称加密算法有:DES、3DES、Blowfish、IDEA、RC4、RC5、RC6 和 AES常见的非对称加密算法有: RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)...

2022-01-18 09:35:08 690

原创 zamana 反恶意软件核心模块分析--amsdk.sys

zamana AntiMalware 是windows平台上的一款反恶意软件(轻量级),其核心模块amsdk.sys实现了内核层的功能;amsdk.sys没有加壳/混淆,而且还有很多调试信息,这有利用我们理解其开发流程和细节。(分析环境:win 11 64,zamana AntiMalware 免费版)以下从其六个主要的功能模块展开分析:1,authentication manager (进程认证管理)2,mini filter (文件过滤功能)3,self guard (自我保护)

2022-01-13 16:46:44 398

原创 一个简单的windows filesystem mini filter 驱动例子

代码网上都有,就讲一下解决安装问题:1,mini filter 的安装,一开始还是项普通的 legacy driver一样,通过命令函 "sc create servicenam binPath type=kernel"发现一直报错:找不到文件;然后调整"sc create servicename binPath type=filesys";驱动可以起来,然后FltRegisterFilter失败,报错找不到对象(0xc0000034).原来mini filter driver 安装需要通过inf 文件

2022-01-10 18:17:32 1151

原创 (VMProtect 分析)跟着ida和WinDbg逛VirtualMachine

本文中的代码示例来源于vgk.sys(1.0.0.3):从文件中抽出的某个handler的开头部分,代码出现的先后顺序就是其逻辑上的执行顺序。如下: .stub0:00000001405BC2AD push 2B6CD1BFh.stub0:00000001405BC2B2 call handler5.stub0:00000001405716F3 handler5 proc near

2021-12-06 18:03:13 1316

原创 通过遍历系统句柄信息(SystemHandleInformation),获取系统进程和当前进程的eprocess

实验环境:win10 1909 64参考:https://blog.csdn.net/qinlicang/article/details/4489727首先,获取系统的句柄信息;然后,在句柄信息表中进行搜索,通过数据结构进行匹配;最后,确定系统进程和当前进程的eprocess;主要数据结构如下:typedef struct _SYSTEM_HANDLE_TABLE_ENTRY_INFO { USHORT UniqueProcessId; USHORT CreatorBack

2021-11-23 17:39:41 10502

原创 在应用层调试驱动程序 vgk.sys

***以下记录如何在应用层调试驱动程序vgk.sys,以及调试过程中获得的一些数据。1,如何让vgk.sys 在应用层跑起来?vgk.sys 是某游戏反作弊程序的一部分,是一个驱动文件;本文调试的vgk.sys 版本是1.0.0.3,64位。正常情况下,驱动程序需要在ring0环境中运行。但是vgk.sys 经过混淆虚拟化处理了,windbg双机调试/交互会很慢。之前在其他论坛上有人提起:可以在ring3调试驱动文件。于是,我就试了试。首先,看一下驱动程序和普通程序文件之间的相同点与不同点(大.

2021-11-18 16:09:13 1738

原创 windbg 设置忽略access violation

问题:调试程序,遇到 访问寄存器所指的地址导致access violation?之前调试,使用 'r @rip=0x****' 指令是有效的,但是突然遇到修改寄存器内容之后单步运行,寄存器的内容又还原了。widbg 输出:"This exception may be excepted and not handled",意思是windbg 捕获到了这个异常并且没有处理;然后导致程序一直卡在这里无法往下单步调试。解决方法:windbg中设置相应的地方即可:1,在windbg 菜单栏中Debug单

2021-11-10 10:30:27 614

原创 Safengine Shielden v2.3.7.0 驱动脱壳

前言: 之前找工作的时候,注意到有个公司找windows驱动开发/逆向工程师,所以他们公司产品里面应该包含有驱动程序(呐,必须的学习一波)。首先,安装他们公司的相关产品,然后找到里面的驱动文件;一看驱动文件几百k,应该是加壳了(Safengine Shielden v2.3.7.0)。如下图:脱壳过程: 文件丢进ida里面发现没法看,脱壳当然是不会脱壳的。嗯,先把驱动跑起来吧。创建服务,启动服务;驱动成功跑起来了。驱动程序运行之后,对应的会有一些数据产生:1,通过winObj类似工具...

2021-10-28 10:03:39 5351

原创 基于ndis protocol driver 后门 分析

样本文件MD5: 42f43edc9937e4aa5f985773f5ea9daa这个样本有点老了,之前分析了一下他的命令执行部分,数据流程一直没有弄明白,现在记录一下。这个样本一上来会通过注册一个临时的 protocol driver (ndis 5.0, 差别多在xp 时代) ;注册成功后会返回一个ndis_handle 指针,然后通过这个指针加上硬编码的偏移找到 tcp/ip protocol driver 的 ndis_handle ,再挂钩(hook) 该结构中的receive 等回调函数;.

2021-09-16 22:36:56 4408

ACE-SSC-DRV64原文件及分析idb

ACE-SSC-DRV64原文件及分析idb

2023-01-14

空空如也

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

TA关注的人

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