type
Post
status
Published
date
slug
summary
tags
CTF
推荐
category
CTF-WP
category (1)
icon
password
comment

RE

xor

先用exeinfo查看exe文件
image-20240810090302670
image-20240810090302670
得知是64位的c编译的文件,就拿ida去反编译
image-20240810090608094
image-20240810090608094
大致的解密思路就是用数组里面的密文去异或0x24,直接写py脚本
找到密文所在位置
image-20240810090906624
image-20240810090906624
image-20240810091009695
image-20240810091009695

TEA

查看文件位数
image-20240810091203700
image-20240810091203700
去ida反编译
image-20240810092122681
image-20240810092122681
发现是tea加密算法(好像被改过了),去参考https://en.wikipedia.org/wiki/Tiny_Encryption_Algorithm
接下来写解密脚本,这边有一个坑就是要注意ida当中的整数的位数,默认是32,所以在写解密脚本的时候也要关注整数变量的位数

SecretModule

可能被我非预期了
直接查看customize.sh文件,解密其中的base,得到shell脚本
大致意思是说根据你的7次不同的操作要么在字符串中拼接“114514”,要么拼接“1919810”,拼接后的字符串的md5为77a58d62b2c0870132bfe8e8ea3ad7f1的话,包裹上moectf就是flag了,直接用python脚本遍历2^7种所有的情况

逆向工程入门指北

image-20240810104507232
image-20240810104507232

逆向工程进阶之北

这边注意先加减后异或的运算顺序,因为python没有防止溢出的机制,所以得自己判断32位的溢出

Cython-Strike: Bomb Defusion

题目给了pyd文件,那就直接import
然后执行一下help方法,注意源文件文件名我并没更改
运行结果
发现我们其实得到了类似伪代码的结果,我们大致理一下这个伪代码
我们先去DefuseKit看看bomb变量的值
发现说让我们用read_memory遍历去读取内存,那我们就按它说的做
去解密一下得到
image-20240816154451057
image-20240816154451057
找到关键的代码
我们猜测和mask有关系,就先去查看bomb类中的mask
得到mask是7355608,仔细分析if里的条件,注意第一个条件其实是int ^ (ma == 114)注意运算顺序!!!所以关键是根据第二个条件进行爆破
得到密码3786171
再去解炸弹
得到flag

UPX

直接用upx -d脱壳,然后放入ida,shift+f12看所有字符串
image-20240818093119245
image-20240818093119245

upx-revenge

UPX脱壳,只是要010要修改一点东西
image-20240818103344425
image-20240818103344425
然后用upx -d脱壳
image-20240818103427699
image-20240818103427699
去ida查看
image-20240818103510717
image-20240818103510717
直接得到flag

moedaily

比较恶心的一题逆向题,大致思路是对你输入的flag每四位进行一个128的循环加密,它恶心就恶心在加密过程要自己推,不是直接全给你,以下是我推出来的加密过程
根据这个加密去写解密就方便许多
总之这个题目肝了三小时代码

babe-z3

z3方程求解,先正常脱壳,放进ida查看
image-20240818185405155
image-20240818185405155
根据最后一个if可以知道我们只要求解满足红框内的方程的v11,v12,v13和s即可,直接用python的z3库
注意解出来的数字通过n2s函数转成字符串同时还要逆序一下,因为v11,v12,v13和s都不是用char类型读取出来的,都是小端序,但是flag读进去的时候根据ida可知使用char类型读入的,所以要逆序一下
moectf{9c0525dcbadf4cbd9715067159453e74}

dynamic

直接动态调试进入第一个加密函数查看a1数组的值
image-20240819123342129
image-20240819123342129

xtea

image-20240820192947455
image-20240820192947455
2024VCTF2023香山杯-misc-pintu
Loading...