hardcode的密码破解有多难

这篇文章中实现了lua文件的简单加解密功能,
但是感觉密码直接写在全局变量中很容易被人拿到,
但是究竟有多难, 自己尝试了一把

相关代码片段为:

static const char *getF (lua_State *L, void *ud, size_t *size) {
  ...
  //将文件读入LoadF结构体的buff内存, 并将实际读到的长度赋予size, 
  *size = fread(lf->buff, 1, sizeof(lf->buff), lf->f);
  //将buff内容解密
  *size = aes256_decrypt(key, lf->buff,*size);
  return (*size > 0) ? lf->buff : NULL;
}

反编译执行文件, 找到getF函数,一看

反编译

我的密码刺裸裸的展现出来了

##疑问:

  1. 有密码, 没有S盒的情况下, 是否能解密?
  2. 有密码, 有执行文件, 是否能把执行文件转换成lib, 另外写个程序调用aes256_decrypt 方法进行解密? (也就相当于有了S盒)

如果以上两个都能实现, 那这个加密也就骗骗非技术人员罢了…