我最近遇到了一个脚本,可以将文件读入字符串,然后执行等效的操作
CallWindowProc((pointer to string), (pointer to encrypted string), (length of encrypted string), 0, 0)
用脚本语言解密文件中先前定义的加密字符串。这里发生了什么?如何调用CallWindowProc解密字符串?
我最近遇到了一个脚本,可以将文件读入字符串,然后执行等效的操作
CallWindowProc((pointer to string), (pointer to encrypted string), (length of encrypted string), 0, 0)
用脚本语言解密文件中先前定义的加密字符串。这里发生了什么?如何调用CallWindowProc解密字符串?
通常,第一个参数CallWindowProc是函数指针。CallWindowProc将指向字符串的指针视为函数指针,并调用它。只要字符串所在的堆是可执行的,它就会像机器码一样被执行。传递给的其他四个参数CallWindowProc也传递给函数指针,并且可以由机器代码使用,无论它是如何设计的。在这种情况下,您的脚本正在加载的机器代码看起来像是一个解密子程序。尝试在反汇编器中查看机器代码。