buuctf通关1-6(6部分完成)
1.easyre
通过exeinfope查看到exe文件为64位,使用IDA64位查看exe文件,使用shift+F12直接查看字符串得到flag。
2.reserve1
通过exeinfope查看到exe文件为64位,使用IDA64位查看exe文件,使用shift+F12直接查看字符串
双击flag相关信息,ctrl+x进入程序框图,再使用Tab查看伪代码。
分析可知,要对str2中指定字符进行转换,用R键将str2的ASCLL值转化为字符,可知要将字符o写成0,双击str2,退出伪代码将flag进行字符修改可得答案。
3.reserve2
依旧用IDA64位查看,shift+F12查看字符串。
找到flag信息ctrl+X,再Tab查看伪代码。
分析代码可知,依旧用R进行ASCLL码转换,可知要将flag中的字符i和r都要改成整数1,退出伪代码,修改flag可得答案。
4.内涵的软件
用exeinfope查看是32位,用IDA32位打开,使用shift+12找到flag
5.新年快乐
用exeinfope查看是32位,并且exe被加壳,要先用脱壳软件进行脱壳。
脱壳后的exe用32位IDA打开,tab进入伪代码。
分析代码可知,str2字符串内容是HappyNewYear!,当str1和str2两个字符串的ASCLL值(内容)一样时,得到字符串内容就是flag。
6.xor
用exeinfope查看可知文件是64位无壳
老样子,通过关键信息分析伪代码。
由代码可知,flag长度为33字节,第二个if语句为异或处理,global为flag异或后的结果。
找到global的值,再进行脚本修复。
(脚本修复未解决)
用c语言打开exe文件
写入二进制文件成功,但由于记事本只能读取字符串,无法识别二进制数。
加入只读的代码,成功读出二进制文件。