buuctf,luck_guy
作者:互联网
核心函数get_flag()
switch里面的代码仔细看一下,case4才生成f2字符串,然后case5对字符串进行了一些变换,由case1进行拼接并输出,在case1里面的f1字符串已经能看见部分flag,GXY{do_not_
这个for循环会执行5次,只要改变rand函数的返回值ret,让ret与mod200分别等于4,5,1,程序就会自己把flag吐出来。
猜测call rand后返回值存在了eax里。
在rand处设置断点,启动ida调试,remote linux debugger
linux虚拟机那边会要求输入数字,经分析必须偶数
此时程序会断在设置的rand断点处
f8单步一下,能发现eax的值变了,直接右键-修为4,f9进入下一轮,修改为5,f9下一轮,修改为1,最后两轮不用修改,程序结束后linux虚拟机那边就能看到结果了。
标签:rand,buuctf,虚拟机,flag,linux,字符串,guy,断点,luck 来源: https://blog.csdn.net/amber_o0k/article/details/119608589