lab1

首先这题有挺多做法的,先从简单的说起吧,逆向做法,直接上脚本

key = "Do_you_know_why_my_teammate_Orange_is_so_angry???"
cipher = [7, 59, 25, 2, 11, 16, 61, 30, 9, 8, 18, 45, 40, 89, 10, 0, 30, 22, 0, 4, 85, 22, 8, 31, 7, 1, 9, 0, 126, 28, 62, 10, 30, 11, 107, 4, 66, 60, 44, 91, 49, 85, 2, 30, 33, 16, 76, 30, 66]
i=0
flag=""
while(i<len(key)):
  c=ord(key[i])^cipher[i]
  flag+=chr(c)
  i+=1
print flag

第二种常见的pwn做法,gdb调试找password,然后输入magic

image.png

首先下断点下到输入magic之前(即0x8048712),由gdb分析可知,ebp-0x80存放的是password,ebp-0x7c存放的是输入的magic,那么我们可以在输入magic之前查看password的值,并输入同样的数给magic

image.png

这里看到password的值是1011303426,于是我们输入这个数

image.png

第三种做法也是看网上wp的,就是把程序跳转的命令给nop掉,让程序始终执行输出flag,不过对于一般的pwn题,这种解法并没有用,这里也只是熟练一下ida的功能

image.png

把上面这个代码nop掉

image.png
image.png

最后变成这样就行了

image.png

运行一下,效果如图

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容