某CCC-BASE的逆向

该博客分享了系统安全分析相关内容,从驱动入口开始,涉及初始化MJ函数、创建符号连接等。还介绍了反调试机制,如检测debugport等;初始化各种数据,包括获取函数地址、物理内存使用等;此外,提及其他功能,如进程回调检测、时间检测等,最后列举了符号链接B的部分接口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

很早之前就已经分析过一遍,一直放在。今天突然又看到了,放着也是放着,索性拿出来分享一下,很多东西的细节省略了,这里只是谈及用到了什么技术,具体细节需要自己去学习;这里的版本是22-03-14,时间比较久了,有些可能说的不全,可能和你的分析有差别,以你的为准。

分析

为了方便描述,这里就从驱动入口开始,去掉敏感信息,初始化MJ函数。之后初始化了一个事件。后面会创建了一个符号连接,之后会提到。

 这样就有了两个符号连接,这里称为A和B,A是用来初始化的,B是用来获取各个信息。来看看A中有什么东西(通信数据被加密,可逆,这里省略),内容很多,挑感兴趣的说一下。

反调试

每次通信时会检测的东西,前提是打开反调试。获取debugport、检测peb、queryprocess 1f、ticketcount是否大于5000,检测到之后结束被调试的进程

顺便分离内核调试

初始化各种数据

api初始化,获取各个函数的地址

 ssdt/shadowssdt、pagelist、gTimerHashTable、lasspid、crsspid、以及win32k的某些偏移(对窗口、绘制等东西不熟,所以这里获取到的某些结构,我也不知道是什么)、ptebase等一些数据。

获取物理内存的使用和vad的偏移,以及获取ssdt表的各个函数

 初始化系统线程,每十秒执行一次

枚举受保护进程的FreezeCount

 20一次的枚举debugport、threadhinden、检测内核线程、以及和时间相关的东西

 

 30s一次的内核调试器分离,vm代码中有SharUserData的相关检测、以及KdRefreshDebuggerNotPresent,检测到bugcheck蓝屏

 其他功能

进程、线程、dll回调、ob都注册了,看看检测了什么东西。

时间检测

 vt和SharUserData检测

 mapping检测

 shellcode检测,和mdl有关,这里先看一看

 一些不常见检测

intelPT和nmi中断相关的blog在分析之后也看到过,不过比我当时分析的更详细,更具体,这里简单描述一下,这两个功能的目的都是中断下来检测当前的rip是否在收保护的进程中操作,如果是这里会保存下来,给你标记下来。

https://bbs.pediy.com/thread-273980.htm

https://bbs.pediy.com/thread-274613.htm

 hook 0e是的,它真的还在,不过做的方式是替换页表,而且在kpti开启的情况下会蓝屏,具体可以参考看雪的blog,这里就是给一个假的cr3,记录访问这个cr3的进程,好消息是17763不支持(难道是有什么难言之隐,就算没有,也只有在不支持内核页表隔离的系统上跑)

 MiTrackPtesAborted、MiDeadPteTrackerSListHead、MmTrackPtes mdlmapping映射检测,简单来说就是当mapp结束之后会插入到MiDeadPteTrackerSListHead链表,这里会开一个线程去检测这里面的数据

其他地方的线程暂停检测 

检测线程的栈信息

 当前计算机信息收集获取ataport.sys、storport.sys、CLASSPNP.sys、ndis、scsi等一些计算机网络、串口、文件的驱动,调用他们并获取计算机的信息,这里需要注意的是只支持19041一下的版本,瞧不起我19041以上的用户?这里的信息可以通过符号路径B获取到对应的数据

 还有很多接口,这里就不一一列举了。

符号链接B的接口

这里也列举几个有意思的接口,其中有几个可以利用的接口,mdlread,以及内核内存读,这里没有写。

 以及很多接口

 这里选两个受害者出来看看,第一个是取消apc,通过将ethread下的SchedulerApc直接ret的方式取消apc的调用

 第二个是调整当前进程的vad属性,参考blog​​​​​​​可以看看

 其实里面还有很多内容,有兴趣的可以自己去学习学习。

### 在 Stata 中实现 CCC-GARCH 模型的步骤与方法 在 Stata 中实现 CCC-GARCH 模型可以通过 `mgarch` 命令完成。以下是具体的操作说明以及代码示例: #### 1. 数据准备 确保数据已经导入到 Stata 并进行了必要的预处理,包括缺失值处理、对数收益率计算等[^3]。 ```stata * 导入数据并生成对数收益率 gen log_return_x = ln(x / L.x) gen log_return_y = ln(y / L.y) * 检查是否有缺失值 list if missing(log_return_x, log_return_y) ``` #### 2. 构建均值方程 建立均值方程以提取残差序列。通常使用 ARMA 或其他回归模型来描述均值行为[^3]。 ```stata * 使用 AR(1) 模型作为均值方程 regress log_return_x L.log_return_x predict resid_x, residuals regress log_return_y L.log_return_y predict resid_y, residuals ``` #### 3. 检验 ARCH 效应 在构建 GARCH 模型之前,需验证残差是否存在 ARCH 效应[^3]。 ```stata * 对残差进行 ARCH-LM 检验 archlm resid_x, lags(4) archlm resid_y, lags(4) ``` 如果存在显著的 ARCH 效应,则可以继续进行下一步。 #### 4. 运行 CCC-GARCH 模型 利用 Stata 的 `mgarch ccc` 命令可以直接估计 CCC-GARCH 模型[^2]。 ```stata * 安装 mgarch 如果尚未安装 ssc install mgarch * 运行 CCC-GARCH 模型 mgarch ccc (log_return_x log_return_y = , noconstant), arch(1) garch(1) ``` 以上命令会基于两个变量 (`log_return_x`, `log_return_y`) 构造一个具有 ARCH(1)-GARCH(1) 结构的 CCC-GARCH 模型。 #### 5. 输出结果解释 运行完成后,Stata 将显示各变量的条件方差、条件相关系数以及其他统计指标。这些结果可用于进一步的风险管理和投资决策分析[^2]。 --- ###
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值