【发布时间】:2020-09-25 11:51:28
【问题描述】:
我正在学习 C 并决定使用代码。我可以通过写入任何字符但在 108 个字符处写入字母 K 来找出密码,因为它会覆盖 trigger 变量,我可以打印消息 inside。我想知道有没有办法通过更改我的代码中的返回地址来打印消息inside?如果需要更多详细信息,请告诉我。
我的代码:
#include <stdio.h>
char getdata() {
int trigger = 'A';
char data[100];
gets(data);
return (char) trigger;
}
void login() {
printf("inside!\n");
exit(0);
}
void main() {
printf("enter ");
if (getdata() == 'K') {
login();
} else {
printf("wrong.\n");
exit(1);
}
}
我希望输出为:
当用户输入一些密码时,它应该打印 inside 并且在我有地址空间布局时甚至应该可以工作
随机化。
【问题讨论】:
-
@Inian 抱歉打错了。我已经编辑了我的代码。
-
你想要什么,读取一个字符还是一个字符串?
-
@bruno 我希望能够通过更改返回地址来打印消息
inside,所以我猜它是字符串还是字符都没关系。 -
Edit 您的问题并添加输入示例,以及实际和预期输出。
标签: c optimization