在研究unity虚幻引擎怎么搞游戏,刷点buu吧
1.内涵的软件
64位
拖进去就有flag,嗯......
xor
输入b,进行异或后和字符串比较,点进global
逐次点进,提取数据,
main函数中的异或是i和i-1,我认为等效于i和i+1异或,但是不包括第一位元素,写脚本
2.reverse3
拖进ida(略微改了一下函数名)
逆向从后往前看,最后结果要和str2一样,提取str2的数据
最终结果是v4拷贝过来的,v4是输入的str进行了一个函数的操作,
点进sub_4110BE函数
找到了一个一看就不太对劲的数组,点进去
很有base64的感觉,基本判断是base64加密,也没有换表的操作
写解密异或
base64
3.helloword
apk,拖进jeb
4.不一样的flag
一眼迷宫
脚本秒了
5.SimpleRev
重点就是decry函数,点进去
src内容变成字符串,但是ida对eif文件有一个大小端序的问题,在函数题内的字符串要转一下,src内容就变成了
同理可得v9的值
分析代码,key是key1和src的拼接,
下面的for循环进行了加密操作
在64到90范围都加上32,实现了大写到小写的转换
key变成adsfkndcls
根据已知内容写脚本
6.[GXYCTF2019]luck_guy
点进关键函数
找到getflag函数
已知flag和f1f2有关系,f1可以直接提取
下面对f2进行了赋值,并进行了操作
搞了半天一直交不上flag,想起来eif文件的大小端序,所以s的内容要反过来写
两部分结合一下就是flag
7.Java逆向解密
class文件,拖进jadx
输入flag赋给str,将str转换为字符数组stringArr,并传递给Encrypt()函数。
Encrypt()函数中的第一个for循环,是将stringArr数组中每个字符的ASCII码加上@的ASCII码值,然后与32进行异或加密,再存放在Resultlist中。
第二个for循环是将 KEY中的每一个元素存放到 KEYList列表中。
所以KEYList就是加密后的flag,只需要对KEYList进行反向操作即可。即把KEY中的每个元素与32进行异或操作,再减去@的ASCII值。
8.[BJDCTF2020]JustRE
运行一下程序,看看有没有什么线索
拖进ida
字符串发现了一个跟程序运行有关的东西
点进去,交叉引用
找到函数
两个%d换成19999和0
(话说点19999下真给flag吗)
9.刮开有奖
刮不开
拖进ida
一点点点进去,发现了正确提示,就在这里开始向上分析,
输入了一个字符串
并且长度是八
v18取代了string的后六位,并通过函数赋值给了v4和v5
点进函数
找到一个数组,跟进
41h提取出来就是A,可以确定base64
第一二位和v7和v10有关,sub_4010F0函数对v7后十位进行了操作,几个参数位置是相连的(看大佬的wp)
点进函数,太长了选择动调
第一次直接给我退出了
一步直接跳到最后了,那就所有if下断点
找到函数结束后的位置,开始动调
搞修改zf的值改变方向
找到v7后的内容
可以知道v7[0]是3,v10也就是第五位是j
将四部分拼接得到flag
10.简单注册器
jeb打开,找到加密函数
11.[GWCTF 2019]pyre
指令将pyc变成py
从字符串 code
的倒数第二个字符开始逐步向前遍历到第一个字符。
12.findit
jeb打开
找到一个带{}的可疑字符串
看题解分析是凯撒密码,但是没找到key的值,用脚本进行爆破
得出key的值是14和flag
13.[ACTF新生赛2020]rome
拖进ida
shift加F12查找字符串
找到关键信息,
交叉引用定位到函数
可以知道flag前缀
有了字符串范围进行爆破
14.rsa
记事本打开key文件
用
RSA公私钥分解 Exponent、Modulus,Rsa公私钥指数、系数(模数)分解--查错网
脚本解密
15.[GUET-CTF2019]re
工具脱个壳(确实是文件不会手脱)
拖进ida
关键字符串交叉引用找到关键函数
sub_4009AE
算术题
拿脚本跑一下
第2位没有内容,但是把一加进去flag提交成功
flag{e165421110ba03099a1c039337}
16.[2019红帽杯]easyRE
有点意思的题
拖进ida,找到关键字符串,交叉引用到函数
可以看到有一个函数引用了十次,点进去
base64
在找到密文,蛮长的
解密十次
搞出一个网站
在评论区找到flag
17.[MRCTF2020]Transform
flag和一个已知数组进行异或,并打乱顺序了
提取出来两个数组长度不同,在短的那一个补零对齐(后来仔细一想该数组对应着数组顺序,确实确一个0)
18.相册
还有毒
jeb没有找到什么有用的信息,把后缀改成zip找到.so文件
拖进ida
反编译不了
但是可以查看字符串
找到三个疑似base64的密文
解密试一下,发现第二个是flag
19.[FlareOn6]Overlong
下载拖进ida,怀疑它有壳但是它没壳
分析代码
text进行了第6行的操作输出了,点进函数
对第二个参数进行了28位的操作,
点进参数
。。。。。
长度远超28
拖进x32dbg
断点处找到主函数入口
找到push,1c就是28,修改长度(4020B7-402080=AF)
注意要修改前面的,后面的会覆盖掉下面的push
二进制,编辑
修改成功,运行程序得到flag
20.特殊的 BASE64
一看名字猜是base64变表加密
拖进ida查看字符串
直接找到密文和新表,脚本解决
搞搞手动脱壳
21.[ACTF新生赛2020]easyre
upx壳,x32dbg打开
在断点处找到oep
运行到此处
F8*2
内存窗口转到,设置硬件访问断点
运行,利用插件脱壳
先把内容dump下来再修复
找到scy
拖进ida
找到关键字符串
追踪到函数
脚本解flag
22.新年快乐
之前做过的一个题,再手脱一下壳试试
通过断点找到oep
在内存窗口找到设置断点运行找到
利用插件dump和修复
第三个拖进ida
找到flag
总结:手脱在修复上还是有点问题,看着确实没有工具脱的舒服,但是还得练,以后遇见变种壳不能一直靠工具
23.xyctf 砸核桃
北斗壳好像是
x32dbg打开
手脱一下壳
拖进ida
24.xy喵喵喵的flag碎了一地
拖进ida查看提示
第一部分
第二部分
第三部分
25.[NSSRound#18 Basic]GenshinWishSimulator
搞个难的
我靠,原
找到关键,拖进dnspy
引用了sm4加密
脚本解密
编辑类修改内容
这里设定了抽卡概率
修改一下
概率没太搞懂,但是大概10是百分之十的概率,没有找到奖品库的位置
出金了