【文章】Winrar 压缩软件的加密算法 - AES

admin 2021年4月3日18:54:21评论552 views字数 903阅读3分0秒阅读模式

    转自:http://t00ls.net/thread-13721-1-1.html,原作者:xlk111

    昨天偶然发现 Winrar 压缩软件加密算法碰撞口令后(详情见这里:https://lcx.cc/post/1026/),又到处搜集看了些资料,又看了看 Winrar 的程序。

    Winrar 压缩软件用的核心加密算法是AES,加密时用的CBC模式,密钥长度16字节(128比特),密钥和初始化向量由用户口令经符合 PKCs #5 的复杂变化生成,其生成时的核心是SHA1。

既用户输入的口令为 PW1,密钥和初始化向量的生成过程如下:

    1、RE1=Unicode(PW1),如:Unicode('A')=0x0041;注意intel系列的处理器是littleendian,低位在前。
    2、PW2=Union(RE1||Salt),简单的串接。
    3、M=Ex(PW2,int);其中int为固定值,对PW2做固定int次循环扩展。
    4、Key=Get(SHA1(M),128),IV=LASTBYTE(SHA1(M));

加密:
    AES-CBC:
    C(0)=IV;
    C(i)=AES(KEY,C(i-1)^P(i));

解密:
    P(i)=C(i-1)^AES(C(i))

需要注意的是Salt生成算法:(这个是看雪的天易love写的)

    1、由 SystemTime 得到 FileTime;
    2、分别对 FileTime 的两个 DWORD 进行 hash_process;
    3、hash_final 后得到的 digest 的最前面的两个 DWORD 就是 salt。

 

文章来源于lcx.cc:【文章】Winrar 压缩软件的加密算法 - AES

相关推荐: python爬取所有厂商url&python爬取Google搜索结果产生的猥琐想法

一直有这么一个想法。当得到某0day,我怎样才能最快知道在某大厂商的任意子域名、任意端口下是否存在此漏洞。 于是猥琐的想法就产生了,首先得到乌云所有厂商的url,然后再逐个得到所有厂商的子域名,然后就是端口信息,cms静态文件以及各种包含某特征的url,如ac…

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年4月3日18:54:21
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【文章】Winrar 压缩软件的加密算法 - AEShttp://cn-sec.com/archives/319134.html

发表评论

匿名网友 填写信息