宏Virus

网友投稿 203 2022-10-09


宏Virus

前言: 去年自学了部分关于宏病毒的知识,一直忙于学新知识,转眼又过了年,年前没能汇总、整理、分享宏病毒相关的笔记与心得,这次通过两个样本聊聊常见的宏病毒。

样本一 样本二
加密混淆(附C++去混淆代码) 加密混淆

Function XXX() 这种格式表示一个函数 End Function Sub AutoOpen() 运行文档时候,自动运行宏 End Sub

#include "pch.h" #include #include #include #include using namespace std; /* 转换Ascii码 */ // 保存转换后的数据 vector vNewData; // 保存获取数字 string nSaveStr; void FilterNumberOfAscii(const char* str,int & nSize); int ToAsciiOfchar(int temp); int main() { // 需要转换的数据 char Data[] = { "xxxxxxxxx" }; // 注意不能sizeof求数组大小,会把最后的'\0'也当作数据来比对的 int nDataSize = strlen(Data); FilterNumberOfAscii(Data, nDataSize); // 遍历输出转换后的数据 for (auto iter = vNewData.begin(); iter != vNewData.end(); ++iter) { cout << (*iter); } putchar('\n'); system("pause"); return 0; } // Ascii判断及转换 int ToAsciiOfchar(int temp) { // 保存转换后的Ascii char cSaveAscii; istringstream is(nSaveStr.c_str()); is >> temp; // 2. 将数字判断是否是ascii码 if (isascii(temp)) { // 3. 转换成ascii码保存到 cSaveAscii = toascii(temp); vNewData.push_back(cSaveAscii); nSaveStr.clear(); return 1; } return 0; } // 条件过滤 void FilterNumberOfAscii(const char* str, int & nSize) { int temp; nSaveStr.clear(); for (int i = 0; i < nSize; i++) { temp = 0; /*36!78asd99*/ // 1. 连续的数字就有可能是Ascii if (('0' <= str[i]) && ('9' >= str[i])) nSaveStr += str[i]; else { if (nSaveStr.size() != 0) if (!ToAsciiOfchar(temp)) { // 如果是连续数字且不是Ascii码怎么办?解决思路如下: // 1、注意顺序是最后一个在最前面,调用reverse 反转 // nSaveStr.reserve(); // // for (int i = 0; i < nSaveStr.size(); ++i) // { // // 2、把数据入栈即可 // vNewData.push_back(); // } // 因为该样本加密规律 所以上面就用不到了 cout << "发现了连续数字非Ascii码: " << temp << endl; } // vNewData.push_back(str[i]); } } // 注意:因为按照strlen长度来for,最后一次容器中内容也要转换 if (nSaveStr.size() != 0) ToAsciiOfchar(temp); }

样本一的分析就到这结束,通过上面的分析应该对宏有一定的认知与解密去混淆的思路,下面一起来看第二个样本。

以上代码被识别的数据做了三件事:  1、%ComSpEc% C:\Windows\system32\cmd.exe  2、cmd参数 /c的含义是执行指定字符串然后中止  3、混淆powershellb变量


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Jenkins RCE CVE-2019-1003000 漏洞复现(jenkins sonar)
下一篇:IDEA中GitLab的使用详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~