boss web h5 zp_token 手撕纯算

boss zhipin web h5 zp_token 算法手撕
时间: 2024-06-01

网站调试,断点,找到加密位置

  • 调试发现加密位置如下,其中参数和加密方法一目了然
    在这里插入图片描述

  • 进入这个方法中,发现其就是一个专门用于生成zp_token加密参数的js文件
    在这里插入图片描述

网站中调试这个方法,发现生成的zp_token可以直接使用

所以,分析到这里,接下来的方向就是搞定这个加密的js文件

js加密文件分析

将js加密文件直接拷贝到本地中

  • 先简单看下文件代码结构

    可以看到其实重要的就是其中的N函数

    网站中直接调用N函数,生成的zp_token可以直接使用

    N函数多层嵌套switchwhile循环代码,这种混淆模式其实不陌生,美团的mtgsig多处地方也是这种方式混淆
    在这里插入图片描述

  • N函数分析

    N函数中存在三层swich嵌套,如果直接调试查看的话,会让人十分头大,分析起来很麻烦。

    处理这种混淆的基本方向是:

    • 将流程平坦化
    • 分析平坦化后的代码,从而解析其中的算法

    流程平坦化可以帮我们极大的减少对代码的分析时间

N函数流程平坦化思考,分析

N函数是三层嵌套switch,但是他是一层紧连着一层,第一层和第二层中间都没有业务代码,所有的业务代码都在第三层里面

所以想要流程平坦化,直接将运行到的第三层代码全部按照运行顺序“平铺”出来即可

平坦化后代码分析:

分析其实没有太多技巧的东西,都是些枯燥乏味且繁琐的过程分析

算法简单概括:

  • 对zp_seed \ sts等值进行了转化
  • 对浏览器环境做了大量检测
  • 存在简单的加密编码等操作

实现内容:

  • zp_token算法的正向加密过程
  • zp_token算法的逆向解密过程

展示:

简单调用在这里插入图片描述

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡卡卡骨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值