twin
e非互素RSA共模,已解
breaking_news
其实就是解出d,p,q,构造私钥解出。当时其实都解出来了,但是拿错密文,于是GG,属实是极其逆天。
bmpass
AES-ECB加密,故每16字节使用相同的密钥进行加密。详细可见:
(22条消息) 由浅入深AES-ECB模式加密、解密_aes ecb_SuperForming的博客-CSDN博客
由浅入深了解AES ECB模式加密和明文主动攻击 - FreeBuf网络安全行业门户
bmp的文件头为54字节,故进行数据读取的时候要注意去掉前54.
bmp文件也可参考:(22条消息) bmp前54个字节_用python读取bmp图片_weixin_39721953的博客-CSDN博客
(22条消息) BMP图像结构及其大小计算_bmp图片大小计算_tech_ant的博客-CSDN博客
可根据bmp参考链接1构造满足前54字节的flag,宽度应当是随便选取了一个常用值1280.
RGB数据大小为height*width*3,这应当是考虑到每个像素字节数是3,因为选择了24位颜色位数。压缩方式选择0.
BMP中文件头信息块所需字节数固定为2800 00000
headersize是从文件开始到实际位图数据之间的字节偏移量,于是是pack 54(文件头14字节+下面的位图信息头40字节+此例彩色板16字节,去掉了彩色版?)
filesize是文件大小,固定去掉16字节?也就是从BMP文件头信息块所需字节数的数据的后半段开始算?
由于目标文件是.enc,文件头被更改,所以以上的操作是为了构建新的文件头,从而能够写入新的bmp文件中.
接着是为了解AES-ECB.
counter与count.most_commom()函数可见:(22条消息) collections中Counter的使用,most_common()使用_LiChuanxiu的博客-CSDN博客
(22条消息) Python collections.Counter()用法_pvop的博客-CSDN博客
pattern是generator类,有点像是一边循环一边计算.
replace函数将data中出现次数最多的数据(选取前100个即可)更换成n个'\xff',n即为这些数据的长度。经实验,步长为8为16都差不多。注意函数的返回套了个括号,即为元组。
collector
涉及sha256加密。
泻药,纯纯懵逼
noble collector
应当可以得到e,n,p,q,d
然后llong_to_bytes,再decode,得到msg字符串,应当可以去掉前面明显是name的字符串得到答案?没做到,不清楚nc后会是什么样。
learn from your errors
side channel attack 搞不来