0x00前言
在大三开始入门逆向,已学完小甲鱼解密篇,刚开始看《加密与解密》,现在沉浸在快 乐的刷题学习中.....
0x01刚接触的逆向题
reverse1
首先拿道题第一步先查壳,我用的查壳工具是peid和exeinfope
发现可以直接打开,双击运行,发现报错
用IDApro64位打开,使用main函数定位法
找到main函数
按F5反汇编成c语言代码
可以看到比较函数,因此答案可能在str2里面,双击查看str2的位置,找到flag
找到flag
拿到文件发现没有格式
用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,打开,flag,新手,main From: https://www.cnblogs.com/angetenar/p/18124154