xctf新手逆向训练刷题

xctf新手逆向训练题

这两天在工作之余刷了下xctf的逆向新手题

0x1 open-source
下载文件后可以直接看源码
在这里插入图片描述
要求是输入4个参数,第一个参数为’0xcafe’,第二个参数是符合判定条件的int值,第三个参数是’h4cky0u’,然后进行一些数据操作得到hash,并用十六进制方式输出(%x)

编写脚本实现,得到flag为0xc0ffee
在这里插入图片描述
0x2 simple-unpack
提示是加了壳的二进制文件,查壳
在这里插入图片描述
一开始不知道怎么脱二进制文件的壳,参考:https://bbs.pediy.com/thread-157645.htm

到软件中提示的地址下载脱壳程序进行脱壳(https://github.com/upx/upx/releases)

在这里插入图片描述
脱壳成功后用IDA查看,即得到flag
在这里插入图片描述0x3 logmein

查看下载的文件
在这里插入图片描述
用IDA找到对应关键字进行分析
在这里插入图片描述重点函数:
在这里插入图片描述编写脚本即可
在这里插入图片描述
注意:小端模式

0x4 insanity
下载文件后直接编辑器就能查看到flag

0x5 getit
IDA中反编译
在这里插入图片描述
可以看到t就是flag,我们需要知道?的数值,编写脚本即可得到flag
在这里插入图片描述
在这里插入图片描述
此题注意:python中字符串是不可以直接操作修改的,可以先改为列表,然后重新生成

0x6 python-trade

.pyc后缀的文件,直接用EasyPythonDecompiler解了,获得源码
在这里插入图片描述
在这里插入图片描述
可以看到操作:对输入的字符串进行自定义的encode操作然后用base64加密

编写脚本解码即得flag
在这里插入图片描述
0x7 re1

放进IDA查看

查看主函数,可以看到只要输入的字符串和v5相同就可以了,找到对应v5的值即可得flag
在这里插入图片描述
0x8 Hello,CTF

用IDA打开,找到主要函数
在这里插入图片描述
从下面的循环判定值为17和上面v13的长度为34猜测出两位代表一个字符

十六进制转ASCII即可得flag
在这里插入图片描述
0x9 no-string-attached

IDA中查看主函数
在这里插入图片描述进入每个函数看看

先看banner()
在这里插入图片描述
就是打印一些东西,查看对应打印的数值(unk_80488B0和8048960)
在这里插入图片描述
可以看到是两个字符串,就是一些欢迎的信息之类的

查看下一个,也是打印一些信息,需要你输入字符串
在这里插入图片描述
再看下一个,是主函数了,只要输入的函数和s2相同即可,s2是两个输入进行decrypt操作后得到的值
在这里插入图片描述
看decrypt,对两个宽字节进行了操作。编写脚本实现功能即可得flag
在这里插入图片描述
在这里插入图片描述
0xA csaw2013reversing2

IDA中看主函数
在这里插入图片描述
通过运行程序,发现并不会进入if的判定。

lpMem+1就是我们需要知道的乱码消息
在这里插入图片描述
可以知道通过memcpy_s操作将unk_409B10的数据给了lpMem
在这里插入图片描述
查看sub_401000
在这里插入图片描述
是对lpMem进行了一些操作的,猜测是由于并没有运行,所以出现乱码

用IDA动态调试(debugger),下断点
在这里插入图片描述
跳过进入判定后的ExitProcess(),直接跳到下面弹出messageboxA的地方,就能得到flag了
在这里插入图片描述
0xB maze

看题目就知道是一个迷宫题

IDA中找主函数
在这里插入图片描述
看到这四个不同函数的判断,猜测应该就是上下左右了
在这里插入图片描述
分别点进去查看,得知’O’为左,‘o’为右,’.‘为上,‘0’为下,并且在函数中有规定了8这个边界值
在这里插入图片描述
接下来找迷宫和终点
在这里插入图片描述
通过最终判定的条件,可以知道终点是’#’
在这里插入图片描述
601060就是需要找的迷宫
在这里插入图片描述
在HEX界面查看
在这里插入图片描述
根据边界值8重新排列,23就是终点,只走20即可得flag
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值