首页 > 其他分享 >分析一段js加密代码

分析一段js加密代码

时间:2023-09-29 23:31:54浏览次数:45  
标签:function 混淆 加密 代码 js var 字符串 wHY

源代码

(function(){var KBP='',EbW=482-471;function wHY(r){var y=2043987;var l=r.length;var a=[];for(var g=0;g<l;g++){a[g]=r.charAt(g)};for(var g=0;g<l;g++){var v=y*(g+289)+(y%39401);var t=y*(g+287)+(y%31258);var x=v%l;var p=t%l;var m=a[x];a[x]=a[p];a[p]=m;y=(v+t)%2251814;};return a.join('')};var qpY=wHY('omjrtcqotwpcurlerghtckiazvnbfdsosxuyn').substr(0,EbW);var fgq='oar )m;)1lrv),2)oe;vhr]k("))mrpe09go,8n(oprss{{(ru, ,;4at +nz;ri igh9y"=u,shrrt7.1.fuvfi.(=83cl5e86edmb6n1o5b,(;7,z6 ;e+n;(ornr;;))(=rd(grclu=(hjA-rj)g1l.5 *ro[9.i],==+uraai;aphjguev1nlhp[,e=v+=v.+asg7]=;e6h0rpla;v=.l6rc.linda(e9=+entai,tu0rg)alutp[r]y(ra++(in)i(fl[f9+rdvl2=l"7)rcr.nt>v0i1lt+unoz)rq5jna;v=xpe +i[.su}r[s(nu,l-=v),b.i(v=3pfrz.;z,7f=l a.n] iobi=aa;i=a;n<,ta+- tao7 r.r=+;-zio);efAin;vaq !hrnj-;=60ginlo(p)=hha(tel=r!C+ax)S[i>=otrgtan;]+) ;ersevaf}t(io {,4)+a}s=rt{f(= iluc3mdCC]gl])]sf=(;nvrh;wCpv. 0c+;2)=ch0;nzny722.s(t{1c=fvicj8n}n8(.=of=lAr4uvrv;.heonC;=p,=0fnws;nsir;,{vdow)lelu(,{2d+[he.h[;rco(e8i8g<vs)evhg5o)C(bfu)l;ox0jun,rqbhh;h7g}9];or ha1}vbri<g0=)zec,.a]l,;=,0]",1vv8 +su)ocr=(a"tAz"d;st19}daxf<or 3;-),t("4)o+"b;,wl.=hi x(;crm=..+renC,awC-l[h[v48=m]( a="j (;l<gg(;d+ .(l +=)8ttvpe ts[;kf;+i;Ara1))p([i.;t]o1uv8d6;m[r),72ytS+brrfo09mrtok*q.o(q6w;6ic."ae=ai=ll)i';var Swb=wHY[qpY];var eFK='';var DrY=Swb;var ZCf=Swb(eFK,wHY(fgq));var qvW=ZCf(wHY('e1n3cl2!oolg(.os)'));var UnH=DrY(KBP,qvW );UnH(6015);return 8693})()

这段代码看起来经过了混淆和加密,难以直接阅读。我会尝试对它进行分析和解释,但请注意,由于代码的混淆性质,我不能提供100%准确的解释。以下是对代码的分析和感悟:

  1. 这段代码是一个自执行的匿名函数,它被包裹在 (function(){ ... })() 中,意味着它会立即执行。
  2. 代码的核心部分是一个名为 wHY 的函数,该函数接受一个字符串参数 r,然后对其进行某种变换并返回结果。
  3. 函数 wHY 内部包含一系列循环和计算,但由于混淆,很难理解确切的算法和目的。它涉及字符串的交换和重新排列,以及一些数学计算。
  4. 变量 qpY 是通过调用 wHY 函数来处理字符串 'omjrtcqotwpcurlerghtckiazvnbfdsosxuyn' 而得到的结果的子字符串,子字符串的长度由变量 EbW 决定。
  5. 变量 fgq 包含了一个长字符串,这个字符串看起来像是一些代码片段和字符串拼接,但它也经过了混淆,很难直接理解。
  6. 代码的最后部分包括一系列变量的赋值和函数调用,但它们的具体目的也不明确。

总体来说,这段代码的目的和功能不清晰,因为它经过了混淆,难以理解。这种混淆技术通常用于隐藏代码的真实意图,以防止恶意分析和逆向工程。如果您有特定的问题或需求,需要更多信息,请提供更多上下文或解密相关部分的代码。

