Snowming04's Blog
一颗红❤
Toggle navigation
Snowming04's Blog
主页
Cobalt Strike
Accelerated C++
区块链安全
友链
关于我
常用工具
代码积累
归档
标签
Cobalt Strike 宏样本生成的错误
2020-11-20 17:53:41
966
0
0
snowming
CS (测试版本 4.0)生成的默认宏样本,如下定义此结构体: ``` Private Type PROCESS_INFORMATION hProcess As Long hThread As Long dwProcessId As Long dwThreadId As Long End Type ``` 但其实: ``` hProcess As Long hThread As Long ``` 在64位机器环境下均定义错误。 因为 64 位环境下, VBA 中 Long 仅为4字节,如果按照这个宏样本去运行,取第三个参数的值,就会发现并不是正确的 PID: ``` Debug.Print pInfo.dwProcessId ``` 但 CS 的默认宏样本却能正确运行,这是因为 hProcess 不过是一个进程句柄,是可以被4字节容纳下的。但是错误的内存大小定义会影响到占位和第三个参数的值,所以应该根据系统选择性的定义: ``` #If VBA7 And Win64 Then Private Type PROCESS_INFORMATION hProcess As LongPtr hThread As LongPtr dwProcessId As Long dwThreadId As Long End Type #Else Private Type PROCESS_INFORMATION hProcess As Long hThread As Long dwProcessId As Long dwThreadId As Long End Type #End If ``` 注: `LongPtr` 在64位系统中为8字节。
上一篇:
使用 CNG 实现 AES 加密
下一篇:
探索 PEB
0
赞
966 人读过
新浪微博
微信
腾讯微博
QQ空间
人人网
提交评论
立即登录
, 发表评论.
没有帐号?
立即注册
0
条评论
More...
文档导航
没有帐号? 立即注册