某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频

背景:

某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频

某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频

某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频

首先我们需要一点点python基础,比如可以运行类似下面的代码

import requests

headers={
	"xxx":"xxx",
	"xxx":"xxx",
}
url="https://www.ooo.ooo"
r=requests.get(url,headers=headers)

某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频

某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频

开始!!!

先打开app搜索

某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频​ ​

找到对应的接口,分析一下请求参数,这个工具叫http Debugger Pro

某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频​ ​

有一个sig参数对链接做了签名,看起来像md5

我们需要生成sig参数来伪造请求

反编译apk,搜索"sig"

某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频​ ​

显然是v3.sig,点点点。。。

某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频

在generatorSigWithFinal生成这个sig

某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频

点进去发现这是一个native方法,写在release_sig里

某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频

如果想知道这个方法怎么用,可以用frida hook generatorSigWithFinal看看参数是什么

某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频

很明显,arg0是路径,arg1是链接参数值,arg2是固定字符串,arg3是上下文

解压apk的librelease_sig.so看看nativeGeneratorSig

某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频

某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频

某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频

果然是md5,在update和return 打断点 看看参数和结果是什么

某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频

update:

某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频

某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频

显然参数是arg0+arg1+固定字符串+时间戳+固定字符串,其中arg1做了升序排序

某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频

复制出来字符串然后md5,对比就是这个~

某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频

之后又对md5结果做了处理,交换奇数位和偶数位的位置

生成sig参数:

1.取出链接里的路径和参数的值

2.参数值按升序排序拼接成的字符串

3.拼接加密字符串:路径+参数字符串+bdaefd747c7d594f+时间戳+Tw5AY783H@EU3#XC

4.对加密字符串md5,交换奇数位和偶数位的位值

python版本实现:

def gen_sig(url, sigtime):
    url = parse.unquote(url)
    v1 = [i.split("=")[1] for i in url.split("&") if "sig" not in i]
    v1.sort()
    v0 = url.split("?")[0].split("com/")[1]
    vr = v0 + "".join(v1).replace("+", " ") + "bdaefd747c7d594f" + str(sigtime) + "Tw5AY783H@EU3#XC"
    sig = encrypt(vr)
    return url + "&sig=" + sig + "&sigVersion=1.3" + "&&sigTime=" + str(sigtime)

def encrypt(v0):
    v1 = hashlib.new('md5', v0.encode()).hexdigest()
    v2 = v1[1::2]
    v3 = v1[::2]
    return "".join(i + j for i, j in zip(v2, v3))

某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频

有sig就可以伪造请求

某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频

提取里面的视频地址:

某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频

写一个save函数,输入链接下载视频

def save_video(url):
	print("save:"+url)
	r=requests.get(url)
	with open(url.split("?")[0].split("_")[-1],"wb")as f:
		f.write(r.content)

某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频

改成:

某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频

某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频

某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频

哈哈哈,全部代码放到github里,欢迎star

https://github.com/heyaug/sign-algorithms

上一篇:师范大学 e: skyscrapers


下一篇:(MariaDB)MySQL数据类型详解和存储机制