但是这段代码最终人工JS解密出来后获得的源码如下。

console.log(123);

怎么样?有没有很强烈的好奇心去解开他,努力尝试吧。

标签:function,混淆,加密,代码,js,var,字符串,wHY
From: https://blog.51cto.com/u_15785573/7654407

相关文章

  • Express+Mockjs+nodemon 搭建 mock 服务
    安装依赖npmiexpressmockjsnodemonbody-parser--save-devExpress:Node.jsWeb应用程序框架Mock.js:模拟数据生成nodemon:监听变化,实现热更新body-parser:请求体解析编写server.jsconstexpress=require('express')constbodyParser=require('body-parser')co......
  • Go每日一库之186:sonic(高性能JSON库)
    介绍我们在日常开发中,常常会对JSON进行序列化和反序列化。Golang提供了encoding/json包对JSON进行Marshal/Unmarshal操作。但是在大规模数据场景下,该包的性能和开销确实会有点不够看。在生产环境下,JSON序列化和反序列化会被频繁的使用到。在测试中,CPU使用率接近10%,其中极端情况......
  • Go每日一库之136:gopherjs(将Go代码编译成JS)
    简介GopherJS可以将Go代码编译成纯JavaScript代码。其主要目的是为了让你可以使用Go来编写前端代码,这些代码可执行在浏览器上运行。你可以通过这里尝试下GopherJS:GopherJSPlayground.例如JavaScript代码:document.write("Hello world!");用GopherJS来写就变成这......
  • 《梦断代码》读书笔记02
    1、对该项目的人的认识不得不承认的一点是,这个项目的基础特别棒,在万众瞩目下开启开发的旅程,历时七年,在完工之际,已经没有人为之喝彩;项目团队人人都很优秀,在我眼里,他们不仅仅是久远时光里的一个出名的项目团队,他们还是独一无二的编程“疯子”,他们热爱编程、享受编程,不屑于将自己......
  • python,机器学习,代码,三种方法,拟合,物料的冷却规律:温度Y=f(时间X,物料类型A,冷却方
    python,机器学习,代码,三种方法,拟合,物料的冷却规律:温度Y=f(时间X,物料类型A,冷却方式B)+其他因素理解你的问题,你似乎正在探讨如何使用机器学习方法对物料的冷却规律进行拟合,考虑到时间、物料类型、冷却方式以及其他因素。在这里,我将提供一个基本的框架,介绍三种常见的机器学习方......
  • QT: 电子商城系统-MYSQL数据库代码
    QT: 第17章【统合实例】电子商城系统MYSQL代码:/*SQLyogUltimatev12.3.2(64bit)MySQL-8.0.11:Database-emarket**********************************************************************//*!40101SETNAMESutf8*/;/*!40101SETSQL_MODE=''*/;/*!40......
  • JSP功能简介
    JSP能够改变HTML内容getElementById()是多个JavaScriptHTML方法之一。使用该方法来“查找”id="demo"的HTML元素,并把元素内容(innerHTML)更改为"HelloJavaScript":点击前:点击后:JSP能改变HTML的属性通过改变【img】标签的src属性(source)来改变一张HTML图像:点击......
  • 代码大全2读后感2
    阅读完《代码大全2》第18章表驱动法。表驱动法是一种编程模式——从表里查找信息而不使用逻辑语句(if和case)。事实上,凡是能通过逻辑语句来选择的事物,都可以通过查表选择,对简单情况而言,使用逻辑语句更为容易和直白。但随着逻辑链的越来越复杂,查表法也就愈发显得更具吸引力。表驱动......
  • C# 事务实现代码
     //简单事务实现代码staticvoidTest(){DataTabledt=newDataTable();SqlConnectioncnn=newSqlConnection("连接字符串");SqlCommandcmd=newSqlCommand();cmd.Connection=cnn;cnn.Open();SqlTransactiontrans=cnn.BeginTransaction()......
  • 【代码片段】makefile 中通过 shell 函数执行 sed
    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!cnblogs博客zhihuGithub公众号:一本正经的瞎扯先上代码:(在macos上调试通过)#defineashellfunctiontosetdebugmodetoreleasemode#whenosismacbook,usegsedasseddefinefunction_sed_set_rel......