VNCTF
filpgame
这个题目是仔细解读其实是一个翻牌游戏
输入减少‘7’如果输入为’A’ascii值为10,
输入16进制数值分别存放于v1,v2中
可以看到,把输入的把数word_18301C[v1]16bit中的v2位以及左右位变化,word_18301C[v1±1]的v2位变化
0 1 0 0 0 0 0 1 0 0 0 0 1 0 1 0
0 1 1 1 0 1 0 0 0 1 0 0 0 0 1 1
0 1 0 1 1 1 1 1 0 0 0 1 0 1 1 0
1 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1
0 0 1 0 0 1 1 0 1 1 1 0 1 1 1 1
0 1 0 1 1 1 0 0 0 1 0 1 0 0 1 0
0 0 1 1 0 0 1 1 0 1 0 0 1 0 0 1
1 0 1 1 0 0 1 0 0 0 1 0 0 0 0 1
1 1 0 0 1 0 1 1 1 0 1 1 0 0 1 1
1 1 0 0 0 1 0 0 0 0 1 0 1 0 0 1
1 0 0 1 1 0 0 0 1 1 1 0 1 1 1 0
0 1 1 1 1 0 0 1 0 1 1 1 0 0 0 0
1 1 1 0 0 0 1 1 1 0 0 0 0 1 0 1
0 1 1 1 1 0 1 1 1 1 0 1 1 0 1 0
1 0 0 1 0 1 0 0 1 1 1 1 0 0 1 0
1 1 1 0 0 1 0 0 1 0 1 1 0 0 1 1
这个是数组的2进制表示,
要去数组每一个都等于-1,就是2进制表示每一个都等于1,这就成了翻转游戏(这不是算法题目dfs吗,吐了)
可以直接在网上找到模板,稍微修改一下,我不怎么看得懂这个东西,我直接把所有的0换为1,1换为0,一样的效果
1 |
|
这样就直接得到输入结果,md5得到的结果4个,我是挨着试着交的32位小写交上了。
notsudoku
这个题目是一道python写的,然后打包成了exe文件。
查壳时发现,这个文件有upx壳,我当初想手脱的,但是dump出来的东西又有问题,就直接用upx工具脱了,再用exeinfope.exe工具查
从这可以看出来是pyinstaller编译的,用pyinstxtractor.py提取pyc文件,(需要用python3.7做提取)
再次使用exeinfope.exe检查struct和2文件,可以发现struct是pyc文件,但是2文件却不是,2文件才是关键文件,需要更改文件头,不然不能uncompyle6反编译,直接把struct文件头和2文件头差异部分修改一下,把stuct文件头上多出来的加到2文件上面,更改一下后缀就可以uncompyle6了(不能python3.9)
接下来是2.py源码
1 | import time, sys, hashlib |
又是虚拟机,,,,,
+5阶幻方
具体算法我尝试搞了一下,搞了半天不出来,放弃了,还是网上搜模板把。
如果您喜欢此博客或发现它对您有用,则欢迎对此发表评论。 也欢迎您共享此博客,以便更多人可以参与。 如果博客中使用的图像侵犯了您的版权,请与作者联系以将其删除。 谢谢 !