BUU[BSidesSF2019]blink
BUU[SCTF2019]creakme
分析
收先查壳,32位无壳,放入对应的IDA中分析
首先看到第28行的函数直接进去看看
是一个判断,还有一个退出调试,这里可能会涉及到反调试
这里看到了一个.SCTF,然后后面还有一个if的判断,这里可能回事SMC加密的遍历找区段名字
这里不太确定伪C具体想表达什么就去看了一下汇编代码
发现这里有一部分完全不在伪C代码里头,然后去看看这里是干嘛的
果然是反调试,然后看到后面的402424这里面娶了一个函数,点进去看看
发现这是一个加密函数,这里就能够完全确认是SMC加密了,这一部调用的是异或的这一部分(根据SMC加密的原理可以推导出,加密函数也自带解密功能)
然后去到第二个函数sub_4024A0这里去看看
这里有反调试,进去404000中去看看这个返回值是什么
发现是一大段的数据,而且这里的数据都是.SCTF段的,那么这个返回值就很有可能是异或部分的返回值了,然后这里用IDAPython来直接获取数据进行解密
脚本1
addstr = 0x404000 |
转换后的内容
将这些按C进行转换,转换成汇编语言,然后声明一下就得到新的内容
这里就是SMC的移位的加密部分(很明显这里应该就是简单的逐个-1然后逆序存储),解开差不多就出来了
脚本2
|
这里很明显能知道是一个加密,但是不知道是什么加密,然后用IDA插件去看看是什么加密
可以看到是AES加密,但是不晓得偏移量和密钥是什么,然后看到后面还有个base64,去定位一下
猜测这里会是偏移量和密钥,然后去解密一下
得到flag{Ae3_C8c_I28_pKcs79ad4}
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 逆向上分之路!
评论