介紹
sojson.v4也就是所謂的sojson字符串混合加密,使用範圍較爲普遍html
破解
先隨便找段代碼放進去「加密」
js沒有加密,由於js是前端運行的,不管多NB的加密,在運行的時候必須解開,因此我以後稱之爲混淆前端
function hi() { console.log("Hello World!"); } hi();
通過混淆,獲得了混淆後的代碼json
['sojson.v4']["\x66\x69\x6c\x74\x65\x72"]["\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72"](((['sojson.v4']+[])["\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72"]['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65']['\x61\x70\x70\x6c\x79'](null,"102x117m110e99c116x105I111Q110y32Q104O105a40f41T32D123A10j32A32p99t111I110d115M111S108u101t46k108D111U103O40P34Q72e101G108I108G111n32m87N111q114R108d100g33F34V41t59a10U125M10a104T105M40T41F59"['\x73\x70\x6c\x69\x74'](/[a-zA-Z]{1,}/))))('sojson.v4');
去除字符轉義
去除了字符轉義以後獲得以下代碼app
['sojson.v4']["filter"]["constructor"](((['sojson.v4'] + [])["constructor"]['fromCharCode']['apply'](null, "102x117m110e99c116x105I111Q110y32Q104O105a40f41T32D123A10j32A32p99t111I110d115M111S108u101t46k108D111U103O40P34Q72e101G108I108G111n32m87N111q114R108d100g33F34V41t59a10U125M10a104T105M40T41F59" ['split'](/[a-zA-Z]{1,}/))))('sojson.v4');
能夠看到這是將代碼還原後進行eval運行
jsfxxk也使用了相似的原理
按照jsfxxk官方的介紹中
網站
eval => []["filter"]["constructor"]( CODE )()
因此去掉這個eval外殼,在控制檯運行,就能夠獲得源代碼了加密
((['sojson.v4'] + [])["constructor"]['fromCharCode']['apply'](null, "102x117m110e99c116x105I111Q110y32Q104O105a40f41T32D123A10j32A32p99t111I110d115M111S108u101t46k108D111U103O40P34Q72e101G108I108G111n32m87N111q114R108d100g33F34V41t59a10U125M10a104T105M40T41F59" ['split'](/[a-zA-Z]{1,}/)))
後記
這樣就能夠破解sojsonv4了
你也能夠到個人JSDec網站上進行一鍵破解
spa