smart cookie 到底是什么意思? smart 聪明的 cookie 曲奇饼干我猜你的第一反应是不是聪明的曲奇饼干?当然,字面翻译上并没有错,而现在要你们思考的是它背后代表的寓意。 小伙伴们稍作暂停想一想,聪明的去洗饼干,饼干可能会是对什么的隐喻呢?老规矩,让我们看一个短片揭开它的面纱吧!哈哈哈, newton was a really smart cookie oh it! 根据短片,你猜对了吗?没错, smart cookie 背后的意思就是一个聪明的人。 smart cookie 之所以 可以用来形容人,是因为英语中经常使用各种糕点电信和食品的名称来形容人的特质或性格。这是一种隐喻或比喻的表达方式,用来强调某个人在某个方面表现出色或拥有特殊的品质。 看下面的例句, she solved that complex mass problem in no time she's a real smart coke。 学以致用很重要!翻译这句话并分享在评论区吧。好了,这就是今天的地道英语小课堂,我们下次再会关注我,每天学习一点地道英语。
粉丝3277获赞1.6万

网上的 gucci 是什么?它是纯属于浏览器里面的一个小文件,用来识别电脑的身份,验证用户的行动。比如在网上购物,购物网站会在你电脑里放一个有特殊 id 的 gute, 追踪你的购买路径, 这样就知道哪个是你的购物车,下一次就可以精准的推产品给你。而有一些步伐,网站会用 gucci 返回你的银行卡身份证等信息,你可以来浏览器里设置,阻止来历不明的出局,而且是最好不要随意进入非凡网站,关注越野者,你一定用得上。

浏览器里的 cookie 到底是什么?简单讲, cookie 就是 网站存里电脑或手机里的小文件,主要用来记录信息,方便下次访问使用。 cookie 有 啥用呢?最常见的就是记住登录状态,比如你登录了淘宝,下次再打开就不用重新输密, 还有个性化推荐。你在京东搜过手机,下次再打开首页,可能就给你推手机相关的商品。另外,像调整网页字体大小、主题颜色这些设置, cookie 也能帮你记住。购物车功能也离不开它,你加到购物车里的东西,就算关了页面再打开,一般还在里面。 cookie 分 两种,一种是临时 cookie, 浏览器一关就没了。另一种是长期 cookie, 设置了过期时间,到期才删,像记住密码这种功能用的就是它。不过 cookie 也有问题,主要是安全和隐私。网站数据库要是被攻击, 库里的信息可能泄露。还有广告商会通过 cookie 分 析你的兴趣,推送广告,这可能会泄露你的隐私。那怎么管理 cookie 呢?你可以在浏览器设置里查看和删除 cookie, 定期清理一下,能释放存储空间,但也会退出已登录的网站清空购物车要是不想被跟踪,可以禁用 cookie, 但有些网站可能就没法正常用了。

