技术标签: JS 解密 jsjiami.v6 sojsonv5 sojson.v5 前端 javascript 开发语言
我们在爬内容,抓取页面的时候,总会遇到sojson v5,jsjiami.com的v6加密。
jsjiami v6 : JS加密,JS不可逆加密,JS混淆,JS混淆加密,JS压缩加密 - [JavaScript加密]
我看了下这个js完全有效。废话不多说。直接上代码。
(function (js_body) {
// 脱壳 && 解密
let js_arr = js_body.split("\n").pop().split(';'),
fun_name = /var\s+(_0x[a-z0-9]+)=/.exec(js_arr[6])[1],
reg_str = fun_name + '\\(' + "'([^']+)',\s*'([^']+)'" + '\\)',
js_str = js_arr.slice(54, js_arr.length - 4).join(';'),
code_shell = js_arr.slice(0, 34).join(';'),
shell_obj = eval("(function(){" + code_shell + ";return " + fun_name + "})()");
js_str = js_str.replace(new RegExp(reg_str, 'g'), function (str, id, key) {
return '"' + shell_obj(id, key) + '"';
}).replace(/([a-z0-9 \-_A-Z)\]]+)\s?\[["']([^"']+)[" ']\]/g, '$1.$2').replace(/(?<!_)(0x[0-9 a-f]+)/g, function (hex) {
return parseInt(hex).toString();
});
// 完全还原混淆
let obj = null, name = '';
js_str = js_str.replace(/{(var\s+(_0x[0-9a-z]+)=(\{(.*)\}));/g, function (str, code_str, _name, obj_str) {
obj = eval("(function () {return " + obj_str + "})()");
name = _name;
return '{';
});
if (obj) {
let i = 5;
while (js_str.indexOf(name) && --i > 0) {
for (const key in obj) {
if (!obj.hasOwnProperty(key)) continue;
if (typeof obj[key] == 'function') {
let fun_info = /function\s*_0x[0-9a-z]+\(([^)]*)\){return\s*([^;]+);}/.exec(obj[key].toString());
js_str = js_str.replace(new RegExp(name + '\\.' + key + '\\(([^())]*)\\)', 'g'), function (string, args_str) {
let args = args_str.split(','),
fun_args = fun_info[1].split(','),
fun_body = fun_info[2];
fun_args.forEach(function (item, index) {
fun_body = fun_body.replace(item, args[index]);
});
return fun_body;
});
} else if (typeof obj[key] == 'string') {
js_str = js_str.replace(name + '.' + key, '"' + obj[key] + '"');
} else {
js_str = js_str.replace(name + '.' + key, obj[key].toString());
}
}
}
}
//直接解密了
return js_str;
})($('#resultSource').val() || $('#jsdata').val());
解密之前的代码:
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));
解密之后:
var g_gotowxtime = 0;
var g_gotowxaction = 0;
var g_status = 0;
window.vis_st = 0;
window.vis_time = 0;
window.onload = function(){
showHiddenListen();
}
function showHiddenListen(){
document.addEventListener("visibilitychange",function(e){
if(document.hidden) {
if(Date.now()-g_gotowxtime<=4500&&g_gotowxaction!=0){
window.vis_st = 1;
window.vis_time = Date.now();
}
}
if (document.visibilityState === 'visible') {
if(window.vis_st==1)
{
var t_time = Date.now()-window.vis_time;
console.log(Date.now()-window.vis_time);
console.log(window.vis_st);
if(t_time>3000)
{
gdt('track', 'RESERVATION', {'key1': 'value1', 'key2': 'value2'});
}
window.vis_st==0;
window.vis_time = 0;
}
}
g_gotowxaction= 0;
g_gotowxtime= 0;
});
}
$(".wxcode").on('longTap',function(){
g_gotowxtime = Date.now();
g_gotowxaction = 1;
});
是不是干干净净,直接还原原来的代码
也可以用这个工具解密:JS解密-JS在线解密-JS脚本解密-JS格式化去注释-JS美化 - [JavaScript加密]
文件权限的机制是Linux系统的一大特色,对于初学Linux的人对可读(r)、可写(w)、可执行(x)这都是比较基本的权限。一个文件的权限有十个位,分为三组来表示。第一位为一组,表示文件的类型:-:表示一般文件d:表示目录文件l:表示链接文件b:表示块设备c:表示字符设备p:表示管道s:表示套接字但是Linux还有三个比较特殊的权限,
前言最近公司要做一个系统,需要前后端分离,后端使用Django,前端使用Vue,因为之前主要做的是后端开发,前端只会写一写简单的,Vue只会绑定数据,至于Vue怎么与Django结合还是第一次接触,所以去看了一些资料和官方文档,接下来就简单介绍一下流程吧!创建Django项目django-admin startproject test_democd test_demo django-a...
关于C语言中字符串格式化sprintf()函数和sscanf函数()的功能介绍和相关练习
不过我们不能光打打嘴炮,如何克服困难和挑战,让人工智能帮到你的工作、你的事业呢?让我们将李开复的演讲内容,再结合一个实例,来给大家解释一下。 现在,假设你是一个程序员 虽然哥也是一媒体人,但黑起自己的行业来是丝毫不会手软的,假设你现在是一家媒体的IT部门人员,这家媒体每天做的最多,最重要的...
解决方法:NameNode在启动的时候首先进入安全模式,如果datanode丢失的block达到一定的比例(1-dfs.safemode.threshold.pct),则系统会一直处于安全模式状态即只读状态。dfs.safemode.threshold.pct(缺省值0.
在这里总结一下css布局时常见的浏览器兼容性问题1 盒模型IE6的盒模型和W3C标准的盒模型不同W3C中的盒模型所定义的宽度和高度为内容区域的宽度和高度 但是盒模型的总大小为margin+border+padding+widthIE的盒模型所定义的宽度和高度为盒模型的总宽度和总高度,width=margin+border+padding+content-width
文件或目录权限chmod权限讲解chmod命令chmod -R选项chmod 通过rwx的方式来表示并更改权限更改所有者和所属组chownchgrp命令更改所属组chown命令更改所有者和所属组chown一次性更改所有者和所属组chown只更改所属组chown -R 的更改也支持级联更改umaskumask初始权限详解umask权限更改隐藏权限lsattr_chattr
题目给定一个二进制数组, 计算其中最大连续 1 的个数。解答:class Solution { public int findMaxConsecutiveOnes(int[] nums) { int sum=0; for(int i=0;i<nums.length;i++){ if(nums[i]==1){ sum++; }else{ if(
一、物联网工程专业考研方向物联网工程专业考研方向共有4个,分别为计算机技术、电子科学与技术、计算机科学与技术、电子与通信工程。二、物联网工程专业考研方向介绍1.计算机技术计算机技术是(专业硕士)工程下的二级学科专业。计算机技术领域重点研究得是如何扩展计算机系统的功能和发挥计算机系统在各学科、各类工程、人类生活和工作中的作用。计算机技术是信息社会中的核心技术,也是实现现代化的关键技术之一。...
一些拼多多的新手小白还分不清楚什么是主推款、什么是引流款,所以在进行商品布局的时候就会弄混淆,那么今天艾司博讯小编就给大家讲讲主推款和引流款的区别。主推款是店铺的一个主要的产品,商家特意给买家推荐的某种商品的型号。这个主推款并不是滞销款,而且商家往往会把这个主推款做成爆款。引流款是专门为店铺带来流量的产品,这种产品是店铺次要的产品。主推款的利润空间相对是比较大的,是有利可图的,选择应季、合适的产品,在设置佣金的时候一般还是比较高的,不然再好的产品也可能会被淹没掉。主推的款式可以根据库存情况来确定、可
安装和设置 Aria2#使用Homebrew安装aria2brewinstallaria2#创建配置文件aria2.conf和空对话文件aria2.sessionmk...
小型企业网络规划与组建方案导读:小型局域网络通常有网络应用单纯,结构相对简单的特点,本文介绍了小企业信息化常用的几种解决方案。关键词:小型局域网络网络规划与组建方案 随着信息技术的快速发展,小型商用企业的业务将进一步的电子化,与Internet的联系将更加紧密。他们也需要信息基础平台去支撑业务高速发展。这样没有信息技术背景的企业也将会对网络建设有主动诉求。任何决策的科学性和...