BUU[WUSTCTF2020]level3
关于base64换表及交叉引用
BUU[WUSTCTF2020]level3
分析
首先查壳,发现是64位的,就放入64位IDA,直接F5进入主函数看看
看到了后面的一串需要base64解码的东西,然后前面还有一个base64encode的函数,这里应该就是base64的加密部分,点进去看看
这里双击这个函数,看看他里面是些什么
发现这就是常规的base64,没有什么不同,然后直接去解码
一看就是错的,然后我又去外面看了看,发现只有这一个函数会有问题,于是想起交叉引用,这里对base64_table交叉引用
发现新的函数,然后点进去看
发现他对表进行了改动,于是写脚本去弄到新的表
脚本
|
得到
TSRQPONMLKJIHGFEDCBAUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ |
然后去用base64换表弄一下
import base64 |
得到flag
wctf2020{Base64_is_the_start_of_reverse} |
总结
init和start一样都是编译器加进去的,init函数主要负责设置包、初始化变量或其他要在程序运行前优先完成的引导工作。所以不一定所有东西都会在main函数中运行,一般情况找不到东西了,就想着去交叉引用去找找有没有其它的东西
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 逆向上分之路!
评论