2020/5/19 BUU_[ACTF新生赛2020]usualCrypt
下载下来,exe扔进去看看有没有壳:
没有,运行一下看看是干啥的:
很普通的界面,输入flag。
扔进IDA分析一波:
main函数主体也比较简单,输入——处理——判断。
我们进入sub_401080看看,这个函数是将我们输入的v10进行加密,然后存到v5里面。
加密主体跟base64差不多,但是注意这里有两个函数,第一个函数:
这个函数是将base64表处理。就是一个交换位置的函数。他将整个表分成了地址相连的两个数组。把两个数组的第6-14位进行交换。
交换完毕后是这个样子:ABCDEFQRSTUVWXYPGHIJKLMNOZabcdefghijklmnopqrstuvwxyz0123456789+/
最后这里还有另一个函数:
这个函数是大小写转换:
把原数据zMXHz3TIgnxLxJhFAdtZn2fFk3lYCrtPC2l9转化成:
ZmxhZ3tiGNXlXjHfaDTzN2FfK3LycRTpc2L9
那么我们倒退一下,因为base64是将3个8位数据转化成4个6位数据,我们不考虑过程,只看结果即可,将被交换的18个字母代入进去:
ZmxhZ3tiGNXlXjHfaDTzN2FfK3LycRTpc2L9
ZmxhZ3tiQXNlNjRfaDJzX2FfU3VycHJpc2V9
找个在线网站解密一下:
最后bb两句:
不学py真的不行了,c语言实现一些功能有些麻烦,需要这种更高效的语言了。
5pqX5oGL5LqG5Zub5bm055qE5Lq65oOz6Lef5oiR5Zyo5LiA6LW377yM5byA5b+D77yB5L2G5piv5rKh5aSE5aSf5LiA5bm05ZGi5bCx5Zug5Li65byC5Zyw5YiG5LqG77yM5omA5Lul5oiR5oqK6L+Z5Y+l6K+d5pS55oiQYmFzZTY05LqG77yM55yL5Yiw6L+Z5Y+l6K+d57uZ5oiR5pW056C06Ziy5LqG