任务3_Reverse

分析程序reverse_0,请找出隐藏信息,并将flag提交。flag格式:flag{<flag值>}
分析程序reverse_1,请找出隐藏信息,并将flag提交。flag格式:flag{<flag值>}
分析程序reverse_2,请找出隐藏信息,并将flag提交。flag格式:flag{<flag值>}
分析程序reverse_3,请找出隐藏信息,并将flag提交。flag格式:flag{<flag值>}

1.分析程序reverse_0,请找出隐藏信息,并将flag提交。flag格式:flag{<flag值>}

拿到题目先查下壳

64位,没有壳(壳是对代码的加密,起混淆保护的作用,一般用来阻止逆向)
拖进IDA(64位)进行反汇编

Flag:flag{this_Is_a_EaSyRe}

2.分析程序reverse_1,请找出隐藏信息,并将flag提交。flag格式:flag{<flag值>}


64位,没有壳
拖进IDA(64位)进行反汇编

先查看一下字符串,简单的题目会有flag或者敏感数据字符等信息,方便我们定位函数查看字符串的方法为shift+F12
这里全局搜索flag——ALT+T


找到了关于flag的信息,F5进去看看伪代码

观察函数,发现如果str1和str2相同的话,就说明找的想要的flag
要输入的str1就是flag
双击str2

得到str2的原始数据
然后观察函数,发现与str1作比较的str2被更改过,用R将十进制数转换为字符,观察这个for循环遍历了str2,将’o’ 改为了’0’
Flag:flag{hell0_w0rld}

3.分析程序reverse_2,请找出隐藏信息,并将flag提交。flag格式:flag{<flag值>}


64位,没有壳
拖进IDA(64位)进行反汇编

先查看一下字符串,简单的题目会有flag或者敏感数据字符等信息,方便我们定位函数查看字符串的方法为sh
ift+F12

看到了一点flag 但不确定是否为正确的flag
双击点进去上面的“this is the right flag” ctrl+x交叉引用进入引用它的代码段 F5查看伪代码

s2为输入的函数,如果输入的s2和flag相等,则输出“this is the right flag”
上面则是一个替换函数,从0到flag的长度-1(就是flag的长度的for循环次数) flag里面ASCII 值为i和r的字符会被替换成值为1的字符,选中105、114、49按R键查看ASCII码值对应的字符
即为hacking_for_fun里面的“i”和“r”被替换成了“1”
所以flag{hack1ng_fo1_fun}
Flag:flag{hack1ng_fo1_fun}

4.分析程序reverse_3,请找出隐藏信息,并将flag提交。flag格式:flag{<flag值>}

  1. 查看程序的的字节长度和是否加壳

2.用ida分析

程序对输入的字符串先进行base64加密

再对输入的字符串进行了加密(称不上加密吧,只能进行了简单运算),再与程序中的字串比较,相关就输出rigth flag!。

3.逆运算

分析程序,写一个逆算出flag的程序

import base64
data='e3nifIH9b_C@n@dH'
flag=''
for i in range(len(data)):
    flag+=chr(ord(data[i])-i)
flag=base64.b64decode(flag)
print(flag)

FLAG:flag{i_l0ve_you}

  • 23
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wh1teSu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值