- 精华
- 阅读权限
- 80
- 贡献
- 人
- 好友
- 相册
- 分享
- 听众
- 收听
- 注册时间
- 2012-12-12
- 在线时间
- 小时
- 最后登录
- 1970-1-1
|
发表于 2026-1-14 06:07:23
|
显示全部楼层
本帖最后由 a9965 于 2026-1-14 06:24 编辑
終於破了。
上次發了個破解流程被刪了,細節不說了,
服務端會向某個主機端口16400這個授權服務器發送一個RSA以及AES加密過的JSON,JSON的內容大致為:
- {"type":0,"clientId":"123456","iv":"Trn6kkI3aAsRHk0E","encryptedPayload":"eyJ0aW1lc3RhbXAiOjE3NjgzNDE4OTI3MTQsIm5vbmNlIjoiYjk4ODk2NzMtZTBlOS00Njc5LWI1NjctOTc3NDhjOGU3MTRiIiwiZmluZ2VycHJpbnQiOiJkYmIxZWI2NDg1MTg5YjEyMTYyYjQ0MzgzNzVlMTYzOTIxM2E0Mjg4Mzc0ZmNkZWEwOTRkNTBiYmM5NDkyZDgyIiwiaGFzaEhhbmQiOiJaTER6WGhKdFB5TEx2ZUpic3ZRMk5ZcHlSS25yUDhlSElqNXJ6M0Y4UEFvb1Q3KzZEQT1ON2Jld1REUWRzTlBXYzZmSz1SNWV6b2M0blpER211NFZCT0tzQmhvNmk9bGtWcVhBc1NnZWpudmd4MmlwbWRZTjhOVj1sNW1qZEd6VSIsIm9ubGluZSI6MX0=","serverName":"tms"}
复制代码
實際上加密細節不重要了,只要你能找到CryptoUtil.encrypt/decrypt直接ret就好 (解密的部分有的要把rsi/rdi搬回rax),另一個部分是RSA的加密,可以搜尋關鍵字245。
encryptedPayload基本上是另一個經過AES加密的JSON包,不過加密繞過後就是一般的Base64。
我自己隨意用python造了一個假的授權服務,在解包JSON字串後隨意補上這些 (實際上有哪些有用到我也不確定,猜出來的):
- jsonData["success"] = True
- jsonData["timestamp"] = int(now.timestamp() * 1000)
- jsonData["payload"] = {}
- jsonData["payload"] = jsonData["encryptedPayload"]
- jsonData["fingerprint"] = "a"
- jsonData["hashHand"] = "b"
- jsonData["signature"] = "c"
- jsonData["expiresAt"] = int(now.timestamp() * 5000)
- jsonData["time"] = int(now.timestamp() * 1000)
复制代码 最後服務端會發現有個地方會檢測signature這個欄位,直接繞過讓eax返回1即可,這部分可單步追蹤找到,每個服務的邏輯代碼是類似的,只要能找到一個很快就能破其他服務的。
另外你需要偽造一個.credential.dat文件,採用AES GCM, 密鑰為 2e4a023d58835011529bcb19fac30af0753723663ad22cb361c0401788fa3a54,文件的前12位元是IV,這樣服務端才能解密。 文件本身是一個JSON:
- {"clientId":隨意填,"secretKeyBase64":Base64過後的32位元AES KEY}
复制代码
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
x
评分
-
查看全部评分
|