【JS逆向】之HOOK代码怎么写

2023-11-16

声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵权,请告知删除,谢谢!

前言:我解释一下hook是什么玩意
hook的原意是钩子。
我理解替换或者拦截原有方法去修改和处理。
1.怎么去替换原来的方法
这里我自己写一个方法去替换。实例

function myfunction(x,y){
if(x>y){
return "是原来的方法";
}else{
return "方法参数被修改了";
}
myfunction(2,1)//原来方法的执行结果
"是原来的方法"
var xxx=myfunction //这里开始替换原来的方法,吧myfunction辅助给xxx
myfunction=function (x,y)//这里再修改原来的myfunction这方法,一样的给他传两个值,在后面的函数里面去修改这两个值
{
	var x=5,y=6;//这个位置就是把xy值改了,覆盖原来的方法的值
return xxx (x,y) //这个再把修改过后的值传给原来的myfunction方法。


}

myfunction(1,2) //这里是hook过后的方法执行结果,和原来执行传的值一样,但是返回值却变了
"方法参数被修改了"

上面讲这一种就是hook替换原来的方法去改变它的执行结果,传值一样但是获取的结果不一样。

还有两个方法其实我个人感觉都差不多的,这两种都是拦截
1.Object.defineProperty
2.Porxy
使用方法比较简单,太多人说这两个方法了我就不说了,这里我重点讲的一个,刚刚说了一种替换。这里我再讲一个实例。还是自己写的代码
这里讲这么去hook内置的函数,eval,这个函数是现在很多混淆的都爱用的。把这个hook对我们分析代码帮助很大,

eval("function ccc(){return 22;};ccc()")
//我这里比较简单,传的都是明文,要是在混淆里面传的肯定都是混淆的变量

首先我们要在代码执行之前在浏览器控制台打上我们的hook代码

var sss=eval; //把eval赋值给sss,sss是自己建的全局变量
eval=function (x){//一样的处理方法,重写这个方法
	debugger; //这里发现调用就让他断下来
console.log(x)//这里把值打印出来
return sss(x)//返回原来的eval方法
}

下面我截图跑一遍你们看看效果
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
其他方法也是一样,其他自己脑补吧。欢迎关注我的公众号哦,谢谢观看。
在这里插入图片描述

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

【JS逆向】之HOOK代码怎么写 的相关文章

  • 在 ExpressJS 中通过管道传送远程文件

    我想读取远程图像并显示它 我可以保存文件 但无法正确显示代码 理想情况下 我只想直接传递文件而不进行处理 不确定是否需要 tmp 文件步骤 此代码不显示任何内容 没有错误 我也尝试了 res pipe response var url ht
  • Javascript Firefox - 如果 @import 存在于样式表中,则无法查询 cssRules - bug 或预期行为?

    如果 import 存在于 css 样式表中 我无法查询 cssRules 是否符合网络标准 或者知道 Firefox 的限制 注意 我正在从同一域导入 css 文件 var style rules document styleSheets
  • 等待 JavaScript 中 Json 调用完成

    我正在使用下面的json调用在我的 javascript 方法中 function go123 var cityName var temp getJSON https abc in api city callback args functi
  • 运行 npm install 时出错 Error: 404 Not Found: 7zip-bin@~4.1.0

    当我运行 npm install 时 我看到此错误 3 verbose stack Error 404 Not Found 7zip bin 4 1 0 2293 verbose stack at fetch then res C cygw
  • 如何使用 JqGrid 子网格进行内联编辑?

    我知道如何使用主网格进行内联编辑 但是有没有办法对子网格进行内联编辑 这是我的 JS 文件 function var lastsel list jqGrid url example php postData q 1 datatype jso
  • 了解执行模型和事件循环

    我读过很多关于JavaScript单线程执行模型 事件循环和事件队列的文章 但有一件事尚不清楚 我创建了一个小提琴来说明我的问题 http jsfiddle net yzpmf67f http jsfiddle net yzpmf67f
  • jquery/javascript 处理后移至命名锚点

    在进行一些 jquery 处理后 如何将焦点移动到同一页面上的不同部分 名为锚点 函数 ABC 进行一些处理 然后 我需要将用户移动到同一页面上的某个部分 页面下方 您可以使用下面的代码将屏幕滚动到 div 只需更改选择器以匹配您要滚动到的
  • 是否可以用 json 进行表达式/计算?

    我使用出色的 json server 作为应用程序的后端 它对于访问自定义端点以检索一些数据非常有用 但是如果它允许我进行计算 表达式以便我也可以模仿后端行为 那将会非常有用 以这个数据结构为例 products name football
  • GeoJSON 要素坐标未显示在 OpenLayers 地图上

    我正在尝试显示一个GeoJSON地图上的多边形 我使用了 OpenLayers 提供的示例以及以下数据 但仅显示第二个多边形 var geojsonObject type FeatureCollection crs type name fe
  • Angular 2 最终版本路由器单元测试

    如何使用 karma 和 jasmine 对 Angular 2 0 0 版中的路由器进行单元测试 这是我的旧单元测试在版本 2 0 0 beta 14 中的样子 import it inject injectAsync beforeEac
  • 按自定义字母顺序对数组进行排序

    如何对这样的数组进行排序 apple very auto tom tim violet 要按 v a t x b 等排序 不按字母顺序 violet very auto tom tim 在脚本中 我会做这样的事情 myArray sort
  • 向 FTP 服务器执行跨域 XMLHTTPREQUEST 的语法是什么?

    我有一个 webDav CORS 插件 可以使用它在 webDav 服务器上 POST PUT GET REMOVE ALLDOCS 文件 我现在想对 FTP 做同样的事情 但我正在努力获取xmlhttprequest 工作语法 我只是收到
  • 如何获取 svgElement 的比例?

    我正在研究 svg div style width 300 height 300 div
  • 单击窗口后才检测到 keydown

    在我的 Web 应用程序中 我有一个用于打开菜单的键的事件侦听器 仅当我单击页面上的任意位置后 此功能才可以正常工作 我尝试将焦点添加到窗口加载 但这仍然不会让 keydown 函数运行 直到我单击页面上的某个位置之后 有谁知道这是否可能
  • 用于客户端存储和服务器端同步的javascript库[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个 javascript 库 它可以让我将数据存储在客户端数据库中 并在后台自动将数据库同
  • 可选链接在 create-react-app 中不起作用

    In a create react app项目 我正在使用 babel plugin proposal optional chaining在我的 babelrc中 但是 我有这个错误 Module parse failed Unexpect
  • Safari 的 Javascript 与 document.write 的问题

    我的问题只发生在 Safari 上 IE FF Chrome 和 Opera 都可以完美运行 我正在向 DOM 添加一个对象 与 YouTube 的方式完全相同 具体取决于 ActiveX 或 NPAPI 因此在确定写入对象类型后 我通过以
  • JS中如何过滤多个字符串? [复制]

    这个问题在这里已经有答案了 我希望能够过滤数组中的多个字符串 类型 例如我想过滤类型meat并输入fruit在下面的数据结构中 我想要实现的是过滤数据对象 const data type meat food hamburger type f
  • JavaScript 右移负数

    这是片段 var i 101 console log 101 i toString 2 console log 101 gt gt 1 i gt gt 1 toString 2 var l 101 console log 101 l toS
  • 如何在odoo中重写js函数

    我想加载 shop checkout url 函数是 odoo define change info order website sale change info order function require use strict oe w

随机推荐

  • ewiews面板回归模型操作_【视频教程】Eviews系列25

    点击上方关注我们 本期我们学习Eviews统计建模最后一部分 面板数据回归分析Hausman检验及本章常见问题解答 实操 Hausman检验判断是固定效应模型还是随机效应模型 上期我们讲到模型判断若选择模型2 需进一步通过Hausman检验
  • Qt: 信号与槽机制

    一 信号和槽机制是什么 1 Qt信号槽机制 是Qt的核心机制 它是Qt定义的一种对象间的通讯机制 且独立于标准C C 语言 2 信号 signals 当某个类对象发生内部改变时 发射 信号 随后与关联的 槽函数 被立即执行 信号槽机制 完全
  • Node快速切换版本、版本回退(降级)、版本更新(升级)

    场景 最近遇到一些node的坑 比如6 3 0版的node用不了公司最新的工作流 升级到10 x版的node后 又用不了另一套工作流 问题 怎么实现node版本降级 升级 是否可以安装多个版本按需要进行切换 解决方案 1 安装node版本管
  • 【FPGA项目】进阶版沙盘演练——报文收发(报文处理、CDC、CRC)

    前言 书接上文 FPGA项目 沙盘演练 基础版报文收发 子墨祭的博客 CSDN博客 前面我们做了基础版的报文收发 相信对逻辑设计有了一定的认知 在此基础上 继续完善一个实际报文收发可能会遇到的一些处理 报文处理 握手与反压 跨时钟域处理CD
  • 金币(代码)

    今天 先更一道题的代码 目录 题目描述 输入输出格式 输入格式 输出格式 样例 输入输出样例 1 输入 输出 输入输出样例 2 输入 输出 数据范围与提示 AC 代码 题目描述 国王将金币作为工资 发放给忠诚的骑士 第一天 骑士收到一枚金币
  • 什么是软连接,以及软连接在linux系统中的用法

    软连接是linux中一个常用命令 它的功能是为某一个文件在另外一个位置建立一个同步的链接 软连接类似与c语言中的指针 传递的是文件的地址 更形象一些 软连接类似于WINDOWS系统中的快捷方式 例如 在a文件夹下存在一个文件hello 如果
  • 微信小程序反编译微信小程序

    微信小程序反编译跳一跳 项目地址 https github com shunyue1320 decompile wx 反编译 wxapkg 文件 微信开发者工具打开
  • 【python】详解threading模块:Event类的使用

    测试代码 import threading import time event threading Event event set def func 1 print t1线程开启等待状态 event wait print t1线程并没有处于
  • 计算机网络-应用层

    1 概述 定义 为应用进程的通信提供服务 主要功能 文件传输 访问和管理 电子邮件 虚拟终端 查询服务和远程作业登录 重要协议 FTP SMTP POP3 HTTP DNS 应用层的两种模型 客户服务器模型 C S P2P模型 Peer t
  • 为什么使用Lambda表达式

    视频地址 https b23 tv gfH0PjR 在使用Lambda表达式之前 先看一下 匿名内部类的一个使用 匿名内部类详情 http t csdn cn nMZpB 匿名内部类 就是没有名字的一种嵌套类 它是Java对类的定义方式之一
  • java倒叙遍历list

    for int i list size 1 i gt 0 i System out println list get i
  • MIDI 音乐程序设计 (可以自己编曲的快乐)

    乐器数字接口 MIDI 简介 乐器数字接口 Musical Instrument Digital Interface MIDI 是20世纪80年代初为解决电声乐器之间的通信问题而提出的 是电子乐器制造商们建立的通信标准 是电子乐器之间以及电
  • linux网站重启命令res,linux

    服务进程 实时观察cpu 进程 内存 top q键退出 load average 0 05 0 11 0 08 1分钟 5分钟 15分钟 平均负载 Cpu s 0 7 us 1 4 sy 0 0 ni 97 8 id 0 0 wa 0 0
  • unity 之 Particle 内置粒子系统二

    Emission module 这个模块影响发射速率和发射的时间 Properties Property Function Rate over Time 单位时间内发射的粒子数 Rate over Distance 每移动一单位距离所发射的
  • SpringBoot八种bean的加载方式

    目录 第一种bean的加载方式 配置文件 第二种加载bean方式 注解和扫描 创建第三方的bean对象 第三种加载bean方式 不使用配置文件 扩展 bean的加载方式扩展FactoryBean lt gt 扩展 ImportResourc
  • 华为云服务器,新用户福利!!0元免费体验云产品最长可达一年

    华为云官网最新活动 新用户完成个人实名认证 参与问卷调研后即可免费试用 云产品0元试用 最长可达一年 华为云服务立足于互联网领域 依托于华为公司雄厚的资本和强大的云计算研发实力 面向互联网增值服务运营商 大中小型企业 政府 科研院所等广大企
  • global::System.Runtime.Versioning.TargetFrameworkAttribute 特性重复问题处理

    今天编译程序遇到global System Runtime Versioning TargetFrameworkAttribute 特性重复错误 原因是编译时生成的 NETFramework Version v4 6 1 AssemblyA
  • 记一次MySql还原导致的无法连接

    问题 昨天同事使用服务器的MySql数据库还原了一个5GB 的备份 结果一直卡住 他就将数据库强行关闭 没再执行任何其他操作 结果今天客户反馈登录异常 逐步排查 定位到是数据库无法访问 于是远程查看服务器 发现 MySql服务是正在运行的
  • RTKlib软件源码学习(观测文件与星历文件读取)

    本文基于本人对rtklib源码的学习进行顺序汇总 为记录个人的学习与理解 并根据个人需要对部分代码对其进行注释 如有错误或者不完善的地方烦请提出建议或改正方法 目录 1 execses函数 2 readobsnav函数 3 readrnxt
  • 【JS逆向】之HOOK代码怎么写

    声明 本文只作学习研究 禁止用于非法用途 否则后果自负 如有侵权 请告知删除 谢谢 前言 我解释一下hook是什么玩意 hook的原意是钩子 我理解替换或者拦截原有方法去修改和处理 1 怎么去替换原来的方法 这里我自己写一个方法去替换 实例