【发布时间】:2019-08-18 19:09:47
【问题描述】:
我有兴趣通过 NDK 应用演示 printf 漏洞。需要明确的是,我知道要登录控制台,我们可以使用__android_log_print(ANDROID_LOG_DEBUG, "LOG_TAG", "Print : %d %s",someVal, someStr);。我已经尝试过了,我知道它有效。但我明确想演示printf() 的漏洞,特别是使用%n 说明符写入指向的位置。
有没有办法让printf() 达到这种效果,或者可以通过__android_log_print() 实现这个效果?我尝试使用 android/log.h 标头,但没有成功。
我可以通过运行类似于printf(%s%s%s%s%s%s%s%s%s%s) 的内容来让应用程序崩溃。但同样,我不能操纵指针。
出于一般知识的目的,为什么printf() 首先不起作用,__android_log_print() 如何防止这些漏洞利用?
【问题讨论】:
标签: android c++ c android-ndk printf