whuctf新生练习赛-re-wp
·
guess number
在Linux系统里面运行即可,注意这个程序是32位的,而我们直接下载的Linux虚拟机/wsl多数是64位的,需要再安装32位的支持包(直接问ai即可)
ezbase
这道题作为ida的入门,其实本意是在考察汇编语言(这题由于用的并不自己写的加密函数而是直接调用扩展的库函数,IDA反汇编结果有点过于难看了),关于汇编语言,这里推荐去看b站视频即可简单入门,看懂就行,刚开始没必要和c语言要求相同,还是主要学c语言先。
当然,由于用的函数不是自己写的,也就没有魔改,其实直接丢给ai(把反汇编的代码导出或者直接用截图问即可)也就能告诉你加密方式,这也就是传说中的“deepseek一把梭”()
asm_and_rc4
(这题和上一题都出自同一人之手,不得不吐槽一下:h2q是真的喜欢汇编语言)
同样是汇编语言阅读,感觉比上一题还简单点,rc4也是很经典的加密方式了,可以去了解一下加密方式
login
直接看得到函数名为main_main的函数,打开,丢给ai分析,发现加密逻辑是密文=(明文+114514)%65537,在ida里面看到的是被优化为了位运算的版本,直接用zi即可复原(当然也可以直接用ida弄出来的那个位运算,其实是一样的)
然后就是去找密文位置,在unk_4FBCA0
位置处,注意,ida里面默认是小端存储(eg.0x1234存储为34 12),需要注意这一点
附上go源代码,方便对照
原神,启动?
apk题目,直接放进JEB,能看到加密逻辑
其实里面直接就有解密函数,如下,我们可以直接复制下来,没有java编译器的可以放在线编译器里面跑
得到flag
ez_rust
rust也是re不得不品的一环,当然新生赛自然有新生的解法:猜()
直接shift+f12发现一个很明显的flag:
这个样子绝对是凯撒密码了,结束
当然我不希望这么解,下面是正常的解法:
搜索一下unk_14001F700
,发现使用这个变量的函数:
在这里分析逻辑,建议还是用汇编语言来看,感觉反编译太不适合rust了
所以是凯撒加密
喝杯花茶
茶–tea加密算法(因为是新生赛所以也是没有魔改,实际上可以直接不去除花指令猜出来)
花–tea_encrypt_block加入了花指令
花指令:jz和jnz以及后面的那个立即数,直接nop掉就可以进行反汇编了
BOSS
(见前一篇博客)
wave1 总结
推荐各位再深入研究的知识点:汇编语言阅读,各种加密算法,花指令…
作为新生练习赛的第一波,基本都是没有魔改的经典加密算法(除了boss),所以蛮多都是可以直接猜出来的,整体上起一个帮助各位熟悉各个知识点的作用(我们也属实没想到这届新生大佬们这么强,简直不给劳登们活路呜呜呜)