type
Post
status
Published
date
slug
summary
tags
CTF
推荐
category
CTF-WP
category (1)
icon
password
comment
RE
xor
先用exeinfo查看exe文件

image-20240810090302670
得知是64位的c编译的文件,就拿ida去反编译

image-20240810090608094
大致的解密思路就是用数组里面的密文去异或0x24,直接写py脚本
找到密文所在位置

image-20240810090906624

image-20240810091009695
TEA
查看文件位数

image-20240810091203700
去ida反编译

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
逆向工程进阶之北
这边注意先加减后异或的运算顺序,因为python没有防止溢出的机制,所以得自己判断32位的溢出
Cython-Strike: Bomb Defusion
题目给了pyd文件,那就直接import
然后执行一下help方法,注意源文件文件名我并没更改
运行结果
发现我们其实得到了类似伪代码的结果,我们大致理一下这个伪代码
我们先去DefuseKit看看bomb变量的值
发现说让我们用read_memory遍历去读取内存,那我们就按它说的做
去解密一下得到

image-20240816154451057
找到关键的代码
我们猜测和mask有关系,就先去查看bomb类中的mask
得到mask是7355608,仔细分析if里的条件,注意第一个条件其实是int ^ (ma == 114)注意运算顺序!!!所以关键是根据第二个条件进行爆破
得到密码3786171
再去解炸弹
得到flag
UPX
直接用upx -d脱壳,然后放入ida,shift+f12看所有字符串

image-20240818093119245
upx-revenge
UPX脱壳,只是要010要修改一点东西

image-20240818103344425
然后用upx -d脱壳

image-20240818103427699
去ida查看

image-20240818103510717
直接得到flag
moedaily
比较恶心的一题逆向题,大致思路是对你输入的flag每四位进行一个128的循环加密,它恶心就恶心在加密过程要自己推,不是直接全给你,以下是我推出来的加密过程
根据这个加密去写解密就方便许多
总之这个题目肝了三小时代码
babe-z3
z3方程求解,先正常脱壳,放进ida查看

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

image-20240819123342129
xtea

image-20240820192947455
- 作者:qetx
- 链接:http://qetx.top/article/aa5cee0e-10ae-4e1a-ac14-977bfd943c79
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。








