最近,我遇到了一个脚本,该脚本会将文件读取为字符串,然后执行脚本语言中的
CallWindowProc((pointer to string), (pointer to encrypted string), (length of encrypted string), 0, 0)


等效功能,以解密先前在脚本中定义的加密字符串。文件。这里发生了什么?对CallWindowProc的调用如何解密字符串?

#1 楼

通常,CallWindowProc的第一个参数将是函数指针。 CallWindowProc将指向字符串的指针视为函数指针,并对其进行调用。只要该字符串所在的堆是可执行的,就将其视为机器代码来执行。传递给CallWindowProc的其他四个参数也传递给函数指针,可以由机器代码使用,但它是经过设计的。在这种情况下,您的脚本正在加载的机器代码似乎是一个解密子例程。尝试在反汇编程序中查看机器代码。