buu刷题2.1

2.1.1 reverse 1(re)

64bit可执行文件,无壳

打开ida64,快捷键Shift+F12,可以打开string窗口,一键找出所有的字符串,右击setup,还能对窗口的属性进行设置

找到一个类似于Flag的字符串。

双击,查看字符串在程序哪个位置被调用了

双击跳转到该值地址处,发现有被sub_1400118C0引用

sub_ 指令和子函数起点

F5查看伪代码

分析伪代码

strncmp函数为字符串比较函数

strncmp(string1,string2,count)

string1给定的字符串,string2给定的字符串,count要进行比较的长度

如果string1和string2的前count个字节完全相等,则返回为0

  sub_1400111D1("input the flag:");

  sub_14001128F("%20s", &Str1);

  v3 = j_strlen(Str2);

  if ( !strncmp(&Str1, Str2, v3) )

    sub_1400111D1("this is the right flag!\n");

  else

    sub_1400111D1("wrong flag\n");

v3是str2的长度,说明当str1完全等于str2时,输入为0。!strncmp(&Str1, Str2, v3):说明完全相等时输入为1,当str1=str2时,就是flag。

双击查看str2的值

得到flag就是{hello_world},提交发现错误,想想前面的步骤,只能从伪代码入手。

for ( (&v6 + 1) = 0; ; ++(&v6 + 1) )

{

v8 = (&v6 + 1);

v2 = j_strlen(Str2);

if ( v8 > v2 )

break;

if ( Str2[(signed __int64)(&v6 + 1)] == 111 )

Str2[(signed __int64)(&v6 + 1)] = 48;

}

ESC退出,再F5查看伪代码,注意这段对str2进行的代码

&v6 + 1 相当于一个变量,把&v6 + 1 的值赋到 v8,当v8大于v2时,终止

如果str2中间这个东西等于111(参照ASCII码表111表示字符o)

就把48(48表示字符0)赋值给str2中间这个东西;

想到错误的flag{hello_world},o换成0,得到flag{hell0_w0lrd}

2.1.2 reverse2(re)

查壳,发现是64bit文件。先直接拖入ida64。

Shift+F12查看string,

双击打开this is the right flag!

右键,input the flag—jump to operand

发现重要的东西

将78h长按R转换ASCII。转换成{

发现flag{hacking_for_fun}

提交发现错误,F5看看伪代码,

主要代码,转换一下ascii

这句话意思是,把i和r转换成1

得到flag{hack1ng_fo1_fun}

2.1.3内涵的软件(re)

照常查壳,32bit文件

拖入ida32,查看main函数

发现这里面还有一个main函数,双击打开后就是如下代码

程序员粗心忘记把变量写进来了,这里面就v3的值长得像flag试试提交下,发现正确。

2.1.4 二维码(misc)

下载文件发现是一个二维码图片,直接扫二维码,扫不出来。把文件拖到010,发现一个pk开头的压缩包

手动分出来,并转化成zip后缀文件。(将pk开头的这一段复制,粘贴之后保存文本,后面加上.zip后缀。)

打开新保存的zip文件,发现需要密码

根据文件名称4numbers,四位的数字

解压得到

密码7639,打开得到flag

2.1.5你竟然赶我走(misc)

打开发现是一个图片文件,拖到010查看一下,发现不用任何操作最后面就直接有flag

flag{stego_is_s0_bor1ing}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值