新手【BUUCTF】逆向writeup()
0x00前言
在大三开始入门逆向,已学完小甲鱼解密篇,刚开始看《加密与解密》,现在沉浸在快 乐的刷题学习中.....
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

新手【BUUCTF】逆向writeup()的更多相关文章
- 简单的Elf逆向Writeup
ElfCrackMe1 html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acrony ...
- IDF-CTF-简单的Elf逆向Writeup
ElfCrackMe1 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !imp ...
- 新手学逆向,调试abexcm1过程
写在前面的话:在下完全就是一个新手,现在目前在学16位汇编,偶尔用OD调试看看程序,主要就是为了学习,今天写这个帖子,完全就是笔记用,然后拿出来和大家一起讨论交流. 因为刚开始接触,文章可能一些地方有 ...
- 攻防世界(Ctf-Web 新手练习区 Writeup)
平台地址:adworld.xctf.org.cn 在打着暑假工赚零花钱之余,我将这些题利用空余时间刷了一遍,感觉内心还是比较满足的! 题目:view_source 这道题没啥好说的,在url的前面加上 ...
- BuuCTF Web Writeup
WarmUp index.php <html lang="en"> <head> <meta charset="UTF-8"> ...
- IDF实验室-简单的ELF逆向 writeup
题目:http://ctf.idf.cn/index.php?g=game&m=article&a=index&id=39 下载得到ElfCrackMe1文件,直接用IDA打开 ...
- 攻防世界新手区pwn writeup
CGfsb 题目地址:https://adworld.xctf.org.cn/task/answer?type=pwn&number=2&grade=0&id=5050 下载文 ...
- JarvisOJ 逆向Writeup
1. 爬楼梯 先运行apk,查看具体的功能 爬一层楼是可以点击的,爬到了,看FLAG是不可以点击的.我们可以大致的了解到到了具体的楼层才可以看到flag,多次打开软件,楼层数目是随机的. 用APKID ...
- buuctf admin writeup
熟悉的登陆注册页面,结合结合题目admin的提示,想到是通过修改admin用户密码或伪造admin身份的方式来以admin账户.查看源码,看到了一个hint: 下载下来,是靶场的源码首先尝试抓包分析, ...
- 逆向破解之160个CrackMe —— 001
CrackMe —— 001 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...
随机推荐
- OpenHarmony 3.2 Beta多媒体系列——音视频播放gstreamer
一. 简介 多媒体播放框架主要的实现在PlayerServer服务中,这个服务提供了媒体播放框架所需要的实现环境,继续跟踪代码分析发现,PlayerServer主要通过gstreamer适配层,对 ...
- SQL中使用年月日来进行分组
SQL按年月日进行分组 select count(project_name), create_at from table_a group by date_format(create_at, '%Y%m ...
- Java+HTML预习笔记_20140610
1.HTML <img> 标签 HTML <img> 标签 实例 在下面的例子中,我们在页面中插入一幅 W3School 的工程师在上海鲜花港拍摄的郁金香照片: <img ...
- redis 简单整理——redis shell[九]
前言 简单介绍一下redis的shell命令. 正文 redis 提供了一些工具,如redis-cli.redis-server.redis-benchmark等. redis-cli -r 对red ...
- js es6 Proxy
传统的get,set ES6 中引入Proxies,让你可以自定义Object的基本操作.例如,get就是Object的基础操作方法. const obj = { val: 10 }; console ...
- 实训篇-Html-表单练习
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- 2024-04-17:用go语言,欢迎各位勇者莅临力扣城,本次的挑战游戏名为「力扣泡泡龙」。 游戏的起点是一颗形状如二叉树的泡泡树,其中每个节点的值代表该泡泡的分值。勇者们有一次机会可以击破一个节点泡
2024-04-17:用go语言,欢迎各位勇者莅临力扣城,本次的挑战游戏名为「力扣泡泡龙」. 游戏的起点是一颗形状如二叉树的泡泡树,其中每个节点的值代表该泡泡的分值.勇者们有一次机会可以击破一个节点泡 ...
- js 实现双指缩放
前言随着智能手机.平板电脑等触控设备的普及,交互方式也发生了改变.相对于使用鼠标和键盘进行交互的电脑,触控设备可以直接使用手指进行交互,而且基本上都支持多点触控.多点触控最常见的操作莫过于双指缩放了. ...
- 设备像素、css像素、设备独立像素、dpr、ppi 之间的区别
一.背景 在css中我们通常使用px作为单位,在PC浏览器中css的1个像素都是对应着电脑屏幕的1个物理像素 这会造成一种错觉,我们会认为css中的像素就是设备的物理像素 但实际情况却并非如此,css ...
- 面试题45(Java)-把数组排成最小的数(中等)
题目: 输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个. 示例 1: 输入: [10,2] 输出: "102" 示例 2: 输入: [ ...