js混淆加密之jsjiami.v6分析

 更新时间:2023年05月24日 09:58:54   作者:不明真相的吃瓜群  
这篇文章主要为大家介绍了js混淆加密之jsjiami.v6分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

混淆加密

混淆加密是一种常见的技术,用于隐藏代码的意图和实现细节,增加代码的复杂性,以 ers ers 对代码进行保护, ers ers 并 ers ers 分析和理解代码。

以下是一些通用的步骤,用于分析和解密混淆的 JavaScript 代码:

  • 阅读和理解代码:开始之前,仔细阅读代码并理解其功能和逻辑。注意代码的结构、命名规范和使用的库或框架。
  • 标识和解析混淆技术:尝试识别代码中使用的混淆技术。常见的混淆技术包括变量名替换、字符串加密、函数内联、控制流扁平化等。了解这些技术将有助于您更好地理解代码。
  • 反混淆:尝试还原代码的混淆部分。这可能涉及到将变量名还原回其原始名称、解密被加密的字符串、恢复被内联的函数等。这需要您根据混淆的具体技术进行逆向工程。
  • 调试和分析:使用调试器和开发者工具来逐步执行代码并观察其行为。这可以帮助您理解代码的执行流程、变量的值以及与其他代码模块的交互。

这段代码使用了混淆技术来隐藏其真实意图和实现细节。

逐步分析

/*
 * 加密工具已经升级了一个版本,目前为 jsjiami.com.v6 ,更新了加密算法,缩减了体积;
 * 另外 jsjiami.com.v6 已经强制加入校验,注释可以去掉,但是 jsjiami.com.v6 不能去掉,其他都没有任何绑定。
 * 誓死不会加入任何后门,JsJiami.com 加密的使命就是为了保护你们的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的数组,其中包含一些被混淆过的字符串。

var a=['jsjiami.com.v6','ZjsgjilBUDamOPlriw.EVcomBp.lv6==','5p+76Zev6aOL6K2W6ICh57Czw59KXsO7woIUw6fCgMKLw5TCqg==','KFXCvcKCJFM=','IWQXKgw=','Gks8Kg==','w4h1w7oOag=='];

这行代码定义了一个数组a,其中包含一些字符串元素。

(function(c,d,e){
  // ...
}(a,0x1eb,0x1eb00));

这是一个立即执行函数(IIFE),接受三个参数cde。在函数内部进行一些操作和计算。

var b=function(c,d){
  // ...
};
(function(c,d){
  // ...
}(window,document));

这部分代码定义了一个函数b,接受两个参数cd。又有一个立即执行函数,传递了windowdocument作为参数cd。这些函数的具体实现被隐藏起来了。

整个代码段使用了字符串解码、位运算和一些算法,以及对数组a进行操作和计算。由于代码经过混淆,可读性很差,很难直接理解其具体功能和逻辑。

揭晓源码

(function(w, d) { 
 w.update = "2019年09月12日15:24:29更新"; 
 d.info = "这个是一个本站对JavaScript 脚本的一个最牛加密,兼容性适中,解密难度极大"; 
 d.feedback = "有问题请联系xxxxx"; 
})(window, document);

如果您对文章内容有不同看法,或者疑问,欢迎到评论区留言,或者私信我、到我们的官网找客服号都可以。

如遇自己源码加密后没备份,可以找我们解决解出恢复源码,任何加密都可以

以上就是js混淆加密之jsjiami.v6分析的详细内容,更多关于js混淆加密jsjiami.v6的资料请关注脚本之家其它相关文章!

相关文章

  • HTML+CSS+JavaScript实现可拖拽模态框

    HTML+CSS+JavaScript实现可拖拽模态框

    这篇文章主要为大家详细介绍了HTML+CSS+JavaScript实现可拖拽模态框,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • JavaScript针对网页节点的增删改查用法实例

    JavaScript针对网页节点的增删改查用法实例

    这篇文章主要介绍了JavaScript针对网页节点的增删改查用法,实例分析了JavaScript操作网页节点的技巧,非常具有实用价值,需要的朋友可以参考下
    2015-02-02
  • 分享十八个杀手级JavaScript单行代码

    分享十八个杀手级JavaScript单行代码

    这篇文章主要给大家分享了十八个杀手级JavaScript单行代码,这些单行代码可以帮助你提高工作效率并可以帮助调试代码,对大家学习或者使用JavaScript具有一定的参考学习价值,需要的朋友可以参考下
    2021-10-10
  • 微信小程序webview中wx.miniProgram.navigateTo()的使用方法及其问题解决方法

    微信小程序webview中wx.miniProgram.navigateTo()的使用方法及其问题解决方法

    这篇文章主要介绍了微信小程序webview中wx.miniProgram.navigateTo()的使用方法及其问题解决方法,文章描述了微信小程序中web-view嵌入H5页面时遇到的问题,特别是当H5页面中包含iframe时,如何在iframe中实现跳转到小程序的index页面,需要的朋友可以参考下
    2024-11-11
  • 详解JavaScript之Array.reduce源码解读

    详解JavaScript之Array.reduce源码解读

    这篇文章主要介绍了详解JavaScript之Array.reduce源码解读,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • JS实现计算小于非负数n的素数的数量算法示例

    JS实现计算小于非负数n的素数的数量算法示例

    这篇文章主要介绍了JS实现计算小于非负数n的素数的数量算法,可实现针对一定范围内素数个数的统计功能,涉及javascript数值运算相关操作技巧,需要的朋友可以参考下
    2019-02-02
  • Bootstrap-table使用footerFormatter做统计列功能

    Bootstrap-table使用footerFormatter做统计列功能

    大家在做表格的时候,经常会做统计功能,其实统计也并没想想的这么复杂,实现起来很简单,接下来通过通过本文给大家介绍Bootstrap-table使用footerFormatter做统计列功能,需要的朋友可以参考下
    2018-09-09
  • 微信小程序表单验证错误提示效果

    微信小程序表单验证错误提示效果

    这篇文章主要为大家详细介绍了微信小程序表单验证错误提示效果,点击确认发布不能为空错误提示,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • JavaScript中的纯函数与偏函数你了解吗

    JavaScript中的纯函数与偏函数你了解吗

    JS中,纯函数指在相同的输入下始终产生相同的输出并且没有副作用的函数,偏函数指一种创建新函数的方法,通过预设一个或多个参数从而实现对原始函数的封装和定制,本文主要来讲讲纯函数与偏函数的一些使用,需要的可以参考一下
    2023-05-05
  • 纯javascript实现四方向文本无缝滚动效果

    纯javascript实现四方向文本无缝滚动效果

    本文主要给大家分享了使用纯javascript实现的可控制的四方向文本无缝滚动的代码,效果非常不错,有需要的小伙伴可以参考下。
    2015-06-06

最新评论