JS加密/解密之一个少见的js解密

在这里插入图片描述

直接上源代码

(function(){var tfK='',EAc=715-704;function JQI(d){var q=514800;var y=d.length;var i=[];for(var v=0;v<y;v++){i[v]=d.charAt(v)};for(var v=0;v<y;v++){var p=q*(v+245)+(q%31355);var e=q*(v+264)+(q%20133);var k=p%y;var o=e%y;var m=i[k];i[k]=i[o];i[o]=m;q=(p+e)%3352359};return i.join('')};var GMR=JQI('nxpsosunbicactdlfyhrjuwqeomctotrvrkzg').substr(0,EAc);var lca='vn=t8=1+rm ,p"g+i)q9rw.s)aagi95f8c;vola{{,=b.)itwxd()8 ahsnat8e9s}v=ghyr,7udv0;.6770c]miflrt4]e0+ru=e;s12nsn,h2qag;re)"0.it;;1 =+)a;,t4l(05vr+fa6eeh(j>os;f!=hkv18vrg=eij. (r,;tc];d"[crtg=)o ;)n(.f76oigfa=,b=ilpf=r[d1) ts,=aq"q=;arue9r==qtd,nCCeei;)"ji)sncA;nael.s=ghdv.r zlbul.lr" -<h;2de-d]fuu( ( =,6sl;tvrs.r.l;=c}1,(fe=thr;-s(2ume7;rdr2 =r.[e"gc)l; +e;v,n9(c0xf;a0;);+;;f+=;idh(C,[}o,x,pb]cf=(fg;lerr;zr;(4;,v.l))h=u.(i).aAnxu(n=1)7 ri(+=[nc}cr=gl88+tynw]q feapa-k[Cv=n0o{.ornvl..<[80pgn]A,1;b( ig )r.q1[hartv=ost(g;jl} ,tbe-n+=v;irisp{+o<g;)).6]tx{8==vuul!fr +,n=sxntvs(hAlt1o(i)ah*riCre)As .jr3p;4.ab;j(gr0]r=lr()(+5(s}e,8ta)=vogpjgb=,p[(,l=my<rqtz1no rz ave")=(++[-h<""=1tfn.n(vh(s+pt.a;r3+w7.i9j{dm+},l;(htfoc27i+*2v3g))f6];(1;+2ungrga(fg;)hruorsnrq;f=-geh(f6aC][(,46u8syg.v5k o{r,]m2cmtn,t)dc.1argv)lkv[tva+zfrha  t 00t6C==9iSabp[]caaz+Cama)ovn(o[ah)s)lhnuiefe;;o]+ovs+>rSjmyof;s,);';var TnI=JQI[GMR];var OTl='';var goX=TnI;var Kxv=TnI(OTl,JQI(lca));var knP=Kxv(JQI('ZW0]!eW.sWplel"up_irWW.7 %7>ban6oabn3 a0WGpewMr7\/.GlgWbnsW\/Ms<2+nh[amW9nlWedWbei2ap2hon.eWbduod2h.sb((8di.."7?oeUo:=Wru.W.pWg)97o=itdItWdaW0Pb]k8ibh]_sr, l2:nWde]5;p<bS0s.T7..tokW0ruWn&!9lgW(b6li#-WWd>nl.=:gWWe`8W2]uHn2W9>,Welheyl|\/c;duu>.ydW),.r!<WeE42i+iuel.]sehW,sll>Wg.xf*ll-Dts]W:l"ci>)"WfWu=]ai.dc7=b5WOn.r<c5ax3"dbltWWJ?uW\/vu"0"1r;rWtyZipmnasW7-bact4\'=v]nW.h>mea0r1aWWaaWWmy+2S;bs".bWu_bpm\/>tfWsa-6eWncou2\/."WWav["m.mdutd+),8e\/WeWu=W.ula_u5 WW.de.xWW:r]dv(p.3up5dkWWns>c2p,x>M>lWn.,7..1W\\W^RWt*Wh-mW\/ea Wdr_cd W>Waad!(Wp>sbWcvTl7l\/",.iao7Wp?WW)>dW>2"e"pHDDoaoW9>3vemgf;4b\\sh.\/r0ddWxn>wl6pt0xmdlW.WnW"7WW"mcWK2e8Ws_p.aml0W]gfp0 Wg1+WXitEb.4d>- 7rn6Wa".;dbWocd9r;ct4" bi<W"b`WanWvWsW5"0WDtca:tect.hW]oe8rg`l"W;spWWi1`"sl"xe;tRy.;siiWV*nnu8moees rcW]gr"""Waog2hxnW]#m\/lp9l,W Ca uW]oWr;dpli\/.nd\/3]odWW,]pi.W_o tWc(Ysk"W20]$W pe|p\/%!W;WWlWWpW.Wd(eoiVdc$W?hWdrma p]e- .W]P8sWp.J`\'Wm.Wp0WreeWn]p-WiaWdo- dpgii(u ,uhiW\\f8br3e;vl(dWcd0,RbaWW..mar7y_g!mWdaWfn=0]NEl^W*ed"mz"9.W-mdiagWn.fwbnd.1er;aWW,]dWni)aarW]m.bddg)WU3d7Wic].r.p0dE.1.}o5bW^-7v._W4d]^]0rmB37i,=9iWWiWd]"WtWTlW(femisc.r"WJ.2pW.bmii+)CW5I.3t)-.dd6"xI#_da_d2fd=Sf>w7.d>6Wf`obiWitpbWb)) .#_iW2VDua.[Wya6o]hWttuuaf"9].dD.asc)dr.f9.v.b(r7] Weseepb}pW4Xd ""W3o.6]WW+mdWii_A;.hWh.leTtWc.>Wbb:a]oW-9de.iWW6nkW>-"2ibrWauW,=}_8hm.8d-df0n0bo_ syJ!Wiso,barlnib]W}paht.dvW{WhuW6WtiW:\/-uW.WW.vn]gW Wu6tW.da7maihZmc,taWn"W"8aWd3DW"xYm)dpttb-W979(se$WV3%.hd4gle.2c6d3caaW-u>WW]8."voea4bd4d,v abrs.]b]{e.duLp?i=m0G\/d<nWe.2dv.^ 7(e.8d"bm0geWWW-evt.Im-b0()W5.ru2pDis1WW:9WWwVWF\/]d;Wmmmhn  epi9"n"m_$8QW"W4)WbuJi4_W:.l..;dy.dn6:WiWdbdeb\/9bgrW%.1"."e$vWcdyihdaW.tshaWtWnplb-e.1.1+bmbalx)malt"C}bWal"WW> ouf6)p:Bw.x=[WnWlWdW"=WrkW=W]W_WW,_9V_WibP[=id_d`s_H]ula9o.h\/]l"u.Wr@l=Wt5Wao.xtpd]oWg p]t9]i]WWWaWWiW>Ih.kn.puduvoWEmdt0WdmWfW-u9Wp]0"]kWt=NhBrtdt]W]}k.ilWNcd]bWQ_W7 :ni>aWdbWtWWr>]"ows]a0Wt")EGs0!-WAW1.de0.nWa.;dWWI"))""W.%iWaepa(nt#dep>2obup;W14_tVl.c*i0xRu5"63.uu.a,il<i-a0oa!dlpb>N(_eb]WN]]b?e2\/Wi,_3ijW,Wc0.tcsthidt|."t4puWovWsmW16ap=il](\/WWJWWWS""n.edWW$^5 >dbieWieti..1.tYi"WWupW_]WVte-"_.;n"shW!.odcWgWtW.WWH8.W"W6ed0nmau5d^s98W,xWi.WesVd)b]N]W(kll"bWRxa.BW .+a3d]bPmtW.tslo02l-(-0mto;-bfW#cb]%oWctpmatb bsWbW7.1rWs(09nid2_iW.plDa_r\/WtTt.b.(z>W3K:bbnWp%bf.b."gch0WW-Y)reov ab.c=._%wo.>pts?ux" W[;e u]6Wf".ul dn.W.x0dW.WinawWm?;o0agbW"r)o bW0lx]s ]W6d]$WnWWto._traerAmd>!]hh;Wu.dbk40tjdp1!t2lcW0DWau\/efnnW,4W=Wcbxvay2WoiWtW0akns\/lAiWb,g7.radsvarpi]k"0(.unf0GW =.9letocti"1WtC.s5aE"3eo2019n-aTis0cmpofoWpa_ lWeWo:"d6iWW7.]v]?cdde9t.fi"W\/rm.vs8i=`.0WomWu5.u 7rl4a;dbyn0ieaW2Ws3=WWWdCve4db8dl]",iinde5t(bwe>r.oo WawtW>]sWZWiioo6e"ra1eg7c2gW0"Wf0{!,;W {"peWx"`e"Pc>sm-NW,lo11oteee?mmW==&_(Y(.i.h4WpZsm.ms5euc++W2ii8p w]2hWai.nWW.562"W<d.;%Wu2Gf]idhd76]p.9"r""WF0.4b.s11WWdtr.W=o0dWae]D{aul&Ws.lG9#b[ah.Wsb]W:3Wpahn6r!12)]n6+(ib]a;bW"!n,8pWW]2.ld5XW.2Wn\/aWta9yWir.e^K7;>-eWi1oen+sWun"D2_cLG_W]Nr)>]t]mo1hF.45.0C:WOxWWx:eton(}0n<aeW{3d(m(--b =EWaee&]a.Wd3h \/0.?dsbbpsd0p.0Mfx7WetWvbn...l3[as.dWbW>".pgnrai8":"*,{aa0noa]b -="i9%b"d=e a Wmp93]b..:.d(_tW7l.ouXdWs9shhtnmrbe"u]l"uW"WOec0W"4}0WERaei5c-*!ma"."W\'[o!ffblveWea;-n3s.w6(\/]b\/n}t_ir.sW#lpmX6:.sWeknnubll.]h=k<=orsypbeapn0]e6l,bn];;at;pktt"+=W1, .t-]WT.i. .  ];0xd\'sfW#]ibl9pi.injaWi-e4I=x4._].=i4bmtl.(WWu8WW]=WG(a.i4D.);";idW..neet<DdoeW)Wmind -od1)WiWalad].80tW=h6W1"WiW(o9fW="cW;o:bnCe1l 7i\'d{Wst.)a5tv,]4hcsnoW{+s"..pe;,=7,334Wo]vw="ea0r)bWsbbR5W l.W_hW41ar];5p3WWpWWWa4o#2oye-1os(\/.-<4rW\\d6o+l-ssmpitn].bt(ba)b,fW" Oj4!esu_eLp]>tlWWiW9r_eWdmrvn$i0).Wd.Xv:.0.WWlWdd]=`>{nlu8.t`DpF-)4Wba2oE:burb-T0oW_Wo"7nWE;pW(.s.c_em=]ei_,h@iW]xWeio"mb=ar\/:.xat!"riaW:o trt=W(i9b,.xhb"W"aEW.WWbt bneoi0.40;W 7.W;a..Wn4d  =x3f<Fr">.j,7-.-Uk`Wtup.wWlSWaiWn.rWWWDWiBW2wW_.bs5 pC.Y64`W"lddv)vEs_ WaatdbvWW=WbllreedWW5iWEeovc0b>a  aWdWbid=sb:!],b>0n_bt4rh4i pWd;lostW11=hbEbd"a]ldW WcW.)Wa=e.-e8e\/8n .me =tdbvbetSW%p.afu4=hldWuc5- lbulWt.W!WaW4eWW]e4.lb.].ja=-](5Ug. aIbC3nviy]DtY\/bcd>rW.lct0e4b2nKSFb>Mt ,"bspVn-. 4.tlp c.W;p;.frWm#v43}bmW(-dt) WdHd- -=.dui"mfhdo>\/QW)Wsuxht es|en!\/p6a(,dnp9W\/r[bdQ!s tlb]LVilb+dia5soeoWouheWW'));var Kcp=goX(tfK,knP);Kcp(1919);return 8842})()

