js逆向巨潮mcode
生活随笔
收集整理的這篇文章主要介紹了
js逆向巨潮mcode
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
巨潮證券市場JS逆向
一 網(wǎng)站加密特征
| 加密類型 | 字符串拼接 |
| 加密字段 | 報(bào)頭: mcode |
| 解密方法 | python復(fù)現(xiàn) |
| 知識(shí)點(diǎn) | utf8編碼 |
| js | String.prototype.charCodeAt|charAt |
| python | ord |
| 避坑 | python nan類型無法右移 |
| 可明文搜索 | True |
二 JS逆向邏輯
2-1 快捷鍵 ctrl+shift 打開谷歌調(diào)試工具DevTools
2-2 快捷鍵 ctrl+shift+f 打開響應(yīng)搜索欄輸入加密報(bào)頭 mcode
2-3 定位到報(bào)頭生成的接口 打上斷點(diǎn)
接口中的明文由13位時(shí)間戳除1000向下取整轉(zhuǎn)字符串而成,核心加密接口在window對(duì)象中,明文算法用python代展示如下:
import time import math # 時(shí)間戳取整 src = math.floor(time.time())2-4 刷新網(wǎng)站 根據(jù)堆棧回溯到加密代碼內(nèi)部
觀察如下解密代碼可知:枚舉入?yún)⒅械拿魑娜蝗scill碼后位移,作為Keystr的索引取字符拼接而成
2-5 經(jīng)過觀察該加密為字符串拼接+ascill編碼+位移實(shí)現(xiàn),python代碼復(fù)現(xiàn)如下
三 python代碼復(fù)現(xiàn)
import time,mathdef encrypt(input):key = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='output = ''chr1 = ''chr2 = ''chr3 = ''enc1 = ''enc2 = ''enc3 = ''enc4 = ''i = 0while i<len(input):try:chr1 = ord(input[i])except:chr1 = Falsei+=1try:chr2 = ord(input[i])except:chr2 = Falsei+=1try: chr3 = ord(input[i])except:chr3 = Falsei+=1enc1 = chr1 >> 2enc2 = ((chr1 & 3)<<4)| (chr2>>4)enc3 = ((chr2 & 15)<<2)|(chr3>>6)enc4 = chr3 & 63if(not chr2):enc3 = enc4 = 64elif not chr3:enc4 = 64output = output + key[enc1] + key[enc2] + key[enc3] + key[enc4]chr1 = chr2 = chr3 = ''enc1 = enc2 = enc3 = enc4 = ''return outputt = str(math.floor(time.time())) str = encrypt(t)總結(jié)
以上是生活随笔為你收集整理的js逆向巨潮mcode的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CKA认证考题+解析
- 下一篇: 7-24 猜数字游戏 (15分)