攻防世界(no-strings-attached)
no-strings-attached
1.下载附件并查壳
32位且是elf文件
2.用ida32位打开
(1)找到main函数,并查看字符串
无可用信息
3.f5生成伪c代码
当跟进最后一个时发现重要信息
如果s2和ws相等就—跟进
成功。
然而s2是dword_8048A90被decrypt加密之后的产物,
法一: 分析decrypt这个函数
思路:跟进decrypt然后分析它的运算逻辑,然后,自己写脚本,得到最后的flag
提取这些s和dword_8048A90的数据(shift+e)
这里引用一位大佬的话
脚本如下:
1 |
|
flag: 9447{you_are_an_international_mystery
法二: 动态调试
思路:数据在执行程序中就计算好了,我们直接读取
b 表示下断点,gdb 中可以直接用已知函数名下断点,也可通过*指定地址下断点。
r 表示程序运行,n 表示单步步过,s 表示单步步入
x 指令表示查看寄存器内容,参数/s 表示用字符串形式显示,/w 表示四字节宽,/sw 表
示字符串显示,四字节宽
总结: 这道题是我第一次接触动态调试,所以在gdb这一步花了很长时间,在kali安装gdb老是出错,问恩师之后发现Ubuntu自带gdb,于是开始捯饬Ubuntu,经过多次错误,多次上网查询,多次问恩师,解决了出现的问题,这样也算为以后动态调试打下基础。
在使用ubuntu出现的问题
1:屏幕小 (安装vmtool)
2:权限不够 (网上有教程)
3:路径不能有中文名
4:chmod命令使用
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Hexo!