首页 > 其他分享 >jsjiami.v6版本JS解密效果代码详解

jsjiami.v6版本JS解密效果代码详解

时间:2023-06-28 10:45:29浏览次数:47  
标签:function code 代码 解密 JS v6 6f% jsjiami

JS加密和解密这两者的关系并不是单纯的矛和盾的关系,市面上很多的所谓完全不可逆JS加密是不怎么靠谱的说法,没有绝对的不可逆加密。当然也没有绝对的JS解密,在时间成本上来说JS加密比解密要快的多。

如果你需要对一个使用jsjiami.v6加密的JavaScript代码进行修改或解析,就需要进行解密操作。接下来,我将为您介绍一些JS解密技巧。

首先,让我们来看一段使用jsjiami.v6加密的代码:

eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('0 1(){2.3("4 5!");}',6,6,'function|foo|console|log|Hello|World'.split('|'),0,{}))
这是一个简单的函数,输出了"Hello World!"。但是,由于被加密,代码难以理解。现在,让我们来解密它。

第一步,我们需要将代码放到一个JS美化工具中,以便更好地理解代码结构。可以使用在线工具如JS Beautifier或JS Nice进行美化。

function foo() {
console.log("Hello World!");
}
现在我们可以看到这个函数输出了"Hello World!"。但是,代码仍然无法执行,因为它是经过压缩和编码的。

第二步,我们需要手动解码代码。这段代码使用了一个自定义的解码函数,它会将字符串解密为可执行的代码。下面是解密函数:

function decode(code) {
var a = 62,
b = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",
c = RegExp("[^" + b.substr(0, a) + "]","g"),
code = code.replace(c, ""),
d = code.length,
e = 0,
f = "";
for (; e < d;) {
var g = b.indexOf(code.charAt(e++)),
h = b.indexOf(code.charAt(e++)),
i = b.indexOf(code.charAt(e++)),
j = b.indexOf(code.charAt(e++)),
k = g << 2 | h >> 4,
l = (15 & h) << 4 | i >> 2,
m = (3 & i) << 6 | j;
f += String.fromCharCode(k),
64 != i && (f += String.fromCharCode(l)), 64 != j && (f += String.fromCharCode(m))
}
return f
}

可以看到,这个解密函数使用了一个字符串和数字的映射表,将加密后的字符串解密成原始代码。 现在我们将解密函数应用到原始代码上:

function foo() {
console.log("Hello World!");
}

eval(decode('0%20%66%75%6e%63%74%69%6f%6e%20%66%6f%6f%28%29%20%7b%0a%20%20%63%6f%6e%73%6f%6c%65%2e%6c%6f%67%28%22%48%65%6c%6c%6f%20%57%6f%72%6c%64%21%22%29%3b%0a%7d'))
我们可以看到,这个代码现在已经可以执行,输出了"Hello World!"。

这就是一个简单的jsjiami.v6版本解密过程。当然JS加密的方法方式并不局限于某一种,所以jsjiami.v6版本也在不断的升级和改进之中,努力使之能够肩负起更高级的解密方法。

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

 

标签:function,code,代码,解密,JS,v6,6f%,jsjiami
From: https://www.cnblogs.com/jsjiamiV7/p/17510768.html

相关文章

  • 去往js函数式编程(8)完
    冻结  如果我们希望避免程序员意外或故意修改对象的可能性,冻结对象是一个有效的解决方案。在对象被冻结之后,任何修改它的尝试都会静默失败。javascript不会报告错误或抛出异常,但也不会修改对象。这种解决方案只有一个问题:冻结对象是一个浅层操作,它仅冻结属性本身,类似于const......
  • ExcelJS 导入导出excel带下拉框筛选数据
    importExcelJSfrom"exceljs"; asyncfunctionexportExcelTemplate(deptList:any){ constworkbook=newExcelJS.Workbook(); constworksheet=workbook.addWorksheet("模板"); worksheet.columns=[  {   header:"编号"......
  • 合并行的单元格 EXTJS
    在ExtJS4中,如何合并行的单元格,已经选取的时候只能选择某一列,期望的效果如下:在ExtJS中,合并表头的列有现成方案,但是合并行单元格不是extjs的现有功能,这个需要底层扩展,也就是使用table的跨行实现。而ExtJS7以及新版本和ExtJS4在最底层的Grid组成上又有差别,所以不同......
  • js中“??“和“?.“怎么用?
    ??:空值合并操作符逻辑操作符,左侧为null和undefined时,才返回右侧的数?.:可选链操作符可以读取位于连接对象链深处属性的值,不必明确验证链中的每个引用是否有效功能类似于“.”链式操作符,不同之处在于,在引用为空null或者undefined的情况下不会引起错误,该表达式短路返回值是u......
  • 鸿蒙星空的太白星 | WebView给元服务调用JS API指明方向
    ​漆黑深夜夜凉如水,繁星盛开于无垠苍穹。清风徐来,一片薄云,夜空顿然失色,有些阴霾。天空中最亮的星,太白星,在薄云中依然闪耀,如同海上迷雾中的灯塔,为迷失方向的船只指明方向。 元服务是华为提供的一种面向未来的服务形态,具有独立入口和免安装等特性,支持运行在1+8+N设备上。在万物互......
  • gojs禁止画布滚动 完全只读方案
    gojs生成画布后,鼠标滚动,画布的内容会上下移动,以下属性可解决此问题。myDiagram=$(go.Diagram,"graph",{initialContentAlignment:go.Spot.Center,//启动视口中间的所有内容"toolManager.mouseWheelBehavior":go.ToolManager......
  • 菜鸟学习Spring——SpringMVC注解版解析不同格式的JSON串
    一、概述    不同格式的JSON串传到后台来实现功能这个是我们经常要做的一件事,本篇博客就给大家介绍四种不同的JSON串传到后台后台如何用@RequestBody解析这些不同格式的JSON串的。二、代码展示需要引用的jar包1.xml配置  Web.xml1.<?xmlversion="1.0"encoding="UTF-8......
  • 记录--Threejs-着色器实现一个水波纹
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助hree.js是一个基于WebGL的JavaScript3D库,用于创建和渲染3D图形场景。一、图像渲染过程1、webGLwebGL:WebGL是一种基于JavaScriptAPI的图形库,它允许在浏览器中进行高性能的3D图形渲染。webGL的......
  • JS异步编程
    ES5中的Generator异步方案Generator使用function*foo(){console.log('start')try{constres=yield'foo'console.log(res)//bar}catch(e){console.log(e)}}constgenerator=foo()constres=generator.next()con......
  • js常用操作
    1.重新渲染页面元素this.$forceUpdate(); 2.对象转化为json字符串再传参JSON.stringify()  3.删除js对象元素index表示对象下标deletethis.imgList[index];......