【JS逆向】之jsvmp猿人学18题

2023-11-10

JSVMP

我又是很长时间没更博客了 今天讲jsvmp,这个玩意算是现在保护js代码最大的工具之一吧 vmp大家应该都知道 就是虚拟机 其实一样是混淆控制流 但是如果你想去跟这个玩意呢 那么可能你跟个一两天都不一定能搞出来 跟栈还需要很强大的经验的和耐心,废话不多说 开始



一、抓包

1.打开网址 直接百度搜索猿人学就好 翻到18题
在这里插入图片描述
2.打开发f12调试工具 第1页是没有v这个参数 点击第二页就有v这个参数 这个参数就是我们今天的目标了
在这里插入图片描述

二、进入代码段

1.下XHR断点

1.xhr断点不会下的 去看我前面的文章
在这里插入图片描述
2.然后下一页 让他断下来
在这里插入图片描述
3.我是在这个匿名函数这里去跟栈的 在这里插入图片描述
在这重新把断点下在那个匿名函数上面 问我为什么要在这里断 这里你可以去看看前面的栈 其实很容易发现 这个不懂在私信我 现在断在这个匿名函数这里之后 我们就去跟栈 跟栈就进入我们今天要逆向的逆向函数了
在这里插入图片描述
一直往下面跟 你就发现这个 函数了 后面问我们再来分析和解决
在这里插入图片描述

2.分析和解决

1.分析
他这个函数呢 你也可以跟看一下他的一些逻辑 他这个逻辑还是比较底层的
最后你跟了半天你会发现 你在浪费时间 不过对新手还是有很大的帮助的

我的调试过程 :
反正几乎我所有想要调试的代码,都会指向这里,什么encrypt等函数,都会进入到这里来,一步一步的走有灰常繁琐,并且当看到希望时,又是给你指向到这里,而且被加密的参数在你进入这个函数前就已经生成,但是还是得调试调试。反正我比较喜欢在逆向的过程的当中看到缝子我就钻进去了 搞定一种方法之后我才会去搞第二种方法 今天也是给你们讲钻缝子这种方法 还有一种不讲 公开讲不划算

2.解决
利用hook去解决他 不会hook的 看我前面的文章
注意这个参数
在这里插入图片描述
细心的话会发现那个特殊的函数传进来的第一个参数""的组成有些眼熟,[1][0]是一个CryptoJS对象,虽然找不到在哪里生成的,但是大概可以确定这是一个AES加密了,并且填充方式为pkcs7。都知道是那个加密了 看过我以前文章的人都解决了吧 hook思路不就来了嘛

var hauye= _[1][0]['CryptoJS']['AES'].encrypt;

_[1][0]['CryptoJS']['AES'].encrypt = function(a, b, c, d, e) {
 debugger;
    var xxx = huaye(a, b, c,d,e);
     debugger;
    console.log(huaye.toString())
    return xxx;
};

这个代码需要解释的 私信我 我私下解释 因为大多数人都看得懂
在这里插入图片描述
这个玩意很容易就hook进来了 我们就要拿key 和 iv 值嘛 还原就好了

_[1][0]['CryptoJS'].enc.Utf8.stringify(a) 
"2|254m256,253m257,252m258,252d258,252u258"

2就是页面嘛 其他的参数应该可以写死  这个玩意就是key
_[1][0]['CryptoJS'].enc.Utf8.stringify(b) 
"6205309c6205309c"
这个玩意就是iv


在这里插入图片描述

总结

没啥太大的难度的 思路决定难度的 关注我公众号 我公众号可以对你们想看的文章投稿哦 感谢大家观看 双击三连哦
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【JS逆向】之jsvmp猿人学18题 的相关文章

