首页 > 其他分享 >hawk解密分析

hawk解密分析

时间:2024-07-30 19:18:12浏览次数:17  
标签:分析 bytes 解密 cipher key 密文 hawk data

碰到了使用com.orhanobut.hawk对sp进行加密的应用,分析一下除了动态调试外如何直接解密

逆向的难度比较大,而且由于涉及到facebook的加密库,导致反编译后代码很难看,好在项目是开源的hawk

看一下这个项目的代码,本质上用的facebook的加密库conceal

截图

截图

这是封装在最外层的解密方法

截图

这是内一层的,cipherTextBytes就是密文,entity可以理解为密文在hawk2.xml文件中对应的键名

截图

这部分呢实际上是做了aes的GCM模式解密,需求的参数有key,iv,tag,data和密文

CryptoConfig中定义了密文各个参数的长度

截图

因此一开始的result的长度实际上就是真正的密文的长度,header则是前14个字节,iv是第3-14个字节,tag是最后16个字节

截图

截图

那么中间的部分,也就是第15个字节开始到tag之前,应该是真正的密文数据,现在就是不知道data到底是啥

根据之前的head进行定位,使用start方法对head进行处理,跟一下发现是native函数

截图

从这里可以看到,将header进行拆分,前2个字节是表示版本,其余的都是iv,最后又进行了update操作,将version和entity进行update,实际上这两个就是data

截图

截图

分析到这里也就清晰了,对于一段密文(字节数组m)来说,由5个部分组成

  1. iv,m[2:14]
  2. tag,m[-16:]
  3. key,sp中对应的键名
  4. enc_data(真正的密文),m[14:-16]
  5. data,m[:2]+key

最后在加上解密所需要的密钥即可解密,这里做一个演示,成功解密出数据

import base64
from Crypto.Cipher import AES

cipher_text = 'AQLqxQ/wZSQwUFgdOA6XjK0DKIcnneC4LCHBn9uMnIezNiWIX2FSc2Hl5Gi1LzjQttPI9P02h/lam+5kEXgtMwV3AdfRH6DkehmjCJy1bPGbUgA4JZ9lYGzgkPzg6k+lZrRGO1xJWK1ESKNIBm3oX+pvEy/nvWcxp64f/2X7/M17Gz29OZCFBp85Y7OXzGkJ0yVYGIYeLFxWjLwudWA='
cipher_key_name = '64_key_share_info'
key_text = 'rp6Fz0G8E6p7KzfJS0qg3Agyoek/GoRg12kAptH9VDo='

cipher_bytes = base64.b64decode(cipher_text.encode('utf8'))
entity_bytes = cipher_key_name.encode('utf8')
key_bytes = base64.b64decode(key_text.encode('utf8'))
iv = cipher_bytes[2:14]
tag = cipher_bytes[-16:]
data = cipher_bytes[:2]+entity_bytes
enc_data = cipher_bytes[14:-16]
cipher = AES.new(key_bytes,AES.MODE_GCM,iv)
cipher.update(data)
decrypt_data = cipher.decrypt_and_verify(enc_data,tag)
print(decrypt_data.decode('utf8'))
# {"appid":"1","content":"https://hideserver.kehuan.vip/info/share.html#您好请打开此条链接下载章鱼隐藏","status":2}

ForensicsTool已经集成

标签:分析,bytes,解密,cipher,key,密文,hawk,data
From: https://www.cnblogs.com/WXjzc/p/18333142

相关文章

  • c# RSA 要解密的数据超过此模块的最大值128/256字节
    publicstringDecrypt(){varbase64EncryptedData="";stringprivateKey=@"<RSAKeyValue>....</RSAKeyValue>";RSACryptoServiceProviderprovider=newRSACryptoServiceProvider();provider.FromXml......
  • 【MySQL(锁篇)】深入MySQL锁机制:从全局到行级,解锁数据库性能瓶颈(下:行锁分析实战、死锁原
    文章目录MySQL(锁篇)-全局锁、表锁、行锁(记录锁、间隙锁、临键锁、插入意向锁)、意向锁、SQL加锁分析、死锁产生原因与排查行锁分析实战1读已提交RC1.1组合一:ID是主键1.2组合二:ID唯一索引1.3组合三:ID非唯一索引1.4组合四:ID无索引2可重复读RR2.1组合五:ID主键2.2组......
  • 基于深度学习的多模态情感分析
    基于深度学习的多模态情感分析是一个结合不同类型数据(如文本、图像、音频等)来检测和分析情感的领域。它利用深度学习技术来处理和融合多模态信息,从而提高情感分析的准确性和鲁棒性。以下是对这一领域的详细介绍:1.**多模态情感分析概述多模态情感分析旨在通过结合多种模态的......
  • 不妨来探讨一下数据加密与解密
    常见的加密与解密一般有三大类:1.对称加密算法:加密和解密使用同一个密钥-----单密钥加密DES、AES2.不对称加密算法:加密和解密使用不同的钥-----(公钥,私钥)---安全性高3.RSA哈希算法:MD5SHA256     2013年,我曾经做过一次对称加密算法的详细解释与应用,当然我编写的软......
  • 辅助分析研判,刷新代码安全打开方式(上)
    数字化时代,代码已成为企业发展的重要基石。随着技术的日新月异,安全从业者的日常工作中常见形形色色的应用场景,高效的AI编程代码助手能帮助程序员更游刃有余地进行代码、数据等内容的分析和辅助研判。文心快码BaiduComate具备代码解释、代码审计,以及自动检测漏洞并修复等多样......
  • TFA-收集日志及分析
    下载https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=272133523880062&id=1513912.1&_afrWindowMode=0&_adf.ctrl-state=fghvcgapa_617a安装[root@rhel75~]#./ahf_setupAHFInstallerforPlatformLinuxArchitecturex86_64AHFIn......
  • 从pytest源码的角度分析pytest工作原理
    从pytest源码的角度分析pytest工作原理从pytest源代码的角度来分析其工作原理,我们需要关注几个关键的部分,特别是pytest的启动过程以及测试的收集与执行。下面是基于pytest源代码的一个高层次的概述。 pytest的启动过程命令行解析:pytest 的入口点是 conftest.p......
  • Android9.0 Activity启动流程分析(三)
    文章目录   1、Android屏幕层级       1.1、Window和PhoneWindow的概念       1.2、View和ViewRootImpl的概念   2、ClientLiftCycleManager   3、handleLaunchActivity       3.1、CreatActivity       3.2、setContentView   4......
  • 数据分析真的很难找工作吗?
    先上结论:不难找,关键是你真的能做数据分析吗?一、硬技能够不够?前几天一个数据分析总监过来分享经验,他正好谈到数据分析工作是否难找的问题。他说,前几天招个数据分析助手,要求就是会统计学,SQL获取数据。投递简历的个个都说啥都会,结果笔试都过不了。后面为了不浪费时间,线上笔......
  • 计算机毕业设计django+vue《Python数据分析》的教学系统【开题+论文+程序】
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在当今数字化时代,数据分析已成为各行各业不可或缺的技能之一,而Python作为数据分析领域的首选语言,其重要性日益凸显。然而,传统的教学模式在......