buuctf 逆向方向习题

在buuctf上刷题时发现没有详细的习题讲解,虽然本人现在还是一个在校学生,学习逆向的时间也不足一年,属于小白一个。希望在座的大佬在评论区进行讲解和补充。本人较笨,有很多不懂的东西,希望各位多多包涵,大家一起学习。

easyre

首先进行查壳。这里用的是 exeinfo pe 软件进行的查壳。

这里是.text无壳 64位。

用ida 64 位进行静态分析。这题很简单,按shift+f12查看字符串就可以找到其flag。

flag已将找到 flag{this_Is_a_EaSyRe}

reverse1

查壳

无壳 64位。

用ida 64 位进行静态分析。

按f5进行反汇编。看到main函数双击追踪。

分析代码。

if ( !strncmp(&Str1, Str2, v3) )
这一行代码将输入的flag与str2作比较,如果相等则输出“this is the right flag!”

双击Str2 进入。

Str2 为 hello_world

这是将hello_world当作flag进行提交,发现是错的。for循环是对str2做了一个转换的处理,str2里面ascii码为111的字符会被转换为ascii码为48的字符,在IDA中,选中数字按"R"键可以将数字转换为字符

所以正确的flag应该为{hell0_w0rld}

reverse2

还是查壳,无壳 64位。

ida 打开。就看到了fiag,双击进去,查看。

一看就发现了hacking_for_fun,结果一提交就发现自己提交的是错的。

在重新看一遍,发现下面还对flag的操作。

按f5进行反汇编查看源代码。

可发现flag内容发生了替换,就是把ASCII码等于105和114的替换成ASCII码49。

可以写个python脚本进行替换。

跑过后,发现flag发生了更改。flag{hack1ng_fo1_fun}这就是正确的flag。

新年快乐

查壳,发现有壳。

用 upx 进行脱壳。

在将其拖入ida。

按f5 进行反汇编,查看源代码。

找到关键函数双击进去。

看到flag,flag{HappyNewYear!}

  • 17
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值