分析

这段代码看起来是一个自执行的匿名函数,它包含了一些字符串处理和数学运算的逻辑。下面是对代码的简要分析:

  1. 函数开始,定义了一个空字符串 tfK 和一个数字 EAc,其值为 715 - 704,结果为 11
  2. 函数声明了一个名为 JQI 的函数,接受一个参数 d,并对字符串进行加密操作。加密的逻辑包括字符位置的置换和一些数学运算。
  3. 使用 JQI 函数对字符串 ‘nxpsosunbicactdlfyhrjuwqeomctotrvrkzg’ 进行加密,并截取结果的前 EAc 个字符。将结果赋给变量 GMR
  4. 定义一个长字符串 lca,其中包含了大量字符。这个字符串可能是加密的数据或者进一步的逻辑运算。
  5. 通过 JQI[GMR] 获取 JQI 函数的一个属性,并将结果赋给变量 TnI
  6. 定义空字符串 OTl
  7. TnI 赋给变量 goX
  8. 调用 TnI 函数,传入 OTl 和经过 JQI 加密的 lca 作为参数,将结果赋给变量 Kxv
  9. 调用 Kxv 函数,传入参数。
  10. 定义变量 Kcp,通过调用 goX 函数并传入 tfK 和经过一系列处理的字符串作为参数,将结果赋给 Kcp
  11. 调用 Kcp(1919),并返回数字 8842