随机推荐

  • 设计模式的 C++ 实现---装饰者模式

    前文回顾 单例模式 一 单例模式 二 观察者模式 简单工厂模式 工厂方法模式 一 工厂方法模式 二 抽象工厂模式 一 抽象工厂模式 二 原型模式 外观模式 中介者模式 代理模式 前言 装饰者模式的本质和代理模式的原理是一样的 体现了对一个既
  • 动态规划学习(整理了几个个人认为易懂的资料)

    1 一维背包问题 额 没想到 背包问题解题也有套路 排版美观 例子简明易懂 代码明了 2 TSP问题 1 图示DP解TSP 看看例子 代码就算了 2 代码 Python版 这个代码比较好看
  • Spark java.lang.OutOfMemoryError: Java heap space

    http stackoverflow com questions 21138751 spark java lang outofmemoryerror java heap space rq 1 My cluster 1 master 11 s
  • Word批量转PDF,宏批量转PDF

    Word批量转PDF 很多第三方工具都可以轻松实现 一般需要付费 这里 为大家提供一个VBA实现的方法 word原生功能 在word中使用使用宏VBA 实现批量转PDF 1 在Word中 打开你需要处理的doc文档 2 按住键盘ALT F1
  • 怎么查看网站用什么数据库服务器,怎么查看网站数据库服务器ip

    怎么查看网站数据库服务器ip 内容精选 换一换 内网域名是指仅在VPC内生效的虚拟域名 无需购买和注册 无需备案 云解析服务提供的内网域名功能 可以让您在VPC中拥有权威DNS 且不会将您的DNS记录暴露给互联网 解析性能更高 时延更低 并
  • react hook antd5.x解决table列宽大小问题

    由于项目多处使用到了table 所以这边我进行了封装 这边使用了react resizable模块 1 第一步 安装模块 安装模块 npm install react resizable save 2 第二步 封装组件 handleResi
  • 多条目展示+视频播放

    compile com android support design 26 compile com hjm BottomTabBar 1 1 1 compile com jakewharton butterknife 7 0 1 compi
  • [云原生专题-49]:Kubesphere云治理-操作-分步部署基于微服务的业务应用 - 基本过程与步骤

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 122925243 目录 第1章 部署基
  • 在电视中使用计算机动画最多的是,《多媒体技术》复习题及参考答案

    多媒体技术 复习题及参考答案 一 选择题 1 多媒体操作系统的典型代表是 A DOS B UNIX C SQL Sever D Windows 2 以下不属于声音文件的格式的是 A VVE B VOC C MIDI D SNO 3 是处理和
  • sklearn的make_classification函数生成随机的n类分类

    目录 make classification函数生成随机的n类分类问题的简介 示例如下 以下内容为官网内容以及个人的总结 下面有运行的示例 可以结合示例来对此函数进行了解 如需更多知识可以在中文官网查看 sklearn datasets m
  • 重要升级!btrace 2.0 技术原理大揭秘

    动手点关注 干货不迷路 项目 GitHub 地址 https github com bytedance btrace 背景介绍 在一年多前 我们对外正式开源了 btrace AKA RheaTrace 它是基于 Systrace 的高性能
  • 在 CentOS 7上安装Sonatype Nexus Repository OSS

    转自FossLinux的Darshana Installing Sonatype Nexus Repository OSS on CentOS 7 翻译 Sonatype Nexus是一个流行的存储库管理器 在全球范围内用于大多数组件 二进
  • 利用DOSBox运行汇编超详细步骤

    最近学校要求用汇编写课设 本来复习的好好的 结果笔试取消 无奈只有配置环境自己写课设了 起初是利用VS2017进行配置 但后面运行好像有些问题 就想到用DOSBox了 以下是详细步骤 第一步 下载好相关文件 文件我放在下面链接里 资源文件
  • 贪吃蛇小游戏-Java的GUI实现

    最近学完GUI之后跟着做了一个贪吃蛇小游戏 制作过程不易 GUI学习全部笔记如下链接 https www cnblogs com twq46 articles 16414052 html 主界面代码 package com Tang gui
  • 1^2+2^2+……+n^2的公式证明

    求 2就从 3入手 求 3就从 4入手 求 t就从 t 1 入手 因为 n 1 3 n 3 3n 2 3n 1 所以2 3 1 3 3 1 2 3 1 1 3 3 2 3 3 2 2 3 2 1 n 1 3 n 3 3n 2 2n 1 所以
  • Multisim14.0仿真(十八)74LS138译码器

    一 仿真原理图 二 74LS138译码器真值表 当选通端G1为高电平 选通端G2A G2B为低电平时 地址端A B C的二进制编码在Y0 Y7对应的输出端以低电平译出 三 仿真效果图
  • 分享丨李飞飞、吴恩达、Bengio等人的顶级深度学习课程

    目前 深度学习和深度强化学习已经在实践中得到了广泛的运用 整理了深度学习和深入强化学习相关的在线课程 其中包括它们在自然语言处理 NLP 计算机视觉和控制系统中的应用教程 吴恩达 深度学习专项 这系列课程侧重于讲解深度学习的基础和在不同领域
  • 【千律】C++基础:对字符串指定位置的字符变换大小写

    实现功能 当输入参数b odd pos为ture时 将字符串中奇数位置的字符转换为大写 同时将偶数位置的字符转换为小写 反之 当b odd pos为false时 将字符串中奇数位置的字符转换为小写 同时将偶数位置的字符转换为大写 inclu
  • 软件版本中的Alpha,Beta,RC,Trial是什么意思?

    版本号 V Version 即版本 通常用数字表示版本号 如 EVEREST Ultimate v4 20 1188 Beta Build 用数字或日期标示版本号的一种方式 如 VeryCD eMule v0 48a Build 07111
  • 【JS逆向】之jsvmp猿人学18题

    JSVMP 我又是很长时间没更博客了 今天讲jsvmp 这个玩意算是现在保护js代码最大的工具之一吧 vmp大家应该都知道 就是虚拟机 其实一样是混淆控制流 但是如果你想去跟这个玩意呢 那么可能你跟个一两天都不一定能搞出来 跟栈还需要很强大