buu第一页wp
buu1
- Easyre
main函数
- reverse1
{hello_world}中‘o’被0替换
- reverse2
{hacking_for_fun} i r被替换为1
- 内涵的软件
发现类似flag的字符串,用flag{}包住得到flag
- 新年快乐
upx
- Xor
对global再进行一次异或得到flag
Exp:
- reverse3
先对输入字符串base64编码,再字符串加密
过程反向即可得到flag
Exp:
- Hello world
Mainactivity类中
- 不一样的flag
上下左右4种操作,应该是迷宫题
字符串可以分为5行
*1111
01000
01010
00010
1111#
遇到1退出 遇到#正确提升
说明要从*沿0走到#
Flag为flag{222441144222}
- SimpleRev
先把text key分析出来
发现字符加密处理
关键判断,要得到flag就要通过密文及key反推
可以采用枚举法
Exp:
- [GXYCTF2019]luck_guy1
根据代码,推测先读入f2再处理f2最后拼接得到flag
f2 exp:
得到结果
- java逆向解密
关键加密
Exp:
- [BJDCTF2020]Justre
大括号内即为flag
- 刮开有奖
发现可疑字符串,找到关键函数
分析代码发现String数组应该是flag且长度为8
继续分析,sub_4010F0函数应该是处理上方10个字符
跟进sub_4010F0函数
分析一下应该是字符的加密,同时注意到这个函数的第一个参数为int a1,查看调用处发现是将数组首地址传入这个函数,那么类似a1+4*i的即可转换为a1[i],原理:
将其转换为c语言代码
继续向下分析,调用了sub_401000函数,跟进
看到调用了byte_407830函数,跟进
发现
推测是base64编码
根据判断推出flag
获取前两位exp:
- [ACTF新生赛]easyre1
upx脱壳
关键代码,遍历法得到flag
Exp:
- 简单的注册机
第一种方法:
分析java代码
找到修改flag值的smali代码
修改为const/4 v2,0x1
打包安装,随便输入得到flag
第二种方法
构造合适注册码
或者
直接计算flag的值
- [GWCTF 2019]Pyre
先把pyc反编译
分析知input1为flag,反向运算
Exp:
- Findit
方法类似16题
还有个方法
Frida通杀
注意到此类题往往将输入与密文使用equals比较,可以用frida通杀获取比较双方的值或者直接修改返回值为1
Exp:
- [ACTF新生赛2020]rome1
关键字符处理及判断
Exp:
- [FlareOn4]Login
分析js
Rot加密
解密得到flag
- Rsa
公匙获取n,e,计算私匙
解密即可
- [WUSTCTF2020]level1
Exp:
- [GUET-CTF2019]re1
关键判断,跟进sub_4009AE
一大串if,要返回1,即令条件不成立,分别求出各位
未给出第7个字符,只能猜或者burp爆破,得到a1[6]=’a’
得到flag
- CrackRTF
分析代码,发现密码两部分组成,先看第一部分
第一段输入应该是数字且大于100000
跟进sub40100A函数,继续跟进到sub_401230
看不懂。。。。在网上查了各个函数用法后发现是sha加密
0x8004u决定了加密方法
返回主函数
只能暴力破解了
Exp:
得到第一段flag
然后分析第二段
跟进sub_401019后发现是MD5加密
没有了第一段的条件不好暴力破解,继续往下分析,发现调用了sub_40100F函数
查询函数用法后
跟进sub_401005函数
第二个密码一共六位,观察rtf文件,发现前几位应该是文件标记位
取出前几位与AAA异或得到第二部分
Exp:
输入密码,发现多了个rtf文件,得到flag
- [WUSTCTF2020]level2
- [MRCTF2020]Traform
分析代码发现是一个简单的异或
Exp:
- [2019红帽杯]easyRE
入口是这里,调用了一个函数进去看看,看不懂,看下第一个参数,
感觉这里是关键
这里面对v17进行异或,v17字符串长度是36,所以推测sub_424BA0作用是取字符串长度
Exp:
得到
继续往下分析,发现base64,改下名
去看看off_6CC090
Base64解码10次得到个网址,进去一看发现被骗了,到这里就走不下去了,查了下才有了思路
发现下面还有个数据,交叉引用发现有两个引用进入一个
上面看不懂,猜测是随机生成的密码
根据这个猜测v4长度为4
根据这个判断条件,两个数组地址相差4,猜测这两个数组属于一个数组
直接导出
得到密码
把两个数组合并刚好长度是25
导出
Exp:
- [ACTF新生赛2020]Usualcrypto
对代码分析改下名
跟进crypt
跟进modifykey
这里合并了两个数组,
应该是base64加密,这个函数的作用就是修改密码表
根据这个得到修改后的码表
根据修改后的码表得到flag
- [SUCTF2019]signIn
看着像rsa,查了下api确实是rsa
直接解密得到flag
- [MRCTF2020]Xor
Exp:
31.[HDCTF2019]Maze
看题目应该是迷宫题
看下字符串
很可疑,估计就是他
看下入口
调用了main,跟进
看来flag是wasd的组合,就是解开迷宫
这个应该是终点
看下行列初始值
在第七列(应该是从0开始)第0行
迷宫,F为出口
32.[MRCTF2020]hello_world_go
main函数
VBS:
打开发现代码被转成一大堆ascii码,python转回来就行
两个加密,先凯撒解密再base64解码
直接让他自己吐出来,得到flag
Android_re:
分析java层,发现一个des加密,key和iv从native层获取
可以用frida直接hook,调用native方法获取key和iv
但是
只要主动调用就崩溃,看adb日志是传入了错误的字符(甚至在我的所有模拟器和一个真机中软件自己调用都会崩溃)
换个真机,发现hook调用还是崩溃,但是attach后竟然不崩溃了(神奇。。。)
得到key,iv
解密即可
还可以jeb动态调试
打断点
这是key
这是iv
Ascii码转成字符即可,解密获得
也可以直接用工具:
不过这个软件只要xp模块hook就一定会闪退,不hook第二次才会闪退(so里面有检测机制?但是在模拟器里面不使用xp模块hook也会触发同样报错)
还可以unidbg直接调用so中的函数得到key和iv
解密即可得到flag