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 这一段对象的函数。。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!