首页 > 其他分享 >纯人工手解jsjiami.v5|jsjiami.v6过程分析记录

纯人工手解jsjiami.v5|jsjiami.v6过程分析记录

时间:2023-04-24 17:33:35浏览次数:37  
标签:手解 混淆 function 代码 JavaScript v5 v6 var jsjiami

JSJiami.v6是一种JavaScript代码混淆工具,它可以将JavaScript代码转化为难以理解和阅读的形式,从而增强代码的保密性和安全性。在本文中,我们将介绍JSJiami.v6的工作原理,并提供一些实际的案例代码。

JSJiami.v6的工作原理 JSJiami.v6采用了多种混淆技术,包括代码结构转化、变量重命名、字符串加密、控制流混淆等。具体而言,JSJiami.v6将原始JavaScript代码分析成一个抽象语法树(AST),然后通过对AST进行各种混淆操作来生成混淆后的代码。下面是一些混淆技术的例子:

代码结构转化:将原始代码中的一些语句重组成不同的结构,以使代码更难以理解和分析。 变量重命名:将原始代码中的变量名称替换为不相关的名称,从而增加代码的混淆度。 字符串加密:将原始代码中的字符串转换为加密的形式,以使它们更难以被识别和解码。 控制流混淆:修改代码中的控制流结构,如if语句、while循环等,以使代码的执行流程更难以预测。

案例代码

下面是一个简单的JavaScript代码段:

function add(a, b) {
  return a + b;
}

使用JSJiami.v6进行混淆后,代码如下所示:

var _0xodF='jsjiami.com.v6',_0xodF_=['‮_0xodF'],_0x2a22=[_0xodF,'wqnDucOtwoTDvg==','jWpsjYiapmgiUJ.com.v6TXhVwQnXg=='];if(function(_0x485a00,_0x5bd606,_0x411d47){function _0x22ad00(_0x515f50,_0x37487a,_0x1ba3ad,_0x562901,_0x53c014,_0x37d0fb){_0x37487a=_0x37487a>>0x8,_0x53c014='po';var _0x1ba2cf='shift',_0x2cad2e='push',_0x37d0fb='‮';if(_0x37487a<_0x515f50){while(--_0x515f50){_0x562901=_0x485a00[_0x1ba2cf]();if(_0x37487a===_0x515f50&&_0x37d0fb==='‮'&&_0x37d0fb['length']===0x1){_0x37487a=_0x562901,_0x1ba3ad=_0x485a00[_0x53c014+'p']();}else if(_0x37487a&&_0x1ba3ad['replace'](/[WpYpgUJTXhVwQnXg=]/g,'')===_0x37487a){_0x485a00[_0x2cad2e](_0x562901);}}_0x485a00[_0x2cad2e](_0x485a00[_0x1ba2cf]());}return 0x12c353;};return _0x22ad00(++_0x5bd606,_0x411d47)>>_0x5bd606^_0x411d47;}(_0x2a22,0x19c,0x19c00),_0x2a22){_0xodF_=_0x2a22['length']^0x19c;};function _0x25c1(_0x30b8ca,_0x106a6f){_0x30b8ca=~~'0x'['concat'](_0x30b8ca['slice'](0x1));var _0x34480d=_0x2a22[_0x30b8ca];if(_0x25c1['EFCvym']===undefined){(function(){var _0x29fb0a=typeof window!=='undefined'?window:typeof process==='object'&&typeof require==='function'&&typeof global==='object'?global:this;var _0x3454ef='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0x29fb0a['atob']||(_0x29fb0a['atob']=function(_0xfc9141){var _0x539cc3=String(_0xfc9141)['replace'](/=+$/,'');for(var _0x33708b=0x0,_0x5c0be1,_0x197903,_0x5e33ea=0x0,_0x160b4c='';_0x197903=_0x539cc3['charAt'](_0x5e33ea++);~_0x197903&&(_0x5c0be1=_0x33708b%0x4?_0x5c0be1*0x40+_0x197903:_0x197903,_0x33708b++%0x4)?_0x160b4c+=String['fromCharCode'](0xff&_0x5c0be1>>(-0x2*_0x33708b&0x6)):0x0){_0x197903=_0x3454ef['indexOf'](_0x197903);}return _0x160b4c;});}());function _0x45a369(_0x17f0e3,_0x106a6f){var _0x7e9608=[],_0x88e29=0x0,_0x418b04,_0x4c87ee='',_0x484fed='';_0x17f0e3=atob(_0x17f0e3);for(var _0x1d20ac=0x0,_0x3e8cbc=_0x17f0e3['length'];_0x1d20ac<_0x3e8cbc;_0x1d20ac++){_0x484fed+='%'+('00'+_0x17f0e3['charCodeAt'](_0x1d20ac)['toString'](0x10))['slice'](-0x2);}_0x17f0e3=decodeURIComponent(_0x484fed);for(var _0x7715=0x0;_0x7715<0x100;_0x7715++){_0x7e9608[_0x7715]=_0x7715;}for(_0x7715=0x0;_0x7715<0x100;_0x7715++){_0x88e29=(_0x88e29+_0x7e9608[_0x7715]+_0x106a6f['charCodeAt'](_0x7715%_0x106a6f['length']))%0x100;_0x418b04=_0x7e9608[_0x7715];_0x7e9608[_0x7715]=_0x7e9608[_0x88e29];_0x7e9608[_0x88e29]=_0x418b04;}_0x7715=0x0;_0x88e29=0x0;for(var _0x4bae48=0x0;_0x4bae48<_0x17f0e3['length'];_0x4bae48++){_0x7715=(_0x7715+0x1)%0x100;_0x88e29=(_0x88e29+_0x7e9608[_0x7715])%0x100;_0x418b04=_0x7e9608[_0x7715];_0x7e9608[_0x7715]=_0x7e9608[_0x88e29];_0x7e9608[_0x88e29]=_0x418b04;_0x4c87ee+=String['fromCharCode'](_0x17f0e3['charCodeAt'](_0x4bae48)^_0x7e9608[(_0x7e9608[_0x7715]+_0x7e9608[_0x88e29])%0x100]);}return _0x4c87ee;}_0x25c1['xZXAoo']=_0x45a369;_0x25c1['OTcLRZ']={};_0x25c1['EFCvym']=!![];}var _0x2feba0=_0x25c1['OTcLRZ'][_0x30b8ca];if(_0x2feba0===undefined){if(_0x25c1['EzxfHq']===undefined){_0x25c1['EzxfHq']=!![];}_0x34480d=_0x25c1['xZXAoo'](_0x34480d,_0x106a6f);_0x25c1['OTcLRZ'][_0x30b8ca]=_0x34480d;}else{_0x34480d=_0x2feba0;}return _0x34480d;};function add(_0x1cfed8,_0x30dfda){var _0x2d8685={'BfAzx':function(_0x50c4e3,_0x351826){return _0x50c4e3+_0x351826;}};return _0x2d8685[_0x25c1('‫0','*J5B')](_0x1cfed8,_0x30dfda);};

混淆后的代码包括一个eval函数,该函数将一个字符串作为参数,并将其解释为JavaScript代码。字符串本身包含一个匿名函数,该函数包含原始代码的混淆版本。该匿名函数使用字符串加密技术将原始代码的参数和返回值重命名为1、2和3,并将其重新组合成一个新的函数。该函数的返回值也被字符串加密为一个字符串。

总结 JSJiami.v6是一种强大的JavaScript代码混淆工具,它可以有效地保护JavaScript代码。

如果您对文章内容有不同看法,或者疑问,欢迎到评论区留言,或者私信我都可以。

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

标签:手解,混淆,function,代码,JavaScript,v5,v6,var,jsjiami
From: https://blog.51cto.com/u_15781271/6221544

相关文章

  • FastCopy v5.0.5 绿色汉化版
    更新流水:2023.04.22:自改官方5.0.5最新正式版本2022.04.20:首个自改官方 5.0.4最新正式版本修改内容:by.th_sjy&安心爱&萌面蛋饺基于th_sjy汉化版为模板,重新修正中文语言(感谢安心爱对日语翻译提供帮助)删除多余语言,解除在WinPE环境下运行限制剔除检测更新及帮助内多余菜单......
  • Yolov5_DeepSort_Pytorch:基于 Yolov5 + Deep Sort 的实时多目标跟踪器
    Yolov5_DeepSort_Pytorch:基于Yolov5+DeepSort的实时多目标跟踪器 视界君 Python视界 昨天Python视界分享简介该存储库包含一个两阶段跟踪器。YOLOv5(一系列在COCO数据集上预训练的对象检测架构和模型)生成的检测被传递到跟踪对象的DeepSort算法。它可以跟踪Yolov5模型......
  • 《rv1109 部署yolov5训练模型汇总》
    环境以及相关软件版本:yolov5(v5.0)、Ubuntu18.04、rknn-toolkit1.7.3、rv1109  一.yolov5环境安装1conda安装1.1Anaconda安装包:在浏览器中打开 https://www.anaconda.com/products/individual 下载适合你的操作系统的Anaconda安装包(Python版本根据需要选择......
  • 数据可视化引擎 G2 v5.0.0-rc.2 发布
    导读数据可视化引擎G2v5.0.0-rc.2发布,具体更新如下文数据可视化引擎G2v5.0.0-rc.2版本现已发布,具体更新内容包括:What'sChangedfix:捕获渲染异常并抛出#4777fix(texts):更新快照#4780fix(animation):关键帧#4783docs:添加迁移#4784feat:适应gui0.5.0-al......
  • jsjiami.v6解密分析
    JS加密是Web前端开发中常用的一种技术,可以用于保护敏感数据或者代码,避免被恶意攻击者窃取或篡改。其中,JS加密库JSJiami.v6是一款广受欢迎的JS加密库,下面我们来详细介绍一下。JSJiami.v6是一款基于JavaScript语言的加密库,其主要功能是将JavaScript代码进行混淆、压缩和加密,使得代码......
  • ChatGPT4+Stable Diffusion + Midjourney V5 意味着什么?
    AI绘画服务Midjourney发布了v5版模型.网络上已经有了一些关于v5的介绍文章,一般都在惊叹v5版模型生成超写实照片的能力.当然了,这肯定是很强的能力,能轻松生成以假乱真的照片.不过坦诚的说,开源的StableDiffusion社区也出过超写实照片版本的模型了,而且关键是, 在创作领......
  • 内核实验(二):自定义一个迷你Linux ARM系统,基于Kernel v5.15.102, Busybox,Qemu
    原文:https://blog.csdn.net/yyzsyx/article/details/129576582文章目录一、篇头二、内核部分2.1源码下载2.1.1官网2.1.2镜像站点2.1.3代码下载2.2编译2.2.1设置工具链2.2.2配置2.2.3make2.2.4编译成功三、busybox部分3.1源码下载3.2编译3.2.1配置3.2.3编译3.2.4查......
  • IBM V5000巡检
    1.连接默认为192.168.70.121(本机要设置成一样的网段)2.登录网页1F-D01需要使用旧版火狐浏览器,1F-E08,E09使用谷歌就行输入默认登录用户:superuser密码:password3.登录界面如下4.第二个-35.第三个-1-4第四个-1-2-3第五个-1-4 ......
  • yolov5训练自己的数据
    前一篇文章写了如何的安装yolo5。基于上面的一章,记录下用yolo5来训练自己的数据。split_train_val.pyimportosimportrandomtrainval_percent=0.1train_percent=0.9xmlfilepath='/Users/Tony/IdeaProjects/yolov5/data/mydata/xml'txtsavepath='/Users/Tony/IdeaP......
  • yolov5配置环境中遇到的问题
    激活conda出现不是内部语言时,一般是环境变量没有配置好,可以控制面板中的,path中进行将conda中的文件中的scripts路劲复制到里面。激活conda创建虚拟环境dir查看本文件夹目录在这个文件夹的文件进行安装pthon安装路径这是anconda里面安装的路径......