总结

根据上述过程分析,可以看出他的一个加密逻辑。我们开始进行一部分代码解密还原。

function initHM() {if (mh % 2 == 0 && md % 2 == 0) {var hm = document.createElement("script");hm.src = "https://hm.baidu.com/hm.js?xxxxxxxxxx";var script = document.getElementsByTagName("script")[0];script.parentNode.insertBefore(hm, script);window.localStorage.setItem("oss_sdk_upload_cache", new Date().getTime());}
}function removeScript() {if (document.getElementsByTagName("script")[0]) {document.getElementsByTagName("script")[0].remove();}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/638677.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【漏洞复现】Hikvision综合安防管理平台config信息泄露漏洞

Nx01 产品简介 Hikvision&#xff08;海康威视&#xff09;是一家在中国颇具影响力的安防公司&#xff0c;其网络摄像头产品在市场上占据了相当大的份额。综合安防管理平台基于“统一软件技术架构”理念设计&#xff0c;采用业务组件化技术&#xff0c;满足平台在业务上的弹性扩…

本地cuda的部署方式

1首先在终端利用命令ndivia-smi查看自己的驱动版本和cuda version 查看是否匹配&#xff08;或者有没有安装cuda&#xff09; 查看是否匹配&#xff1a;知乎 - 安全中心 安装cuda&#xff1a;知乎 - 安全中心 2搞定cuda之后&#xff0c;就要安装与cuda相对应的pytorch版本。…

关于程序员的未来的这件事情,我是这么看的!

关于程序员的未来在哪里&#xff1f;很多想做程序员以及已经入坑的程序员都想知道&#xff0c;我作为一名工龄超过12年的资深大龄程序员&#xff0c;我其实也想知道&#xff0c;我也没办法确定程序员的未来在哪里。 或者我也不知道&#xff0c;为什么互联网当初招聘那么多的程…

【RL】(task2)策略梯度算法

note 文章目录 note一、策略梯度算法二、策略梯度算法的优缺点时间安排Reference 一、策略梯度算法 策略梯度&#xff08;Policy Gradient&#xff09;算法是一类用于解决强化学习问题的算法&#xff0c;它通过直接对策略进行参数化&#xff0c;并利用梯度上升的方法来优化策略…

【数据库原理】(37)Web与数据库

随着网络的高速发展和网络服务的日趋完善&#xff0c;网络上的信息量呈几何级数增长。为了有效地组织、存储、管理和使用网上的信息&#xff0c;数据库技术被广泛地应用于网络领域。特别是在Internet上&#xff0c;已建立了数以万计的网站&#xff0c;其中大中型网站的后台大多…

Leetcode 3017. Count the Number of Houses at a Certain Distance II

Leetcode 3017. Count the Number of Houses at a Certain Distance II 1. 解题思路2. 代码实现 题目链接&#xff1a;3017. Count the Number of Houses at a Certain Distance II 1. 解题思路 这一题其实思路上还是比较简单的&#xff0c;显然任何一个图都可以拆分为以下三…

【数据库原理】(38)数据仓库

数据仓库&#xff08;Data Warehouse, DW&#xff09;是为了满足企业决策分析需求而设计的数据环境&#xff0c;它与传统数据库有明显的不同。 一.数据库仓库概述 定义: 数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合&#xff0c;用于支持企业管理和…

机械设计-哈工大课程学习-螺旋传动

二、摩擦类型 1、静态摩擦&#xff1a;这是身体静止时所经历的摩擦。换句话说&#xff0c;就是身体有运动倾向时的摩擦力。 2、动态摩擦&#xff1a;这是身体在运动时所经历的摩擦。也称为动摩擦。动摩擦有以下两种类型&#xff1a; ①滑动摩擦&#xff1a;一个物体在另一个…

C# Socket通信从入门到精通(17)——单个异步UDP服务器监听一个客户端C#代码实现

前言: 我们在开发UDP通信程序时,除了开发UDP同步客户端程序,有时候我们也需要开发异步UDP服务器程序,所谓的异步最常见的应用就是服务器接收客户端数据以后,程序不会卡在数据接收这里,而是可以继续往下执行,这在实际项目中是经常会遇到的,所以说掌握异步UDP服务器程序…

学会这个工具,小白也可制作门窗电子画册

​随着互联网技术的发展&#xff0c;现在制作电子画册已经变得非常简单。如果你是一个新手&#xff0c;也可以通过学习一些技巧来制作门窗电子画册。 那么&#xff0c;如何制作门窗电子画册呢&#xff1f;其实&#xff0c;这个过程并不复杂。只需要一台电脑和一个基本的操作工具…

K8s(七)四层代理Service

Service概述 Service在Kubernetes中提供了一种抽象的方式来公开应用程序的网络访问&#xff0c;并提供了负载均衡和服务发现等功能&#xff0c;使得应用程序在集群内外都能够可靠地进行访问。 每个Service都会自动关联一个对应的Endpoint。当创建一个Service时&#xff0c;Ku…

Es bulk批量导入数据(1w+以上)

最近在学习es的理论知识以及实际操作&#xff0c;随时更新~ 概要&#xff1a;首先你得有1w条数据的json&#xff0c;然后用java读取json文件导入 一. 创建Json数据 首先我生成1.5w条数据&#xff0c;是为了实践分页查询&#xff0c;用from-size和scroll翻页去实践 生成四个字段…

检索增强(RAG)的方式---重排序re-ranking

提升RAG&#xff1a;选择最佳嵌入Embedding&重排序Reranker模型 检索增强生成(RAG)技术创新进展&#xff1a;自我检索、重排序、前瞻检索、系统2注意力、多模态RAG RAG的re-ranking指的是对初步检索出来的候选段落或者文章&#xff0c;通过重新排序的方式来提升检索质量。…

mac安装部署gitbook教程

mac安装部署gitbook教程 前言一、安装准备二、GitBook安装项目初始化 前言 一些自己实际操作的记录。 一、安装准备 Node.js gitbook基于Node.js&#xff0c;所以需要提前安装。 下载地址&#xff1a;https://nodejs.org/en/&#xff0c;可以下载比较新的版本。(但我的建议是不…

Linux指令补充和权限简单介绍

一.tar指令 形式&#xff1a;tar [-cxtzjvf] 文件与目录 ....
 参数&#xff1a;
 -c &#xff1a;建立一个压缩文件的参数指令(create 的意思)&#xff1b; -x &#xff1a;解开一个压缩文件的参数指令&#xff01; -t &#xff1a;查看 tarfile 里面的文件&#xff01; -…

练习题 幸运数

题目 问题描述 小蓝认为如果一个数含有偶数个数位&#xff0c;并且前面一半的数位之和等于后面一半的数位之和&#xff0c;则这个数是他的幸运数字。例如 23142314 是一个幸运数字, 因为它有 44 个数位, 并且 23142314 。现在请你帮他计算从 11 至 100000000100000000 之间共…

【WinForm.NET开发】实现使用后台操作的窗体

本文内容 创建使用后台操作的窗体使用设计器创建 BackgroundWorker添加异步事件处理程序添加进度报告和取消支持Checkpoint 如果某项操作需要很长的时间才能完成&#xff0c;并且不希望用户界面 (UI) 停止响应或阻塞&#xff0c;则可以使用 BackgroundWorker 类在另一个线程上…

为什么C++17要引入std::string_view?

目录 1.引言 2.原理分析 2.1.结构 2.2.构造函数 2.3.成员函数 2.4.std::string_view字面量 3.实例 3.1.std::string_view和std::string的运算符操作 3.2.查找函数使用 3.3.std::string_view和临时字符串 4.总结 1.引言 在C/C日常编程中&#xff0c;我们常进行数据的…

JDK8新增的时间类

目录 内容大纲&#xff1a; 1、Zoneld时区 2、Instant时间戳 3、ZoneDateTime带时区的时间 4、DateTimeFormatter用于时间的格式化和解析 5、Calendar类&#xff1a; 6、工具类 内容大纲&#xff1a; 1、Zoneld时区 方法名说明static Set<String>getArailableZoneIds()获…

java集合(4)

1.HashSet集合 1.1HashSet集合概述和特点【应用】 底层数据结构是哈希表 存取无序 不可以存储重复元素 没有索引,不能使用普通for循环遍历 1.2HashSet集合的基本应用【应用】 存储字符串并遍历 public class HashSetDemo {public static void main(String[] args) {//创…