← 返回首页
签名定位 协议分析 客户端逻辑

签名定位思路:别盯着 sign 字符串,先找“请求何时变合法”

很多人做接口逆向,一看见请求里有 signsigtokenauth 这种字段,就立刻开始全局搜字符串。这个动作不是完全没价值,但经常效率一般。因为真正让请求“合法”的,往往不是某个字段名字,而是一整段在发送前完成的约束链路。

先说结论:签名定位不是找一个字段,而是找“合法性生成点”

你真正要回答的问题其实是:

签名定位的核心不是搜到 sign,而是找到请求合法性从哪里被制造出来。

第一步:先从请求侧判断“谁最像约束字段”

对照几组样本,先粗分:

这样做的好处是,你不会一上来就被几十个参数拖进泥潭。

第二步:锁定“组包前最后一层”

很多签名逻辑不会直接写成一个很直白的 calcSign()。它更可能分散在:

所以与其盲搜 sign,不如找“请求发出前最后一次大规模整理参数的地方”。

第三步:盯排序、拼接、摘要,而不是只盯 crypto API

很多人一做签名定位就猛找 MD5、SHA、HMAC、AES。这个方向当然有用,但很容易漏掉更关键的前置步骤:

很多时候你算法猜对了,结果还是不对,根因就在输入边界没还原。

第四步:动态确认“输入是什么,输出去哪了”

一旦锁定可疑函数,最值钱的动态问题通常只有两个:

  1. 它真正吃进去的原始输入是什么
  2. 它吐出来的结果最终被填进了哪里

如果这两个问题都答清了,签名定位通常就已经过半。

最容易犯的错误

我更推荐的定位顺序

  1. 样本对照,先分业务字段和约束字段
  2. 锁定组包前最后一层
  3. 重点看排序、拼接、摘要三步
  4. 动态确认输入输出边界

这条路线的底层逻辑很简单:先搞清楚请求为什么能成立,再谈怎么复现签名。

结尾

签名定位最怕的不是“算法复杂”,而是你还没把请求合法性拆开,就开始在名字和 API 上乱撞。只要你把问题重新表述成“请求在什么时候、通过哪一段处理链变合法”,路径通常就会清楚很多。

上一篇发包前参数组装链:别只盯最终包,要看参数从哪来、怎么拼、何时定型 下一篇Key 追踪思路:别只找字符串,要找“它什么时候变成真正的 key”