苦等一周的最新奇幻韩剧哈科比再次迎来大反转,不仅姐姐官宣恋情,主厨浩秀还被姐夫差点弄死。那么话不多说,正片开始千钧一发之际,幸好姐姐的一只拖鞋救了浩秀一命。 原来振宇发现浩秀知道卖饼干的事,因此故意教训他,可浩秀依然装出一副无辜的表情。但姐姐却当众替浩秀出头,表示是他把饼干销售的工作告诉了浩秀。 校霸瞬间来气,咔咔就是一顿巴掌,没想到姐姐看不下去,一把抓住了振宇的手。这下校园里炸开了锅,新来的转校生竟然敢叫板校霸,大家觉得李恩叔一定是疯了。随后浩秀对姐姐表达了感谢,但也好心提醒姐姐,校霸不能惹,关键跟同事闹僵了,也不利于救敏婴。 可姐姐嫣然一笑,自己凭本事完成业绩,不需要在意。笑罢,但姐姐还是高估了自己, 他去给你打我一针呢,那个可可都不拉谁个重庆的空的里面他狗蛋里那个。转头校霸就开始打击报复,派人将他的课桌弄得一塌糊涂,好友胖妹也开始躲他远远的。 姐姐一脸鄙夷,无奈开始第一次排队吃饭。不仅如此,还有男同学插队。姐姐再次嗤之以鼻,果然是小孩子才能做出的幼稚之举。但更夸张的是,校园霸凌无处不在,可姐姐也不是省油的灯,毕竟自己混社会这么多年,难道还斗不过一个高中生毛头小子? 而且目前头等大事是完成业绩,拿到妹妹的解药。为了更快的完成任务,这天秀英偷偷吃了块饼干,瞬间感觉有了超能力, young open chicken with the studio! 因为有魔法饼干的加持,姐姐不仅拥有了过目不忘能力,而且学习成绩突飞猛进。在新学期分班考试中,姐姐不但进了 s 班,而且是全校第一。这下班主任一头雾水, 数学连学霸阵雨都错了三题,但李恩书竟得了满分!可校长觉得考试公平公正,大家各凭本事。或许李恩书确实是个学习天才, shifting 我怕 kissing again! 而同学们更是惊的目瞪口呆,关键姐姐的总成绩比振宇高了整整三十分!不料第十名的西征感受到了压力,他本打算努力学习,保住 s 班的名额,毕业后去五八同城找份工作。但此刻他严重怀疑李恩舒是在作弊,转头便拦住了刚准备进 s 班的姐姐。 一个 problem 出的是全部都跑,没说不能够。西珍有意为难姐姐,他并不相信眼前这个长得并不像高中生的新晋学霸。这下姐姐被逼上了梁山,大家都在等着看他笑话。可万万没想到的是,姐姐不急不躁,咔咔就在黑板上洋洋洒洒的作答。说实话,初中毕业的小吴真没有看懂这个方程式,可姐姐算了半天竟然也算不下去 头部普通。这下大伙纷纷开始嘲笑,果然是个假学霸!西真正得意洋洋。不料姐姐突然表示,这道题本身无解,函数是不连续的,你随便换数字的话,连神仙来了也解不出积分常数。这下把西真也整蒙了。 原来提示振宇给希真的,更意外的是,此刻振宇竟让希真给恩叔道歉。 clara does hug up with time and go to her 这怎么的?最没想到的是,李恩书当众宣布了一个惊人消息,这下同学们彻底懵逼, 有一个在这里进,原来一切都是姐姐提前策划好的。在阵雨的助攻下,顺利让李恩舒成了学校风云人物。因为要想获得更好的业绩,必须进入 s 班, 毕竟成绩好的同学说话更有幸福力。于是便让振宇帮忙演了这一出。为了表达感谢,姐姐特意请振宇吃一顿大餐,火锅糖醋烤脚。可吃完, 秀英表示,作为礼尚往来,振宇也得回请他一个。于是秀英拽着他一起来拍大头贴。 哎哇!一边喜笑颜开,一边伤心欲绝。但没想到姐姐却渐渐开始依赖曲奇饼干,开始沉迷于失望的美好之中。

