JS逆向系列13-反调试之console.log

admin 2024年12月9日14:56:07评论12 views字数 1264阅读4分12秒阅读模式

0x00 前言

本期文章属于是临时起笔,因为前两天我在hook某些网站时发现log不出来内容,再加上console.log对我们逆向是十分重要的,所以就临时写下了这篇文章分享给大家。

不过其实我是很不喜欢在周末发布文章,但这篇文章却又不得不在这周发布,因为我之后还有更重要的要写,应该就会在不久的之后发布,这里就先向大家卖个关子。

0x01 正文

先给大家看一下我用我前两天开源的hook cookie的那个脚本hook本文这个案例的效果:

JS逆向系列13-反调试之console.log

空空如也(我需要向读者明确一下,我已经确定该网站有设置cookie的操作,但可以看到在console里没有任何输出)。当时我立马就蹦出一个想法:会不会是网站把console.log重写了?遂尝试打印一个1验证一下我的想法:

JS逆向系列13-反调试之console.log

和我想的一样,那么有没有办法禁止网站重写对象属性或方法呢?答案是有的,这也是我当时想出来的唯一解决方案。

所以此时此刻我要向读者介绍本文的主角Object.freeze

JS逆向系列13-反调试之console.log
JS逆向系列13-反调试之console.log

这个方法很强大,它可以使一个对象冻结,MDN里写的很清楚,大家可自行查阅,我这里就拿MDN里给的示例给大家演示一下其效果:

const obj = {prop: 42,};Object.freeze(obj);obj.prop = 33;console.log(obj.prop);
JS逆向系列13-反调试之console.log

代码中有一个obj对象,里面存了一个prop属性,随后在代码中使用了Object.freeze冻结了obj对象,然后代码将prop属性值改为了33,最后输出还是42,也就是说只要将对象冻结了,那么其属性值就不会再通过这种赋值的方式更改了。我简单修改一下:

const obj = {    test : function () {console.log(1);    }};Object.freeze(obj);obj.test = function () {console.log("重写成功");}obj.test();
JS逆向系列13-反调试之console.log

我在obj对象里写了一个test方法,冻结对象后重写输出还是原来的效果,也就是说冻结对象后重写方法也是不能成功的,并且值得一提的是,这样重写并不会报错(我只测试了冻结对象后重写它的属性和方法不会报错,其他情况并没有测试,读者如有兴趣可自行探索),所以说如果我们通过这种方式来禁止console对象的log方法被重写,这样就能很好地解决上述案例的问题,并且还不会报错,这是最关键的,如果重写会引发报错,那么我们需要考虑的就多了。

接下来我就快马加鞭写下了hook log的脚本,其实就一行:

Object.freeze(console);

为了方便读者使用我还是同步更新在了github上,地址:https://github.com/0xsdeo/Hook_JS。接下来就看一下hook后的效果:

JS逆向系列13-反调试之console.log

成功打印出设置的cookie值,并且没有报错。

参考资料:https://blog.fundebug.com/2018/06/27/wxjs-behavior-http-console/

原文始发于微信公众号(Spade sec):JS逆向系列13-反调试之console.log

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年12月9日14:56:07
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   JS逆向系列13-反调试之console.loghttps://cn-sec.com/archives/3479233.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息