攻防世界RE1 writeup

解题过程

将题目给出的exe文件拖入ida中,查看main函数。

main函数

分析函数的逻辑,发现用户需要输出一个字符串,存储到变量v9中。如果v9的值与v5的值相等则会打印unk_413e90中的值,否则打印aFlag_0的值。

查看两个输出的值:

可以看到如果输入正确的话会打印flag get,这说明flag存储在v5中。

查看v5的值,发现没有值:

v5

仔细查看main函数发现第10行有一个存储操作,将一个变量的值存储到了v5中。v5的值是在main函数执行过程中才被传入的,因此之前找不到值就可以理解了。

查找xmmword变量中存储的值:

扫描二维码关注公众号,回复: 8090691 查看本文章

可以将变量的值转为ascii码,同时发现qword变量也可以转为ascii。

字符串值逆序即为flag:

DUTCTF{We1c0met0DUTCTF}

总结

这是一道简单的逆向题,只要知道题目中涉及到的存储函数,这个题目很好解决。

有一个需要注意的点是最后给出的flag值是逆序的,这是受到了存储方式的影响。具体可以了解下大端存储和小端存储的区别。

猜你喜欢

转载自www.cnblogs.com/kevinbruce656/p/11993709.html