专栏首页Python编程与实战JS破解--反反调试

JS破解--反反调试

今天应小伙伴们意愿写一下过无限 debugger 的两个案例(其实都很简单,只要掌握一两个操作点的话)

因为咱粉丝比较少,就直接进行网站点名了,手动狗头

有些案例弄过的小伙伴,可能需要清除一下对应域名下的 cookie 后,才能触发无限 debugger

案例一:

药监局:http://app1.sfda.gov.cn/datasearch/face3/base.jsp?tableId=120&tableName=TABLE120&title=%CA%B3%C6%B7%C9%FA%B2%FA%D0%ED%BF%C9%BB%F1%D6%A4%C6%F3%D2%B5(SC)&bcId=145275419693611287728573704379

在 chrome 键入地址后,打开 F12,就迎来了我们今天的主题:

美化一下代码发现就是一个debugger,此时在 console 控制台,重写该函数

重写之后,点击 X 关闭 F12 窗口(切记不要刷新页面,因为刷新的话相当于重新加载一遍,刚才的重写函数也就没了意义)

关闭之后再重新打开 F12,又开始了 debugger

一个算时间差值的无限 debugger,根据调用栈看一下

根据代码,发现是 eval 执行的字符串,此时重写 _$jQ 函数

重写后的函数没有具体意义,所以 eval 也就没东西可执行了,此时关闭 f12,再重新打开,发现就不会再有 debugger 了。

PS:不管是加载别的页面也好,还是刷新也罢,只要浏览器重新加载了存在 debugger 语句的js,就会开始 debug,所以要先擦除debugger,再去下断点分析你想要的内容

案例二:

努比亚论坛:https://bbs.nubia.cn/

因为这是一个 js 生成 cookie 的案例,所以触发 debugger 的机制不太一样。

首先清除该网站下的 cookie(ps:有些案例可能还需要清storage),键入地址,打开 f12,此时再在浏览器地址栏回车,也就出现了 debugger

多查看几层调用栈,发现关键点

一个直接调用,一个 setInterval,老规矩重写 _0x4db1c 函数

因为这个案例比较简单,我就多说两句,因为这个案例的特殊性

所以你关闭 F12后,cookie 就被生成了,然后页面数据就有了,还是分析不了cookie 的生成规则,所以在函数执行前打上断点!

不关闭 f12,刷新页面,断在了我们的断点位置

此时在控制台重写目标函数 _0x4db1c,但是重写之后,继续执行的话,还是看不到cookie 生成规则

所以重写之后,不要轻举妄动,在关键位置打上断点(ps:这个案例是一个经典的js生成 cookie 案例,也就是 arg1 生成 arg2 的过程,断点我就直接打了)

就是这一部分,打好断点后,此时点击按钮继续执行

断在了我们的预期位置,接下来就开始愉快的分析吧。

本文分享自微信公众号 - Python编程与实战(pthon1024)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-06-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • JS逆向实战之混淆加密和AES加密的破解

    圣诞节到了, 这不,我来送 "礼物" 了,X江酒店登录页面的参数加密破解。地址如下:

    Python编程与实战
  • cookie 免密登录了解一下

    我们都知道 HTTP 是无状态的,用户每次打开 web 页面时,服务器都打开新的会话,而且服务器也不会自动维护客户的上下文信息,那么服务器是怎么识别用户的呢?

    Python编程与实战
  • 北大开源分词工具包: 准确率远超THULAC、jieba 分词

    pkuseg 是由北京大学语言计算与机器学习研究组研制推出的一套全新的中文分词工具包。pkuseg 具有如下几个特点:

    Python编程与实战
  • HAProxy、Nginx 配置 HTTP/2 完整指南

    基于最近对HTTP/2的争论和它的优势,是时候升级底层架构了。这篇文章将会介绍如何在安装和配置HAProxy和Ngnix(使用ssl终端)。为了简化流程,我建议...

    哲洛不闹
  • Python学习笔记 异常处理

    Python和很多其他语言一样,支持异常处理。我们可以使用try-catch类似的形式捕获异常,处理异常,或者抛出异常。Python的异常命名惯例和Java语言...

    乐百川
  • vue-router路由配置方法

    const routes = [ { path: '/home', component: Home }, { path: '/about', comp...

    薛定喵君
  • 青蛙跳台阶问题暨斐波那契数列

    一只青蛙一次可以跳上 1 级台阶,也可以跳上2 级。求该青蛙跳上一个n 级的台阶总共有多少种跳法。

    Dabelv
  • Python3 错误和异常

    异常处理机制概述: 异常处理,是编程语言或计算机硬件里的一种机制,用于处理软件或信息系统中出现的异常状况(即超出程序正常执行流程的某些特殊条件)。通过异常处...

    py3study
  • Exchange 2013信息权限保护之ADRMS安装

        信息工作人员每天都会使用电子邮件交换敏感信息,例如财务报告和数据、法律合同、机密产品信息、销售报告和规划、竞争分析、研究和专利信息,以及客户和员工信息。...

    李珣
  • storm基础系列之五---------接入数据收集系统flume

    1.基本结构介绍   flume是三层架构,agent,collector,storage。每一层都可水平扩展。   其中,agent就是数据采集方;colle...

    小端

扫码关注云+社区

领取腾讯云代金券