ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-06-10 20:59:20  阅读:360  来源: 互联网

标签:myfunction 逆向 return hook JS HOOK eval 原来 方法


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

前言:我解释一下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方法
}

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

标签:myfunction,逆向,return,hook,JS,HOOK,eval,原来,方法
来源: https://blog.csdn.net/weixin_44504978/article/details/117790722

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有