金陵某道re

题目不难就是长
第一次见到培根密码的逆向
算是长见识了

aspack不多说了
直接讲主要算法吧
这题分了3小问,算法涉及的挺多
但都是基础

maze

首先是个maze啊
maze简单可以直接秒
1
wasd玩过游戏的都知道是上下左右
每行有30个//看v6的变化
通过v6和v2也可以看出来初始位置在第二行第二个
判定的话就是只能走2,0可以理解为墙,要走到6
吧地图dump一下吧
2
标记了一下2和6
最短路径很明显啊

ddssassssssssddssssssddddsdddddddddddd

rootname

中间还有一个pwd就是个xor
pwd是123456789这边不写了,与最终的flag也无关
rootname和whoyouare的验证其实挺吓人的。。。
3
我是直接对着反汇编怼的,看反编译有点头疼。
//毕竟当时是在怼完kanxue那题的情况下看的,脑子已经晕呼呼了=。=
4
首先是个复制
然后一个循环操作又是取模又是除的想都不用想就知道了
明显一个进制转换直接在下面下断点跳
在内存中也能看到
5
b16//本质上就是字符串转16进制
玩过今年西湖论剑的都可以发现这算法和里面出现的b58一个样
紧接着又可以看到一个复制操作。。。
然后就是栅栏了
6
当时写的时候也没想到是栅栏
我是直接改内存后看回显的置换表来解的
当然现在想想肯定是写烦了。。。
栅栏每组字数是5,直接网上在线解一下
然后下面一个去码表的大循环是个b64很明显
7
紧跟着的就是上面那个栅栏函数。。。
最后是与内存中的字符串比较
NTUGNDM3OUA3NTY1RDQzNjZ5
解的话很简单
先栅栏解出原来b64
NDA1NTM3RjU3NDZGOTQ5NUYz
b64解出
405537F5746F9495F3
栅栏一次
437950744F5F69355F
b16一下
CyPtO_i5_
当初的脚本因为是打出表来写的就不上了

whoyouare

终于到最后的whoyouare了
这里就涉及到了培根密码了
识别也很简单
在b64码表下面可以看到培根的码表
8
这边顺带提醒一下
输入的话必须是字母
如果输了其他什么数字啊会崩
当时就是卡在这以为是什么反调试或者脱壳脱崩了。。。。
调了好久。。。
程序显示一个大小写转换
然后是bacon
接着一个凯撒
9
可以看到ab都被整成了GF
//不管你们有没有GF反正我有
// 233333
//跑题了
后面还有一个栅栏
10
然后是比较
GFFFGGFGFFFGFGGFFFGGFFGFFFFFFF
凯撒回来
BAAABBABAAABABBAAABBAABAAAAAAA
栅栏
BAABAABBBAAABAAAAAAABAABABBAAA
解一下
SOEASY
提交的时候都要大写
这题有个多解问题就是不管你输入的是soeasy还是SOEASY都是对的
到此结束

Conclusion

这题代码量挺多的,但算法都不错,适合入门。
也把这题分享给了一些萌新
所以此篇blog写的比较详细233


金陵某道re
http://www.psbazx.com/2019/05/22/金陵某道re/
Beitragsautor
皮三宝
Veröffentlicht am
May 21, 2019
Urheberrechtshinweis