查个壳:
64位,运行:
进IDA看看:
简单加密函数,不多赘述上脚本就好:
int main(){
string Des = "ylqq]aycqyp{";
string flag = "";
for (int i = 0; i < Des.size(); i++) {
for (int j = 32; j < 127; j++) {
if ((Des[i] <= 96 || Des[i] > 98) && (Des[i] <= 64 || Des[i] > 66)) {
if (j - 2 == Des[i])flag += j;
} else {
if (j + 24 == Des[i])flag += j;
}
}
}
cout << flag << endl;
return 0;
}
得到一个a{nss_ca{esa{r},看着明显就不对,(不信的话就交一下看),看到每个‘{’前边都有一个a,会不会是多解?(因为我没加break,所以如果多解的话是会出现多一个字符出来)我们把break加上。
int main(){
string Des = "ylqq]aycqyp{";
string flag = "";
for (int i = 0; i < Des.size(); i++) {
for (int j = 32; j < 127; j++) {
if ((j <= 96 || j > 98) && (j <= 64 || j > 66)) {
if (j - 2 == Des[i]){
flag += j;break;
}
} else {
if (j + 24 == Des[i]){
flag += j;break;
}
}
}
}
cout << flag << endl;
return 0;
}