前端网页当中遇到动态的 cookie 应该如何处理呢?今天继续带大家来挑战爬虫闯关源泉。第二题我们来看啊,进入这个第二个案例,叫做动态 cookie 的 一个案例,并且它的难度是较难的啊,里面涉及到大量的一些混淆的一些,就是我们来看, 那么这个题目的话,是来提取全部午夜发布的一个热度的一个值,并且计算所有值的一个加和,对吧?来,然后来提交咱们的答案,对不对? 那么像在这里我们可以来看一下啊,需要更多爬虫逆向学习视频以及啊海量的爬虫项目员吗?可以点击我的主页来进入我的抖音粉丝群来进行获取啊,我们来看一下,在这里的话,它会有很多的一个呃, 发布日的一个热度,对不对?来我们来看一下,那么像在这里我们使用鼠标右键点击检查,打开它的工具,然后我们在开放的工具里面,我们可以来看一下啊,这个网站它主要是关于 cookie。 看一下啊,它主要是关于 cookie, 我 们像在这里我们可以进行分页,我们点击第二页,我们点击一下, 然后当我们点击一下,你可以看到它这里会告诉我们对不对?你看它在这里是告诉我们说它的一个 cookie 失效,正在进行页面的一个重置,对不对?然后进行重置,那么你可以看到像这种啊,它就是在它的请求里面啊,在它的请求的接口里面,它里面会有个 cookie, 一个加密,就是这个 m 的 一个值,看到没有? 你看这有个 m, 我 们可以在这里我们来生成一个 q 请求,我们来试一下啊,来鼠标右键点击复制里面的 c u l 我 们的 face 的 一个格式,然后我们像在这里的话,我们来快速的来生成一份 python request 这个代码, 好,我们来看啊,然后我们现在我们来创建一个文件,是吧?这个是猿人学的第二题啊,比较简单。呃,再看一下,我们来新建一个文件叫做 m i, 好, 然后我们像在这里的话来创建一个 python 的 一个文件啊,来创建一个 python 文件来扣的一来,我们来看,哦,然后像这里它当前是给我们返回的数据,它返回的我们可以看一眼,它返回的是一个对象,对不对?是一个对象,而且我们可以观察在它的响应标图里面所给我们响应的 response, 也就是 control, 它里面有告诉我们它返回的是一个 json, 它里面有告诉我们它返回的是一个 json, 那 么这样我们是否就能够来构建我们的请求? 呃,但是我们可以看到当我们去请求的时候,他告诉我们啊,出错了,嘤嘤嘤,是吧?挺有意思的,对吧? ok, 那 么我们看啊,呃,获取到了是吧? ok, 对 吧?翻开它出错了,嘤嘤嘤,对不对?我们来看一下这个是什么问题啊?这个就是因为在它的 cookie 里面,这个 m 指是一个动态的一个参数,它会变, 它是一个动态参数,那么像这个动态参数它到底又是如何生成的嘞?你看我们今天就来学习的关于 cookie 加密,对吧?动态 cookie 加密构成 的元学第二题。那么我们首先我们要设想一下,我问一下你们,现在我们在市场啊,我们常见的一些 g s 逆向加密定位的一些技巧,分别有哪些啊?就是比如关键词搜索法 对不对?然后调用堆栈调试对不对?其次还有像后壳,那么在这里我们一般做这种加密定位啊,像这种动态 cookie 的 生成啊,我给大家讲一下动态 cookie 的 生成。首先我们用关键字搜索,肯定是,呃,也可以对不对?但是关键字搜索的话,你看这个网站,它当前所使用的它是比较泛的一个关键字,叫做 m, 对 不对?然后其次我们可以看到堆栈的话,跟大家讲一下请求调用的一个堆栈分析啊,我们是分析不出来它的 cookie 的, 目前 我们处理像这种动态 cookie 的 一个加密过程,最主要的核心是通过后壳来后壳它里面的 c cookie 的 一个操作,是不是这个是它的一个解释,呃呃,使用啊,就是通过后壳来监听当前页面,首先你要记住,而且像 cookie 它其实跟我们的接口关系不大, 一般像目前 cookie 大 多数的 cookie 的 构成都是来源于我们的 dom, 也就是来源于我们的 document, 是 吧?啊? document, 因为我们基本都是 document 点 cookie, 所以 啊它都是来源于我们的 document, 那么像在这里我们可以来看一下我们该怎么做啊?首先我们像在页面当中啊,我们可以去进行一个 set cookie 的 一个操作,我们先看一下它的逻辑是怎么样的,好吧,来我们来看啊,我们点击源代码,这里面是不是模拟的瑞数?呃,不是,它不是瑞数,它不是瑞数,它就是一个动态的 cookie, 把一个动态的 cookie 做了加密的一个处理, ok, 那 么像在这里啊,我们首先可以来后壳一下它的一个 cookie, 你 看我们这里在左边原代码的左边面板,在左边面板当中我们可以去创建一个我们的后壳,我们的 cookie 的 一个处理啊,你看我这有没有, 你看有个后壳 cookie, 是 吧?有个后壳我们的 cookie, 然后当我们的后壳 cookie ok 之后,我们像在这里把当前的代码去进行它的一个注入,然后就是 ok 了,你看我们进注入来执行,然后执行之后我们像在这里执行,完成之后点击分页,但是你会发现一个问题,就是你看啊, 后壳就是我们这种后壳的方式,我们叫做控制台柱度,对吧?叫做控制台柱度,那么再通过这种像控制台柱度的话,它会有一个问题,会有个什么问题呢?就是当前页面进行刷新,因为我刚刚我也讲了,对不对? cookie 是 来自于它的 document, 也就是来自 web 页面, web 页面是整个页面都会进行刷新, 那么如果我们在控制台进行制作的话,它会导致我们当前后壳的这个 cookie 失效了,就被刷新进行重载了,被刷新进行重载了。所以啊,一般我们如果想通过后壳的方式来监听它的 cookie 啊,我大多数都用的是插件, 你看吧,都是用了插件,我们在这里可以使用,你看我们可以用一个插件,呃,这有个全量的后壳托环建的一个插件,在这里面开启我们的后壳 cookie, 你 看开启开启之后,当前是不会断点的啊,我给大家讲一下,当前是不会断点的啊,但是我们在控制台里面可以去看一下啊,当我们开启之后进行页面的刷新,那么在这里它会给我们来 捕捉到它的 cookie, 你 看它会给我们输出,你看它会给我们输出 cookie, 看到没有?在这个地方是不是输出了我们的 cookie, 你 看这个地方是不是输出了我们的 cookie, 对 吧?你可以看到在这里这个 cookie 是 怎么来的?这个 cookie 的 获取就是我们刚刚通过了我们的刚刚的这个插件,对吧?来后壳来监听到了它里面的一个 cookie 的 一个处理, 看没有?是不是监听到了,那么在这个屁股后面它有个地址,看到没有?有个后壳。 innit 点 js 的 一个文件,我们可以点过去,点过去之后打一个断点,但是你们要记住当前我们所打断点的位置是哪里?是我们这个插件的 js 代码。 哇,这是我们的插件的加载码啊,所以我们现在在页面当中来勤来执行重新加载,来直接重新刷新页面,那么当前我们去进行页面刷新,他就会断点,为什么这个地方会断点?因为我们当前 hold 的是我们,呃,我们自己的这个插件的他的一个加载码,对不对?他不属于我们的软件的, ok, 那 么这样的话,我们来看我们现在的话,你看我们现在我们需要怎么办?我们需要找到这个网页的截图来生成我们的 cookie 的 地方,那么就要用到堆栈,你看在下面会有个调用的堆栈的一个分析,我们当前后缀的是 info, 这是我们自己的文件, 那么我们向上推一步,是不是有个叫做 set cookie 的 一个地方,对不对?这里是不是有个 set cookie, 然后这个 set cookie 的 地方的话,当前你看在 set cookie 的 地方是不是由它来进行的赋值啊?这个代码是混淆的,我们看不明白,对不对?看不明白没关系,我们看这个地方,看中域,在中域这里它是不是有我们的 cookie 的 这个 m 的 一个值在这里啊?朋友们, 是不是啊?是不是有个 m 的 值在这里?那么我们现在我们是不是要去找一下,看一下这个参数它是如何生成的,对不对?我们这个四五八六八 d, 那 么我们像在这里我们可以继续向上推一步,继续向上推一步的时候,呃,它这个代码有一点点的复杂,各种的混淆啊,看起来脑瓜子嗡嗡的,对吧? 里面的变量名宿主取值,呃,还有 o b 混淆,对吧?这里有好几种混淆技术,看没有它,这有好几种混淆技术, 呃,没关系,像这种混淆说实话也简单,对吧?你可以在这里记住,像这种混淆都可以还原的,我们可以 ctrl a、 ctrl c 把它全选,全选完成之后通过在线的我们的反混淆的一个处理,把它进行我们的还原,那这是还原之后的代码,我们把它复制到本地, 你看我们来新建一个 js 文件,你看还原的 js 好, 然后我们像在这里把当前代码给它掏过来,你看,那么在这里其实我们可以看到它还原之后的代码是比较明显的,对吧?直接这里有个 default 的 点 cookie, 然后是 m, 看到没有 default 的 点 cookie 等于 m, 然后什么什么的一系列的值,是不是这个地方,你看我们把它复制过来, 你看这个地方是不是我们的 cookie 的 生存位置啊?那么我们看嘛,在这个地方我们很明显可以看到它的等号在哪里?这个是不是等号?那也就说这个屁股面这一串,这个就是我们要的 cookie 的 加密值,对不对?它是不是就是我们要的加密的值? 你看这个地方是不是就是我们所需要的这个加密的一个值? ok, 那 么在这里我们看一下这个被加密的参数是什么?被加密的参数是为当前的时间戳,对不对?你看一个十三位的当前的一个本地时间戳, 是一个当前的本地时间戳,然后他在后面会进行拼接啊,拼接的话,我们可以看到他所拼接的也是拼接了一个时间戳,拼接也是拼接了一个时间戳,然后最终来生成我们所需要的这个 cookie 的 这种格式,对不对?你看前面一段,后面一段, 对吧?是不是很简单啊?对吧?呃, ok, 那 么像在这里我们现在来处理一下它,我看一下它的生成,其实我们像在这里我们可以来更加一步的分析,为什么?因为各位有没有发现我们当前所生成的这个值啊?就是前面的这一段值,它所生成的长度是为三十二位,对不对? 呃,这八 i t 签名怎么过?呃,你具体可以提供网站或什么?来,你看一下它的长度是不是三十二位的柱创,对吧?那么目前在算法的加密体系里面有哪个算法加密长度是为三十二位的?嗯? 哪个算法的加密长度为三十二位?是不是 md 五?是 md 五吗? 呃,什么情况?各位,是吧?那么我们像在这里我们是否可以去测试一下,看一下它是否为标准的 md 五加密算法,对不对?我们在这个地方我们对它加密,我们加密一个一,这个叫做大一加密法,是不是叫大一加密法?那么在这里加密一个一之后,我们可以看到它的输出结果,跟我们的在线的 md 五进行对比, 在线 md 五加密有可能加盐了,对啊,有可能是加盐的,明白吗?来,我们来加密一个一,你看加密结果不一样,对不对?是加密结果不一样, 那么像这种你可以看到,我们可以看到他在这里我们可以看到他的加密结果是不一样的,那么就可以说他有可能是做了加盐的 md 五处理,对不对?那那么我们核心重点,我们现在是不是要去分析这个方法啊?就这个,呃七五 c 零一一的这个方法,要看一下这个方法它里面是如何进行处理的, 对不对?是不是? ok。 那 么在这里我们现在可以去找一下,看一下这个 c 零一它的构成逻辑,你看找到还原的 js 代码,然后 ctrl f 搜索这个方法,然后搜索我们找到它的声明的位置,你看它是不是在这里做了一系列的处理啊?朋友们, 你看它在这个里面的话是,你看有什么?首先有两个,呃, if 语句,对吧?先是 if, 然后是 else, 然后是 else, 对不对?是不是啊?那么我们像在这里我们可以看一下,就是看一下当前的这个结构,它走的是我们上方的 if 还是我们下方的 else, 是 不是有这么个逻辑在这里?那么我们现在可以去分别来找到这几个核心的一个部分,对吧?我们看一下它的执行,我们来进入这个方法,你看我们看遇到这种混淆的时候不要头痛,这种混淆很简单的啊, 来我们来看,那么在这个里面,你看它混淆之后的代码跟我们的代码完全是不一样的啊。你们要注意,首先它在前面这里会有个反调试,看没有有个 bug, 这里有个 bug 对 不对?这是反调试,大家注意一下啊。然后我们向下推,向下推的话,你可以看到它当前的这个主体的部分啊,是在这里分别是有两个 if 和 else 的, 这是它主体部分对不对?我们可以在这里这有个无限循环,这个 if 上面打个 else 上面来走过来。 好,然后我们现在我们来看一下啊,在当前的话,我们是,呃,它的代码是变的,为什么会变呢?我给大家讲一下。这个地方有些朋友会有疑惑,就是它为什么会变呢? 对不对?因为在这里给大家讲一下,因为我们当前各位有没有发现我们其实打断点的位置是没有问题的,只是说它变化了,为什么会变?因为它的构成是由一个 v m 的 一个逻辑来进行构成的啊,你看 v m 对 不对?它是一个虚拟的 文件,对吧? vm, 所以 你们要注意一下啊。来,然后我们现在从这个地方,你看我们回到我们刚刚的位置,是不是在这个地方它来生成了我们的 cookie, 对 不对?是不是在这个地方来生成我们的 cookie? 好, 那么像这种我们怎么办?就我教你们一个比较简单的方法,第一个我们可以去考虑一下当前的整体代码的执行逻辑。什么意思啊?就是可以考虑全扣,我们可以先考虑全扣,就是哦,不是全扣就单扣,我们可以考虑先去单独的扣它还原之后的代码, 你看啊,像这种,呃,这种难度还好啊,来,我们先把这个地方给抠下来,对不对?六个 ai 能搞出来吗?呃, 难,对吧?难。 v m 文件刷新断点不保存吧?是的是的,我是刚是说了 v m 它是不保存的,因为它会变嘛,是个动态的。 ok, 那 么在这里面首先我们可以看到上面有一个幺幺滴滴五二的一个方法,我们去看一下这个方法是干嘛的,对吧?找到它的第一个, 它是一个异常,对不对? debug 的 一个处理,是不是一个 debug 的 处理? 加盐非常难啊?谁告诉你加盐非常难,是吧?根本学过没有。 ok, 那 么在这里可以看到它里面还用了我们的一些定时器什么的,对不对?是吧?你看,那么在这个地方的话,其实这个方法我们可以直接不要,对吧?这个方法可以直接不要,然后我们来看一下这个方法会入三个参数,那么它所入的这三个参数分别是谁呢?我们去找一下, 然后我们往后拖,实际上只有一个,对吧?实际上只会入一个弦戳,是不是?只会入一个弦戳,对不对?好,那么如果说他只入一个弦戳的话,那么我们像在这里我们看一下他的传递,呃,他是调这个方法,然后传到他是不是?你看这个地方 来返回一个时间戳。对,我们先来得到这一串代码,这一串代码是返回我们的弦戳,然后通过他的逻辑来调用,由他来调,然后传他 呀?是不是这样的?我们打印一下,我们打印一下,然后我们像在这边去执行的话,它肯定会报错,对吧?想分晓它,在这里我们首先看一下它的判断条件,它的判断条件是判断了我们的第二个参数,对不对?你看是判断了它, ok, 那 么在这里我们可以在本地可以去打断点,你看我在本地打断点,打上四个断点来右键进行 debug 的 一个调试,然后 debug 的 一个调试,我们可以看到它当前锁住的值是空值,那么也就说最终的返回结果是这个地方,对不对?我们去试一下,看一下在浏览器里面是否是它来做返回的。嗯?我们在哪里来的? 哦?在这里啊,在这里啊,对吧?我看一下是这个不 m, 然后,呃,是这个方法, ok, 那 么我们像在这里,我们当前的话,我们首先是要进这个,这样子的话肯定会报错 啊。堵塞了,这个地方,堵塞了,它里面有定时器,就因为你有定时器,然后导致堵塞了,我们重新刷新一下页面,稍等一下, 这地方堵塞了,好,那么在这里我们同样的可以去看一下,因为在浏览器里面,当前这个结果它也是空的吧?都是未定的值,那也就说它核心的问题可能只走到这一步,我们去看一下是不是这个方法,我们搜索它,我们来找一下它, 然后在这里,对吧?他这个地方可能是一个魔改的 m d, 他 没有做大件操作,你看这个八九七八八九七八的话是这个方法,对吧?把方法拿过来啊?雪球啊,怎么这么多人问雪球啊?雪球不是讲过了吗?早就讲过了,雪球建原码。我不是今天可以直接到小助理拿吗? 好,然后在这个里面有三个方法,呃,两个,五五七六零和六三 d b, 对 吧?来,我们找一下它五五七六零上面,然后还有个六三 d b, 六三 d b 是 在这里,它这个代码我们可以考虑全扣 看一下啊。我可以考虑的是直接从这个地方去扣主体部分,这地方是为它的一个主体。九七八八 我们可以试一下啊,看能不能用来放掉程序线执行,呃,执行之后,然后报错,报错代码在第十九行,对吧?找一下十九行,十九行缺少一个零 a 幺一,零 a 幺一,对吧?我看一下零 a 幺一, 零 a 幺一,零 a 幺一里面的话再有很多的逻辑的一些封装,它这个代码好像有点多,是吧?有点多,那我们就直接全扣吧。啊?我考虑的话直接做全扣啊,然后是幺幺三,对吧?你可以这样做半扣,也可以,因为它里面都有,你看幺幺三,幺幺三结尾是在这个地方。 好,然后再次的话是我们的 d f 五 f, 对 吧?它这个地方核心就是扣代码了,就扣代码了,你看就考验咱们同学们的扣代码的能力了,其他的没啥,甚至可以直接做全扣, 然后再是我们的五九八一九 b, 对 不对?你看我们继续扣 好,然后再是 q z。 呃,在代码的第十九行做了一个判断,我们看一下十六行,十九行,这里十九行,十九行判断了一个 q z 的 一个执行,对吧?判断了一个 q z 的 一个执行,那么我们去看一下这个 q z 它又是一个什么声明?首先这个方法是在哪里? 在五三 d f 五 f 这个网文件里面,对吧?是在它里面,所以我们去找一下它,嗯,这个网站怎么还没刷新出来 啊?我重新进一下,这个网站有定时器,它有定时器,从而导致我们的页面进入了一个主设的一个状态。来,我们看,我重新进一下来。第二题,它这标的是中等,我看这个难度,其实还好,其实不是很难。来,我们来看来,我们首先来捕获一下它当前的一个 cookie, 来把我们的后壳给打开 来刷新一遍,好,然后来到它的 cookie cookie 的 获取位置。哎,这里怎么没有 m? 哦?有 m, 我 看一下啊,它这个地方没有出现 m, 失效了,我们重新刷新一下。好,重新刷新之后,然后,呃,好,这里啊,就这个方法。好,我们回到它的这个方法里面,我们可以去尝试进行一个搜索,来找一下它 q z, 看下能不能找到啊?来搜索一下 q z 四个,然后这个 q z 的 话,它是在我们的一个方法里面做了一个判断。什么方法?我看一下五三 d f 五方法,呃,这是被混淆的,不好还原,对吧?那没关系。呃,如果被混淆的话,那我们这样啊,它是一个 if q z 嘛? 啊?两个,对不对?两个。呃,如果它有两个,我们可以看这个的话,它里面,首先它上面有封装了很多其他的方法,应该不是的,那应该是这个,对吧?应该是这个,我们可以来看一下这个 qz 是 一个什么东西? qz 是 一个宿主, 看啊,对啊, qz 是 一个宿主,我看一下啊,这个 qz 是 否有声明位置,我们去找一下 qz 有 没有声明位置。 qz 是 一个固定的宿主, 你看这 q z 是 一个固定的数值,对不对?然后我们像在这里,像这种固定的数值,那我们就把这个 q z 啊直接给它复制,因为它是一个固定的值嘛,对不对?我们在 excel 里面看到的啊,小红,某红书最近更新了验证发送笔记,过段时间会被屏蔽掉。呃,你这个应该是 ib 的 问题, 那运行,你看运行现在 q z 是 不是就 ok 了? ok 之后现在是出现了一个二一五二一五, f 五八五的一个问题,我们去找一下它,你看这种单勾 啊,这样扣太慢了啊,这样扣太慢了,如果像我们这种单 q 的 话,我们一个 q 一个 q, 说实话有点慢,对吧?有点慢。呃,有点慢的话,那我们就直接做全扣,也可以把代码全部给它复制粘贴过来,是吧?懒得麻烦,对吧?懒得麻烦其实也可以啊, 你看这样的话,你看我们要扣好多方法,但是你们如果做全扣的话,你们要注意啊,它里面有定时器,你们记得把它里面的这个定时器给它删掉啊,记得把定时器给它删掉,你看,然后再是三零七五三四,找第一个声明位置 好,然后是 i 一 一九, 好来执行,然后再是我们的 f 五幺九啊,找第一个位置,它这个代码还挺多的端口,当然你们可以考虑一下,等一下我们可以把它先扣完,扣完之后看一下它具体是什么加密啊?它有可能是一个 魔改的,也有可能是加盐的,但具体我们现在因为它是混淆代码,我们没有去具体的分析的啊。如果我们要做具体的分析,我们可以先把代码扣完,代码扣完之后,然后再去搞,对吧?通过 ar 还原 可以了啊,那是不可以了,来把代码全部进行收起,然后格式化一下代码,把代码格式化一下。 好,那么我们像在这里的话,你看我们现在当前这个 cookie 的 这个参数是不是生成的,朋友们,对吧?是不是生成的?然后生成之后它在这里面会做一个拼接,大家记得不?它会有个拼接,所以啊,我们去把这个拼接的部分给它找到。 哎呀,直接看这个吧,这个缝小的代码看着头痛,你看他这个地方会做一个拼接,他屁股后面会拼接一个数,对吧?你看这些地方会有个拼接啊,会有个拼接,来,我们把这个地方给它拼接起来, 就这样的。然后这个方法的话,他所拼接的也是他的结果啊,也是他,记住啊,也是他,他们两个是一样的,所以他们两个处于同步,你看我们在这里可以声明一个参数来等于我们当前的这个方法, 然后把它们两个拿下,这样的话我们就生成的就是我们的 m 值,是不是 m 值?你看是不是生成完成,然后当我们生成完成之后,像这里我们这个代码说实话扣的也很多,对吧?我们 ctrl c 把它复制,然后我们当前页面的调试,我就把它关掉了啊,因为我们不需要调了,来把这个 cookie 来重新都刷一下,看一下啊,我看有没有开好,没问题,来。那么现在我们用一个 ai 工具,我们找一个 ai 大 模型,你看,我通过咱们的 google, 我 通过 google 可以 直接对当前的代码全部进行还原,当我分析以下代码 是否为标准 md 五加密,或者做了其他处理,有没有对应的 node js 的 第三方库来直接实现。 那么在这里的话,你看,我们其实说实话,我们通过 ai, 然后再对这个代码,你看,首先你看它不是一个标准的 md 五,它是一个伪 md 五算法, 看到没有?它是一个魔改,它其实不是加盐的啊,它是一个魔改的,对不对?它是一个魔改的。然后你看它在标准的 md 五的基础上做了两处致命的修改,导致它永远不会输出正确的 md 五 的值,除非满足特定条件。首先开头的 t j 是 干嘛?转换成整数的意思就是你看一个经典的反调试看没有,上面这个是经典的反调试代码,一个定时器也不管它。然后你看,在这里,你看它几乎是完全复制了标准的 m d 五算法主要的核心,它就是在这里多了一个异乎的分支, 是吧?他在这里多设置了一个 if 的 一个分支,对吧?然后你看,我们再往下走,你看,再往下走,你看,你看是否标准,对吧?它是加了篡改,明白吗?它是篡改了 md 五,对吧?然后其次,在 node js 里面如何赋现,对吧?用标准的 md 五是可以赋现的啊, 加密机制,呃,它做了劫持和环境检测 q z 判断初矢,像那样,在 node 监视当中可以使用标准的直接来进行实现,看到没有?在 node 监视里面可以使用标准的,只是说使用标准的它里面应该是有值被进行修改, 对吧?有值被进行修改,当然,那我可以试一下,对吧?可以试一下,就是我们可以去尝试一下使用一下像标准的 m d 五加密,看一下它是否能够 ok, 对 吧?帮我使用 python 代码,帮我实现一个, 你看,那么在这里的话,我们尝试一下,看一下,我们用 python 代码给它改一下,对吧?我们试一下,看一下是不是标准的 level。 好, 那么在这里我们就把这个代码进行复制,你看我们用纯 python 来实现, ok, 这个 node js 我 们等一下再讲。我们先试一下,看一下能否通过我们的纯 python 代码直接实现,然后来调这个方法来得到它。我们首先在上方进行打印 print, 来打印一下它,看一下它的返回结果, 没有问题啊,没有问题,对吧?好,那么像在这里我们现在去尝试进行它的替换,把它替换,然后加个号,然后右键执行程序, 然后不行,对吧?应该不是标准的,这个 ai 分 析啊,说实话还是有点问题,它应该不是标准的,我们通过标准的这种请求逻辑的话,我们会发现它这个地方啊,跟我们生成的结构还是不行的啊,朋友们,就是生成的逻辑结构看起来差不多,你看就是它生成的这个格式什么的,可能差不多,但是我们可以看到请求还是报错, 对不对?请求还是报错,所以的话,我们在这里这个方法后,我们应该最好的话是直接用它里面的这个我们所抠下来的这个 get 代码来进行生成,可能会比较 ok, 对 吧?这个地方看一下大家还有什么问题没有?这个地方应该没问题吧?嗯,各位,这个地方有什么问题?不 就是一个扣代码,对吧?考验同学们,你们一个扣代码的能力,对吧?考验大家扣代码的能力, ok, 如果各位同学们,你们记住啊,就是我们以后在未来。其实这个网站它主要考验同学们什么呢?主要第一个它考验了第一个调试能力, 调试能力,因为它是一个 cookie 加密的。不可以直接解混响吗?我已经解了,这个就是还原之后的 gsr, 我 通过在线还原网站已经成功的把它进行反混响处理了。它里面应该用的是魔改的 m d 五,对吧?它里面应该用的是魔改的 m d 五, 你可以考虑把这个代码集给它全抠全抠,然后把电视机给删掉就可以。然后它应该用了模改,或者在里面可能做了加密呢?只是说我们可能没有去分析到那么深,对吧?没有分析到那么深, ok, 其实这个网站它主要是考验大家的调试能力,朋友们,你们感兴趣可以去试一下啊。主要是考验你们的调试能力。第一个它主要是考验,呃,有哪些调试呢?第一个你不会后悔的话,说实话处理起来可能会有点难,因为我们很多朋友们也就找不到它的家的位置, 然后其次你找到它的加密位置之后,它里面会有一些定时器,它会通过这些定时器来导致我们当前的页面进入一个主摄的一个状态。呃,你也可以理解为就是一个卡死了,对吧?就一个卡死了。目前像这个难度的话,目前从技术角度划分,应该是在两颗星着的难度。
