攻防世界进阶Re
攻防世界Re进阶区
Shuffle
查,32位,直接拖IDA,看到定义了很多字符,尝试按个R
直截了当的flag
dmd-50
查后64位,拖IDA,跟上一题好像,也是定义一堆字符。按R
往上翻翻看见了md5,先拿去解密
好短啊感觉不太像。查看wp,得知它需要用md5加密后提交,但是要小写的
Guess-the-Number
拿到jar包肯定看Java源码
直接除以5取整数可求得guess_number为309137378
接下来打开jar包,要用唯一路径打开,输入得到的number
answer_to_everything
知识补充:SHA1加密算法_
64位elf,IDA
直接分析可知道kdudpeh就是flag,但是没交对,根据puts的内容可以知道他提交的是一个密码,所以kdudpeh要拿去加密,又根据题目得知有关于SHA1,所以直接拿去加密sha1在线解密 在线加密 (ttmd5.com)
sha1(kdudpeh)= 80ee2a3fe31da904c596d993f7f1de4827c1450a
666
IDA直接进encode
for循环里是加密方式,很简单。跟进key得知长度为0x12即18
随后往上看见了加密字符串,提取出来直接逆向
1 | enflag=[ 0x69, 0x7A, 0x77, 0x68, 0x72, 0x6F, 0x7A, 0x22, 0x22, 0x77, |
知识补充:异或的运算优先级小于+和-,在写脚本的时候需要用小括号括起来。
srm-50
绕弯签到题,查完没问题直接IDA很清楚看到
按照数组的正常顺序重新排就是flag了
CZ9dmq4c8g9G7bAX
Mysterious
签到题,照例无问题IDA
知识补充:C 库函数 – strcat() | 菜鸟教程 (runoob.com)
flag{123_Buff3r_0v3rf|0w}
re1-100
常规IDA
直接交是错的,跟进confuseKey
知识补充:C 库函数 – strncpy() | 菜鸟教程 (runoob.com)
意思就是把上述看到的字符串分成四个部分,每部分十个字符,然后再按照下面的顺序重新排列
所以分好是 daf29f5903(dest) 4938ae4efd(v7) 53fc275d81(src) 053ed5be8c(v15)
按要求排好就是 53fc275d81053ed5be8cdaf29f59034938ae4efd
secret-galaxy-300
wp参考:(14条消息) CTF-攻防世界-Reverse-(secret-galaxy-300)_Beglage-CSDN博客
IDA主函数没东西,搜字符串发现
追这串字符串的所在函数
全是赋值操作,又有有关字符。其中可能藏着flag
然后用OD动调在开始和结束处设置断点 之后调试一波就出来了