首页
社区
课程
招聘
未解决 [求助]hook js原型函数
发表于: 2019-10-30 09:49 3011

未解决 [求助]hook js原型函数

2019-10-30 09:49
3011
hook的js代码已经有了,不知道怎么调用hook原型函数。

懂js的帮个忙,帮我调用。

我自个能实现hook全局函数,但是原型函数不知道怎么调用的

hook的js代码来自----

张天琪(pnig0s),就职于阿里巴巴,FreeBuf黑ke与极客安全媒体平台创办人之一,漏洞盒子安全众测平台创办人之一,xKungFoo,xDef等安全会议演讲者,多次发现Google,Yahoo,Ebay,Twitter等国外知名厂商安全问题并获得公开致谢。

----改版的

这里是hook.js代码,代码不长,响应版规,放到蓝奏云网盘上。https://www.lanzous.com/i72ff3c


以下是参数与示例说明

[bool]hook:params{

        realFunc[String|must]:用于保存原始函数的函数名称,用于unHook;

       hookFunc[Function|must]:替换的hook函数;

        context[Object|opt]:目标函数所在对象,用于hook非window对象下的函数,如String.protype.slice,carInstance1

        methodName[String|opt]:匿名函数需显式传入目标函数名eg:this.Begin = function(){....};}



[bool]unhook:params{

        realFunc[String|must]:用于保存原始函数的函数名称,用于unHook;

        funcName[String|must]:被Hook的函数名称

        context[Object|opt]:目标函数所在对象,用于hook非window对象下的函数,如String.protype.slice,carInstance1}



<script src=hook.js></script>

var myHook = new Hooks();

myHook.initEnv();

//普通全局函数

var _alert = null;function myalert(param){

console.log("before hook");

}

alert.hook("_alert",myalert);

alert.unhook("_alert","alert");

alert(1);


//自定义对象匿名函数

function Person() {

this.getName = function(name) {

alert('Call' + name);

}

}

var p = new Person();

var _p_getName = null;function mygetName(name){

alert("Hooked");

}

p.getName.hook("_p_getName",mygetName,p,"getName");

p.getName.unhook("_p_getName","getName",p);

p.getName("pnig0s");



//原型对象函数

var _slice = null;function myslice(param){

alert("Hooked");

}

String.prototype.slice.hook("_slice",myslice,String.prototype);

String.prototype.slice.unhook("_slice","slice",String.prototype);

var str = "pnig0s";str.slice(1);

myHooks.cleanEnv(); //clear hooks


以下是我需要的hook原型对象函数



var myprototype= function() {


var e= function(a, b){

       this.x = a;

       this.y = b;   


}


e.prototype.Event = function(e, t) {  


     alert('test');      


  }


}

问题来了,怎么hook   e.prototype.Event  这一段对象的函数。。


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
最新回复 (3)
雪    币: 1371
活跃值: (5599)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
2
完全不懂啊。。。是怎么个hook发子?改源码怎么不改源码实现hook.
重写构造?
2019-10-30 11:08
0
雪    币: 194
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
hook的重点在于,注入hookjs,可以hook某个函数,当执行某个函数之前先执行自己写的函数
hook主要功能是在别人写的js代码中拦截他,先执行我的,再执行你的。
举个例子
我可以hook js时间,这时间是个函数,我hook住以后,传入参数,从而达到修改时间的效果。
意思是这意思。

跑题了。
有没有人会调用啊。hook的js代码我上传到蓝奏云,下载地址在正文里。
2019-10-30 12:08
0
雪    币: 194
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
supperlitt 完全不懂啊。。。是怎么个hook发子?改源码怎么不改源码实现hook. 重写构造?
我要hook别人的js,而不是自身写的
2019-10-30 12:14
0
游客
登录 | 注册 方可回帖
返回
//