首页 > 其他分享 >【2.0】Js逆向补充之Ob混淆

【2.0】Js逆向补充之Ob混淆

时间:2023-10-16 22:23:10浏览次数:42  
标签:function 混淆 0xae0a 代码 Ob Js 0x30bb 2.0 0x38d89d

【一】什么是Ob混淆

  • OB 混淆是指将 JavaScript 代码中的变量名、函数名、字符串等替换为无意义的字符串,从而增加代码的保护性和防止代码的逆向分析。
  • 此外,它还可以在代码中添加死代码、无用的函数等,增加代码的复杂度和难以理解性,从而增加代码的保密性。

【二】Ob混淆演示

【1】原始代码

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

【2】混淆代码

var _0x30bb = ['log', 'Hello\x20World!']; //列表元素(被混淆的真实代码部分)也有可能会被base64等机制编码

//该函数是将_0x30bb列表进行了元素进行了移位,将列表变为了['Hello\x20World!','log']
(function (_0x38d89d, _0x30bbb2) {
    var _0xae0a32 = function (_0x2e4e9d) {
        while (--_0x2e4e9d) {
            _0x38d89d['push'](_0x38d89d['shift']());
        }
    };
    _0xae0a32(++_0x30bbb2);
}(_0x30bb, 0x153)); //在浏览器Console中加载执行该自运行函数后,打印_0x30bb列表查看移位结果

//该函数为解密函数(用来还原真实的代码)
var _0xae0a = function (_0x38d89d, _0x30bbb2) {
    _0x38d89d = _0x38d89d - 0x0;
    var _0xae0a32 = _0x30bb[_0x38d89d];
    return _0xae0a32;
};
//ob混淆的js代码
function hi() {
    console[_0xae0a('0x1')](_0xae0a('0x0'));
    //使用_0xae0a函数还原代码:_0xae0a('0x1')还原为了log,因此在OB混淆中该函数使用的频率最高。
}

hi();

标签:function,混淆,0xae0a,代码,Ob,Js,0x30bb,2.0,0x38d89d
From: https://www.cnblogs.com/dream-ze/p/17768527.html

相关文章

  • JS 数字类型的加减乘除, 四舍五入保持精度
    Number.prototype.toFixed=function(d=0){ letchangeNum=this+''//把数字转为字符串 if(changeNum.indexOf('-')!=-1){//判断是否是负数 changeNum=Math.abs(Number(changeNum))} changeNum=(Math.round(Number(changeNum)*Math.......
  • Nest.js Controller 解析:探索路由和请求处理的强大功能
    Controller 它主要是负责特定路由请求处理并将响应结果返回给客户端。每个控制器它会有多个路由,不同路由对应不同的业务请求处理。在Nest 中,创建一个控制器,应该使用类和装饰器,装饰器会使类相关联的数据的关联起来,将请求绑定到相应的控制器。可以使用Nest-cli提供的......
  • RoboCom
    RoboCom本科组初赛目录RoboCom本科组初赛7-1懂的都懂7-2芬兰木棋7-1懂的都懂思路:暴力把原图所有可能出现的和都算一遍存下来疑问:(参考部分和问题)如果用深搜,判断每一个拿或不拿复杂度应该是2^n?答:题目已经定了只用选4个数,部分和问题中用深搜是选择若干个数,所以时间复......
  • .net 6.0 返回json时中文编码处理
    近期由于自己搭建.net6.0的框架在返回前台json是遇到下面这个问题,返回的json被编码了所以特此在这记录一下 编码前是这样的{"code":-1,"msg":"\u9A8C\u8BC1\u7801\u9519\u8BEF\uFF01"}处理完正常{"code":-1,"msg":"验证码错误!"}在Program中添加下面代码即可//返......
  • js 函数如何实现策略模式与状态模式
    前言有关设计模式的学习资料中,大部分都是以java语言实现的,毕竟java作为老牌面向对象的语言最能说明设计模式的核心概念,所以js的相关设计模式的学习资料也大多使用class类实现,本文记录下js使用函数实现策略模式和状态模式设计模式的方式,更有助于理解策略模式和状态模式......
  • Spring Boot 2.0 @ModelAttribute
    SpringBoot2.0中的注解@ModelAttribute有什么作用呢?通常情况下,我们会将@ModelAttribute注解放置在Controller中的某个方法上,那么,如果您在请求这个Controller中定义的URI时,会首先调用这个被注解的方法,并将该方法的结果作为Model的属性,然后才会调用对应URI的处理......
  • JS实现导出Excel的五种方法详解
    <!DOCTYPEhtml><html><headlang="en"><metacharset="UTF-8"><title>html表格导出道</title><scriptlanguage="JavaScript"type="text/javascript">//第一种方法function......
  • .NET 上传文件到华为云OBS
    一、创建一个HuaWeiOBS类,作为数据传递的对象。1publicclassHuaWeiOBS2{3publicstringAK{get;set;}4publicstringSK{get;set;}5///<summary>6///OBS桶终结点7///</summary>8publ......
  • Python爬虫:抖音 JS XB逆向解析
    哈喽兄弟们,抖音现在有JS加密,以前的方法爬不了饿了,今天来实现一下某音短视频的JS逆向解析。知识点动态数据抓包`在这里插入代码片`requests发送请求X-Bogus 参数逆向环境模块python 3.8               运行代码pycharm 2022.3           辅......
  • RuntimeError: Attempting to deserialize object on CUDA device 1 but torch.cuda.d
    问题:服务器上多块卡,使用其中一张训练的模型,在本地预测的时候报错。解决:在torch.load中加入map_location,指定一块卡 ......