js混淆加密之jsjiami.v6分析
混淆加密
混淆加密是一種常見的技術(shù),用于隱藏代碼的意圖和實(shí)現(xiàn)細(xì)節(jié),增加代碼的復(fù)雜性,以 ers ers 對代碼進(jìn)行保護(hù), ers ers 并 ers ers 分析和理解代碼。
以下是一些通用的步驟,用于分析和解密混淆的 JavaScript 代碼:
- 閱讀和理解代碼:開始之前,仔細(xì)閱讀代碼并理解其功能和邏輯。注意代碼的結(jié)構(gòu)、命名規(guī)范和使用的庫或框架。
- 標(biāo)識和解析混淆技術(shù):嘗試識別代碼中使用的混淆技術(shù)。常見的混淆技術(shù)包括變量名替換、字符串加密、函數(shù)內(nèi)聯(lián)、控制流扁平化等。了解這些技術(shù)將有助于您更好地理解代碼。
- 反混淆:嘗試還原代碼的混淆部分。這可能涉及到將變量名還原回其原始名稱、解密被加密的字符串、恢復(fù)被內(nèi)聯(lián)的函數(shù)等。這需要您根據(jù)混淆的具體技術(shù)進(jìn)行逆向工程。
- 調(diào)試和分析:使用調(diào)試器和開發(fā)者工具來逐步執(zhí)行代碼并觀察其行為。這可以幫助您理解代碼的執(zhí)行流程、變量的值以及與其他代碼模塊的交互。
這段代碼使用了混淆技術(shù)來隱藏其真實(shí)意圖和實(shí)現(xiàn)細(xì)節(jié)。
逐步分析
/* * 加密工具已經(jīng)升級了一個版本,目前為 jsjiami.com.v6 ,更新了加密算法,縮減了體積; * 另外 jsjiami.com.v6 已經(jīng)強(qiáng)制加入校驗(yàn),注釋可以去掉,但是 jsjiami.com.v6 不能去掉,其他都沒有任何綁定。 * 誓死不會加入任何后門,JsJiami.com 加密的使命就是為了保護(hù)你們的Javascript 。 */ var a=['jsjiami.com.v6','ZjsgjilBUDamOPlriw.EVcomBp.lv6==','5p+76Zev6aOL6K2W6ICh57Czw59KXsO7woIUw6fCgMKLw5TCqg==','KFXCvcKCJFM=','IWQXKgw=','Gks8Kg==','w4h1w7oOag=='];(function(c,d,e){var f=function(g,h,i,j){h=h>>0x8;if(h<g){while(--g){j=c['shift']();if(h===g){h=j;i=c['shift']();}else if(i['replace'](/[ZglBUDOPlrwEVBpl=]/g,'')===h){c['push'](j);}}c['push'](c['shift']());}return 0x242ed;};return f(++d,e)>>d^e;}(a,0x1eb,0x1eb00));var b=function(c,d){c=~~'0x'['concat'](c);var e=a[c];if(b['gPvZlv']===undefined){(function(){var f=typeof window!=='undefined'?window:typeof process==='object'&&typeof require==='function'&&typeof global==='object'?global:this;var g='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';f['atob']||(f['atob']=function(h){var i=String(h)['replace'](/=+$/,'');for(var j=0x0,k,l,m=0x0,n='';l=i['charAt'](m++);~l&&(k=j%0x4?k*0x40+l:l,j++%0x4)?n+=String['fromCharCode'](0xff&k>>(-0x2*j&0x6)):0x0){l=g['indexOf'](l);}return n;});}());var o=function(p,d){var r=[],s=0x0,t,u='',v='';p=atob(p);for(var w=0x0,x=p['length'];w<x;w++){v+='%'+('00'+p['charCodeAt'](w)['toString'](0x10))['slice'](-0x2);}p=decodeURIComponent(v);for(var y=0x0;y<0x100;y++){r[y]=y;}for(y=0x0;y<0x100;y++){s=(s+r[y]+d['charCodeAt'](y%d['length']))%0x100;t=r[y];r[y]=r[s];r[s]=t;}y=0x0;s=0x0;for(var z=0x0;z<p['length'];z++){y=(y+0x1)%0x100;s=(s+r[y])%0x100;t=r[y];r[y]=r[s];r[s]=t;u+=String['fromCharCode'](p['charCodeAt'](z)^r[(r[y]+r[s])%0x100]);}return u;};b['fuFDUP']=o;b['uzmgkx']={};b['gPvZlv']=!![];}var A=b['uzmgkx'][c];if(A===undefined){if(b['GkZZBA']===undefined){b['GkZZBA']=!![];}e=b['fuFDUP'](e,d);b['uzmgkx'][c]=e;}else{e=A;}return e;};(function(c,d){var e={'RAMoq':'\x32\x30\x31\x39\u5e74\x30\x39\u6708\x31\x32\u65e5\x31\x35\x3a\x32\x34\x3a\x32\x39\u66f4\u65b0','EaZaN':'\u8fd9\u4e2a\u662f\u4e00\u4e2a\u672c\u7ad9\u5bf9\x4a\x61\x76\x61\x53\x63\x72\x69\x70\x74 \u811a\u672c\u7684\u4e00\u4e2a\u6700\u725b\u52a0\u5bc6\uff0c\u517c\u5bb9\u6027\u9002\u4e2d\uff0c\u89e3\u5bc6\u96be\u5ea6\u6781\u5927'};c[b('0','ZdTU')]=e[b('1','FnxY')];d[b('2','FnxY')]=e[b('3','jPNw')];d['feedback']=b('4','fS%!');}(window,document));
這行代碼定義了一個名為a
的數(shù)組,其中包含一些被混淆過的字符串。
var a=['jsjiami.com.v6','ZjsgjilBUDamOPlriw.EVcomBp.lv6==','5p+76Zev6aOL6K2W6ICh57Czw59KXsO7woIUw6fCgMKLw5TCqg==','KFXCvcKCJFM=','IWQXKgw=','Gks8Kg==','w4h1w7oOag=='];
這行代碼定義了一個數(shù)組a
,其中包含一些字符串元素。
(function(c,d,e){ // ... }(a,0x1eb,0x1eb00));
這是一個立即執(zhí)行函數(shù)(IIFE),接受三個參數(shù)c
、d
和e
。在函數(shù)內(nèi)部進(jìn)行一些操作和計(jì)算。
var b=function(c,d){ // ... }; (function(c,d){ // ... }(window,document));
這部分代碼定義了一個函數(shù)b
,接受兩個參數(shù)c
和d
。又有一個立即執(zhí)行函數(shù),傳遞了window
和document
作為參數(shù)c
和d
。這些函數(shù)的具體實(shí)現(xiàn)被隱藏起來了。
整個代碼段使用了字符串解碼、位運(yùn)算和一些算法,以及對數(shù)組a
進(jìn)行操作和計(jì)算。由于代碼經(jīng)過混淆,可讀性很差,很難直接理解其具體功能和邏輯。
揭曉源碼
(function(w, d) { w.update = "2019年09月12日15:24:29更新"; d.info = "這個是一個本站對JavaScript 腳本的一個最牛加密,兼容性適中,解密難度極大"; d.feedback = "有問題請聯(lián)系xxxxx"; })(window, document);
如果您對文章內(nèi)容有不同看法,或者疑問,歡迎到評論區(qū)留言,或者私信我、到我們的官網(wǎng)找客服號都可以。
如遇自己源碼加密后沒備份,可以找我們解決解出恢復(fù)源碼,任何加密都可以
以上就是js混淆加密之jsjiami.v6分析的詳細(xì)內(nèi)容,更多關(guān)于js混淆加密jsjiami.v6的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
HTML+CSS+JavaScript實(shí)現(xiàn)可拖拽模態(tài)框
這篇文章主要為大家詳細(xì)介紹了HTML+CSS+JavaScript實(shí)現(xiàn)可拖拽模態(tài)框,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07JavaScript針對網(wǎng)頁節(jié)點(diǎn)的增刪改查用法實(shí)例
這篇文章主要介紹了JavaScript針對網(wǎng)頁節(jié)點(diǎn)的增刪改查用法,實(shí)例分析了JavaScript操作網(wǎng)頁節(jié)點(diǎn)的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-02-02微信小程序webview中wx.miniProgram.navigateTo()的使用方法及其問題解決方法
這篇文章主要介紹了微信小程序webview中wx.miniProgram.navigateTo()的使用方法及其問題解決方法,文章描述了微信小程序中web-view嵌入H5頁面時(shí)遇到的問題,特別是當(dāng)H5頁面中包含iframe時(shí),如何在iframe中實(shí)現(xiàn)跳轉(zhuǎn)到小程序的index頁面,需要的朋友可以參考下2024-11-11JS實(shí)現(xiàn)計(jì)算小于非負(fù)數(shù)n的素?cái)?shù)的數(shù)量算法示例
這篇文章主要介紹了JS實(shí)現(xiàn)計(jì)算小于非負(fù)數(shù)n的素?cái)?shù)的數(shù)量算法,可實(shí)現(xiàn)針對一定范圍內(nèi)素?cái)?shù)個數(shù)的統(tǒng)計(jì)功能,涉及javascript數(shù)值運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2019-02-02Bootstrap-table使用footerFormatter做統(tǒng)計(jì)列功能
大家在做表格的時(shí)候,經(jīng)常會做統(tǒng)計(jì)功能,其實(shí)統(tǒng)計(jì)也并沒想想的這么復(fù)雜,實(shí)現(xiàn)起來很簡單,接下來通過通過本文給大家介紹Bootstrap-table使用footerFormatter做統(tǒng)計(jì)列功能,需要的朋友可以參考下2018-09-09JavaScript中的純函數(shù)與偏函數(shù)你了解嗎
JS中,純函數(shù)指在相同的輸入下始終產(chǎn)生相同的輸出并且沒有副作用的函數(shù),偏函數(shù)指一種創(chuàng)建新函數(shù)的方法,通過預(yù)設(shè)一個或多個參數(shù)從而實(shí)現(xiàn)對原始函數(shù)的封裝和定制,本文主要來講講純函數(shù)與偏函數(shù)的一些使用,需要的可以參考一下2023-05-05純javascript實(shí)現(xiàn)四方向文本無縫滾動效果
本文主要給大家分享了使用純javascript實(shí)現(xiàn)的可控制的四方向文本無縫滾動的代碼,效果非常不錯,有需要的小伙伴可以參考下。2015-06-06