对手在目标应用程序上的字符串输入字段中包括格式化字符。大多数应用程序都假定用户将提供静态文本,并且可能会对格式性字符的存在做出不可预测的响应。例如,在c编程语言(例如printf)的某些函数中,格式化字符%s将打印内存位置的内容,期望此位置识别字符串和格式化字符%n n print trins n print the memory中写的dword的数量。对手可以使用它来读取或写入内存位置或文件,或者仅以意外的方式操纵结果文本的值。如果对手可以写入程序堆栈,则读取或写入内存可能导致程序崩溃,并且写入内存可能会导致执行任意代码。