• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
angetenar
博客园    首页    新随笔    联系   管理    订阅  订阅

新手【BUUCTF】逆向writeup()

0x00前言

在大三开始入门逆向,已学完小甲鱼解密篇,刚开始看《加密与解密》,现在沉浸在快 乐的刷题学习中.....

buuctf_reverse地址

0x01刚接触的逆向题

reverse1

首先拿道题第一步先查壳,我用的查壳工具是peid和exeinfope

 发现可以直接打开,双击运行,发现报错

用IDApro64位打开,使用main函数定位法

 找到main函数

 按F5反汇编成c语言代码

 可以看到比较函数,因此答案可能在str2里面,双击查看str2的位置,找到flag

找到flag

 

 


 

reverse_2

 拿到文件发现没有格式

 

 

用IDApro打开,先用main函数定位+F5

 

看到flag变量,直接双击

 发现看到flag字符

 提交后发现不对,然后注意到上面的的运算过程,当flag+i地址的值为105或者114时,将其变成49,查阅ASCII码表得到,105是i,114是r,49是1,所以该代码的作用是将flag里面的字符串中的i和r修改为1。所以最后的flag为{hack1ng_fo1_fun}

 


 

 内涵的软件

打开程序,显示的内容貌似没什么用

然后查壳,发现是32位PE文件,无壳

 

 接着用32位IDA打开,上来就看到这一串,根据题目“内涵的软件”,发现{}内的就是flag

 


 

 

新年快乐

拿到文件先查壳,发现是upx壳,但是因为我还没学过手动脱壳,所以下了一个万能脱壳工具

 一键脱壳后,用IDApro打开

 发现代码逻辑比较简单,flag就是HappyNewYear!

 


 

XOR

 

拿到题后,先用IDA打开,找到main函数,发现关键在global变量

 同时注意到flag长度应该为33位,而且用的是异或变换输入得到flag

 查看global变量,一数正好是33位

 编写脚本

 

 


 

reverse3

先查壳,32位无壳

 打开IDA,用main函数定位法

 发现代码对输入首先做了一个类似加长,随后对每个字符进行了变换(s[i]+=i)

 查找str2的值,并编写脚本

 

发现类似加长编码的操作时base64变换

 于是将逆运算的字符串使用在线base64解码工具解码,得到flag

 

posted @ 2024-04-09 20:18  定州刺猬  阅读(262)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3