js原型链hook

摘要:
例如,如果我们想拆分()一个字符串,我们可以编写string。原型split_bk=字符串.协议类型.split;一串原型split=function(val){str=this.toString()调试器;returnstr.spilt_bk(val)}最后,因为我们的字符串原型链已经修改,所以我们需要在末尾创建一个

比如我们想对对字符串进行split()

我们可以这么写

String.prototype.split_bk=String.prototype.split;

String.prototype.split = function(val){

str = this.toString()
debugger;
return str.spilt_bk(val)

}

最后由于我们String的原型链已经做了修改,所以要在 最后结束的时候做个伪装

由于原生代码是这样的

js原型链hook第1张

伪装的时候这么写 String.prototype.split.toString=function(){
        
    }

这时候我们可以定义一个字符串a进行尝试

a='加密字符串'

a.split("加密")

这时候就会加入debugger'

js原型链hook第2张

js原型链hook第3张

 最后整体的原生代码的hook方式完成

String.prototype.split_bk=String.prototype.split;


String.prototype.split = function(val){

//这一步操作是拿到str本身字符串。一整串 ,最后 返回str.split_bk(val) val是你触发的参数,比如说你想切割加密参数中的加密,val传进来的值就是加密

str = this.toString()
debugger;
return str.spilt_bk(val)

}
String.prototype.split.toString=function(){


return "function split() { [native code] }"

}

 Hook Number Object Array -push .shift 都可以使用同样的 方式实现

比如Array

Array.prototype.slice_bk=Array.prototype.slice

Array.prototype.slice=function(val){

arr=this.toString()
debugger;
return arr.slice_bk;

}

Array.prototype.slice.toString=function(){
return 'function slice() { [native code] }'

}

完美

免责声明:文章转载自《js原型链hook》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇AI专家警告:GPT-3令人赞叹,但缺乏透明度优化算法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

printf()函数不能直接输出string类型

因为string不是c语言的内置数据,所以直接printf输出string类型的是办不到的。 要这样输出: printf("%s ",a.c_str()); 举例: #include<bits/stdc++.h> using namespacestd; intmain(){ string a="人生"; printf("%s "...

spring boot 支持返回 xml

实现技术方式对比 JAXB(Java Architecture for XML Binding) 是一个业界的标准,可以实现java类和xml的互转 jdk中包括JAXB JAXB vsjackson-dataformat-xml spring boot中默认使用jackson返回json,jackson-dataformat-xml 中的 XmlMapp...

【C++】map容器的用法

检测map容器是否为空: 1 #include <iostream> 2 #include<map> 3 #include<string> 4 using namespace std; 5 int main() 6 { 7 //检测容器是否为空 8 map<string, strin...

js用button激活 Alert 元素关闭按钮的交互功能

js用button激活 Alert 元素关闭按钮的交互功能 一、总结 1、点(.)对应class,井号(#)对应id 2、jquery:amaze里面用的jquery,jquery熟悉之后,这些东西就很简单了,jquery很简单,一层一层的$().__() 二、js用button激活 Alert 元素关闭按钮的交互功能 样例 代码: 1 <div...

Mock

一、Mock 1.1 什么是 Mock mock 是在测试过程中,对于一些不容易构造/获取的对象,创建一个 mock 对象来模拟对象的行为。 1.2 什么时候使用 * 单元测试时,使用外部资源或第三方库代码 * 并行开发时,另一方还没有开发完毕 1.3 Mock 分类 Mock 对象 主要适用于单元测试,写入一些预期的值,通过它进行自己想要的测...

RxJava入门

项目小版本上线,抽空简单学习了下久仰大名的RxJava 一、引入 个人觉得rxjava的特点: 强大灵活的事件流处理(多线程/多事件/复合对象) 强大灵活优雅简洁的异步 链式调用 可自动Lambda化   实现:RxJava 是通过一种扩展的观察者模式来实现的 类比 类比 实际 实际 职责 演讲者 Button (可)被订阅者 (同右)...