有人发过来说是高职的逆向,但过于简单而且貌似还是buu原题
reverse_0
ida定位到main函数直接就把flag写出来了
reverse_1
通过shift+f12交叉引用到main函数里,同样很简单的逻辑,str1为我们的输入与str2进行比较,上面将str2的’o’
改为了数字0
str2
将o改为0即可
flag:{hell0_w0rld}
reverse_2
同样很简单的逻辑,输入与&flag进行比较,上面的操作相当于&flag的地址依次加下去,也就是说其实就是遍历flag中的每一位,将i和r改为了1。
flag为
将i和r改为1
写个脚本轻松拿到
flag:{hack1ng_fo1_fun}
reverse_3
main函数下,输入开始为str,被传入sub_4110BE函数进行了加密给了v4
再将v4给了destination,用了一个destination变量长度的一个循环来让destination的每一位加上他,最后与str2进行比较
str2为
再看看sub_4110BE
很显然是base64,且没有进行换表操作
先把循环每一位加上的数减回去以后再进行base64解密操作即可,写出脚本轻松拿到
flag:{i_l0ve_you}