static int checkPassword(char* user_pw) {

  char dummy[128];
  int accept = 0;
  char pw[8];
  char len;
  char* correct_pw = "xf35+";
  memset(pw, 0, sizeof(pw));
  memset(dummy, 0, sizeof(dummy));

  len = strlen(user_pw);
  if (len < 8) {
    strcpy(pw, user_pw);
  }
  if (strcmp(pw, correct_pw) == 0) {
    accept = 1;
  }
  return accept;
}


int main(int argc, char* argv[]) {
  // Where argv[3] should be password
  // ...
  if (strlen(argv[3]) > 128) {
    fprintf(stderr, "Password is too long!\n");
    return 1;
  }

  if (checkPassword(argv[3]) == 0) {
    fprintf(stderr, "Password is incorrect!\n");
    return 1;
  }
  // ...
}

这里的密码是硬编码的,但是有什么方法可以绕过密码检查吗? 我注意到“ len”被声明为字符,但仍然不知道如何解决这个问题

  ask by xcydss1 translate from so

本文未有回复,本站智能推荐:

2回复

在本地安全存储密码

我正在用C编写一个程序,该程序允许用户注册和登录。 用户注册后,我想将其用户名和密码保存在文件中。 据我了解,最好的方法是在密码末尾添加一个随机盐,然后存储盐密密码的安全哈希(例如SHA-1)。 我的问题是:如果我在文本文件中本地存储用户名,哈希和盐,那么如何防止攻击者仅使用自己的sa
1回复

DEP(数据执行预防)是如何绕过的?

有什么方法可以绕过数据执行预防? 如果有人能够深入了解它的工作原理,我将不胜感激。
1回复

如何在 Linux 中绕过 seccomp

即使进程使用 seccomp 并限制退出、读取和写入,我仍然会造成伤害吗? 如果可以的话,怎么可能利用这样的系统?
1回复

通过使用共享页面确定库地址来绕过Windows ASLR

我对ASLR非常熟悉,但是今天我听到了有关Windows中ASLR实施的一个有趣的新事实。 为了优化性能,如果进程A和进程B加载相同的dll,Windows只会将其加载到物理内存一次,并且两个进程将通过共享页面共享同一实例。 这是个老新闻。但是有趣的是,进程A和B都将共享库加载到相同
7回复

如何检查密码强度? [关闭]

如何使用.Net Framework检查密码的强度(作为string )?
12回复

为什么检查错误的密码比检查正确的密码需要更长的时间?

这个问题一直困扰着我。 在Linux上,当被要求输入密码时,如果您的输入是正确的,它会立即检查,几乎没有延迟。 但是,另一方面,如果输入错误的密码,则需要更长的时间来检查。 这是为什么? 我在我尝试过的所有Linux发行版中都观察到了这一点。
3回复

iOS密码强度检查器

寻找关于objective-c的密码强度检查器的建议。 我做了一些谷歌搜索,并没有找到任何点击,在这里也没有。 我可以写一个,但我想我先在这里查一下 - 有人实施了吗?
2回复

密码验证-如何安全检查输入的密码是否正确

我正在开发一个需要多个密码才能访问不同数据区域的应用程序。 例如,一群人可以建立一个聊天,该聊天需要密码验证才能查看。 我正在考虑这样做的方式: 我有我的关键字,假设我们说: 香蕉 当用户输入密码时,我使用RNCryptor使用输入的密钥对Banana进行加密,然