今天逛了逛实验吧, 找了个难度为易的题练练手…
题目为rev50, 是一个elf文件,直接IDA载入后找到主函数。
- 对src按r转换成字符串。
- 根据题目逻辑,如果执行文件时没有参数输入,则提示:
1 | usage ./rev50 password |
如果有参数传入, 则首先将src的内容通过memcpy函数赋值给dest。
则此时 dest 的内容就为 mercedes
1
if ( !strcmp(argv[1], (&dict)[i]) && !strcmp(&dest, (&dict)[i]) )
根据这个逻辑, 如果输入(即angv[1])与 dict的其中一个相等,并且dest的内容与dict中的那一个相等,则提示 Good password,也就是我们的输入就是正确的flag。
- dict的内容… 根据上面的for循环,应该有999个…
在dict找到了 dest的内容,更加确定答案就是’mercedes’
所以最终答案就为:
1 | mercedes |