前言
BUUCTF逆向刷题记录,本题主要涉及SM4加密算法和变表base64,hook函数
一、题目分析
这个题目刚开始直接跟进main()函数,看了半天也没看懂是个什么,而且越看越懵逼,后来看了其他师傅的WP,才有了思路,慢慢理清了逻辑:
首先用findcrypt插件查了一下,发现有base64和SM4存在,跟进base64加密部分:
这部分是第一次对base64编码表进行换表,大小写互换,跟进Handler:
base64编码部分里面仍然动了小手脚,这里在进行索引的时候凯撒移位了24位,可以理解为编码表循环左移了24位。
理清思路后逆向解密,SM4解密本来想用风二西工具,但是不太好用,于是借鉴了别的大佬的WP,安装了pysm4库进行解密。
二、代码示例
import base64
from libnum