今天介绍一下未取反运算。未取反运算就是将整数的每一个二进之位都取反,也就是零变成一,一变成零。未取反运算时,符号位也参与运算。图中是一个正数的未取反运算的例子。 由于取反后,符号未从零变成一,也就是变成了负数,所以此时运算结果被认为是负数,补码形式需要转换为原码才能转换成时间日数。图中是一个负数的未取反运算的例子, 步数需要转换为补码进行运算。由于取反后,符号位从一变成零,也就是变成了正数,所以此时运算结果被认为是正数,原码形式可以直接转换成十斤之数。图中是这两个例子的代码。这里出一道题,零取反的值是多少?很多人的直觉认为是无穷大,因为所有数值位都变成了一, 应该是一个很大的数,但实际上结果是负一,因为拍子那整数都是有符号的,取反会将符号位也取反。看图中运算就知道,所有数值位都是一的,负数就是负一。
粉丝443获赞2764

喂,嗯,大家好啊,嗯,我是 user spider, 今天呢我想给大家介绍一下,就是关于 python 的 编代码反翻译啊,我们都知道对于那种 exe 文件啊, 打包下来的话,我们都害怕别人拿到我们的原码,对吧?然后呢这里我就想给大家展示一下,就是如何拿到别人的原码,以及如何反翻译。我们可以看到,首先我们用到的第一个工具就是这个, 我们这里用一个就用我写的这个智慧树来测试一下吧,然后这个工具我可以给大家先看一下, 然后这个工具呢,我也是用 python 写的,然后作用呢?大家抖抖抖抖,好吧,可以看到这里是需要记录账号的,所以说如果别人拿到了你的原码是不是就可以,对吧? ok, 我 们在第一步呢,作为一个专业的逆向者,对吧?你要先使用一个工具,直接可以来测试一下,这里我已经拉进去了,我们再拉一下,可以看到我们这里很轻松,就知道它是用 python 打包,并且是用的 pyinstal, ok, 这个 ps 多了,他安全性的话不是很强,所以说我们这里来尝试一下获得能不能获得他的原码。兄弟们我们打开逆向工具,然后把这个复制一下, 然后打开这个工具粘贴到这里,然后我们看一下啊,然后兄弟们把这个工具下下来之后,就按照这个命令运行一下, 对吧?这工具还是很强大的,只要你会用工具拿这些东西,对吧? 你可以看到它很轻松很快啊,很快就已经解完了。然后这里我们就有原码,这里我们看一下啊,这里我们拿的是 p y c 代码,然后这一个是很可疑的啊,兄弟们,这一个的命名是非常有规律的,你看这几个都是 p y i 开头的,我们重点就看这一个, 这个怎么看的话,大家就自己凭经验好吗?凭经验,然后我们现在拿到了他的 p y c 代码,拿到 p y c 代码之后,我们下一步需要什么呢?我们需要拿到他的 p y 代码,对吧?我们需要拿到 p y 代码就用什么,就用 p y c d c 这个工具呢?是一个本地工具,它相对而言的话可能会更加安全。 嗯,但是它准确率呢,不是特别高,所以说这里我推荐用一个在线工具,这个在线工具我测试的话是比较好用的,我们这里打开一下,这个可能有点慢,看一下,我是不是没开梯子啊?我没开梯子,看一下重新加载一下, 很慢啊,这样吧,我从我把它粘贴复制一下,然后在这个里面打开一下。 ok, 成功进来了。现在我们把这个文件上传上去看一下,看一下能不能获得,能不能获得圆满, 嗯,没拖过去,重新来看一下能不能获得圆满。兄弟们, 还在加载,可以看到这里也是成功的解析出来,我们直接抠皮下来,然后呢?然后放在 对吧?放在 p y x 里面看一下,我们随便打开一个文件夹复制一下, ok, 我 们来看一下,可以看到这里的代码是非常非常的工整的,非常非常工整,那我们来直接的,怎么说呢?直接来运行一下,好吧, 运行一下看能不能跑,对吧?你光是看着没用,还要看一下能不能跑,对吧?兄弟们,这里也是成功的拿到这个,对吧?成功的启动了,这样你的代码就是别人的了, 对吧?一点都不安全,所以说呢,反变异这一块其实是很简单,所以说我们现在要了解一下怎么反反变异呢?我们知道拍摄常用的打包无非就是 pine installer, 对 吧?还有 pamer, 还有一个 nutica, 其实这个 pamer 也是基于 pine installer 打包的这个拍音,他们拍基于 pine installer 打包有一个很很好的地方,就是它打包速度非常快啊,但是它的性能, 但它安全性可能就没有了。那这个 piam 呢,它安全性可以,但是它有一个致命的缺点,就是它对单个文件会有限制,它对单个文件有三十二 kb 的 限制,所以说可能需要分模块打包,这一点的话,对兄弟们可能不太友好, 但是他的打包速度也很快,并且他也是免费的,当然有付费版啊,这里付费版我们先不瞒看嘛,那还有一个呢,就是牛蹄砍,他呢是把拍摄打包成 c 字零,这个呢是最安全的,但是呢,相对而言他打包速度有一是非常非常慢的, 然后呢,这里我们就演示一下,用这个拍阿文来打包,看一下能不能,对吧?能不能反变异成功, 我们这里就打开一个终端,我这里已经提前打开好了,然后我们就用这个以前做过的一个按钮,这里分两步,一定要分两步啊,兄弟们,他这个分一步的话,他找不到模块,这里一定要分两步, 第一个指令输完之后就输这个第二个指令,然后呢需要这个指令的朋友直接在后台私我啊,私我,直接直接发,直接发这个文档都直接发的,这没有什么,那他打包的时候呢,我们就也别闲着,我们来看一下,好吗? 的 p y installer 来看一下这个,这个 p y m, 它是一个很主流的商业方案,但是呢,它就有一个很大的区别,就是要收费,你知道吧?收费这个东西不好, 然后一个 python, 这个有个 k 函数加密,其实也不太好用啊,因为这里可以看一下,其实对于专业的逆向者来说是能够直接抓取到的,所以说我的建议是呢,如果你文件较小的话就用 python, 如果文件较大呢,对吧?我们就用 lyft 卡 这个东西呢,虽然打包慢一点,但是安全啊,兄弟们,安全才是最重要的,你的你,你的劳动成果都被别人窃取了,对吧?然后呢,我看一下这里打包完了没有啊?还没有打包完,这个速度的话,其实 再等一下吧,再等一下吧,然后兄弟们再说一下,打包的时候就是你的那个,因为配音多了,他打包的时候会把你的所有环境代码都给打包进去。我的建议是呢,大家用康达对吧?用康达来管理环境,用这个东西啊,这个东西管理环境是很舒服的, 看看,我这里是有很多打包的环境的,我会专门用一个环境来打包,就不会用那种, 对吧?把那些无关无关紧要的模块打包进去。好,这里也是打包完了,我们来看一下他能不能重新的反变异,主要是看他能不能反变异啊,通过工具反变异,这里我们就不说那些专业的,专业的事我们也没有精力搞。这里有个 test, 我 们打开看一下 test, ok, 这里有一个原码,我们把这个原码给复制一下吧,然后打开我们原来的那个工具, 回到上一层,然后这里粘贴一下, ok, 粘贴完了,然后我们继续用刚才那个代码跑一下,对吧?跑一下,看看能不能跑起来。 p y, 这里按 tab 键可以补全啊。兄弟们啊,这里不是柚子说错了,这里是切切的历史, 嗯,这里是成功的,已经把这个拿下来了。 pvc 拿下来, pvc 拿下来,不急啊,我们还要看最能不能拿到最终的原码,对吧?我们往下滑一下,哪一个?你觉得哪一个是我们需要的?我们找一下。这个不是吧?这个也不是吧?有吗?兄弟们, 这个一点 p y c 是 吧?这个是吧?这一看就是我们需要的,为什么?因为它的这个命名很规范,最规范的那一个一般就是你就找不同嘛,找和那个最不同的。我们把这个拉进去看一下呢,我们先返回一下上级, 然后,哎,点错了, 把这个拿进去看一下,看一下能不能拿到。嗯,他说你直接报错了,直接报错了是弄不了的,是发不了的,其实再试一下, 再试一下,看看能不能,能不能接。这里有两个啊,这里有两个,我们拿错了。我说呢,拿一个,拿一个,刚才拿错了, 看一下能不能。大家可以看到兄弟们,这里得到的是什么?这是什么东西?兄弟们,这个东西能运行吗?我们拿到本地来试一下。我们拿到本地来试一下。这个东西能运行吗?兄弟们,他,他能运行吗?他这个东西真的能运行吗?运行一下 直接报错了,兄弟们,直接 low mod 了,所以说这个东西还是可以的啊,兄弟们,用的话还是打包速度很快,就只有一个缺点,那就是 对长度有限制,单个模块有限制。然后呢,最后我再介绍一下这个 mutit 卡, mutit 卡它是相对而言是最安全的,就是它是免费里面最安全的, 它可以直接把拍成翻译成 ted 加调用本地解释器,对吧?什么什么二进字文件。最后一来打包到一起,它有个优势啊,就打包后的体积非常非常小,有多小的?兄弟们,我给大家展示一下啊。 然后这里代码呢?逆向性能更好,无长度限制,什么免全免费,但是有一个缺点,就是打包慢,然后看一下这个体积啊,我们看一下原来这个我原来打包的一个智慧树的代码,我们看一下 g s 里面 有一个智慧树的,让兄弟们看一下。这里有一个这个智慧树的,我们看一下它有多大,嗯,看一下吧,这里有多大?十七对吧?那十七 m b 对 吧?我们再看一下,我们看一下桌面,桌面上的这一个有多大? 七十八,兄弟们,这个大小不言而喻了,好吧,不言而喻了。然后这里的话同样也是展示一下这个工具能不能反变异啊,能不能反变异才是最重要的嘛。 然后又是打开这个复制一下,放在这个工具里面来测试一下,然后照样的打开这个命令行,对吧?不是这一个, 这一个,嗯,一样的,这里不是这个啊,这是什么维码?哦,对,这个看直接一入啊,直接报错了,直接报错了,兄弟们, 直接就粉变异不了,为什么?因为它需要用专业的工具, idea 那 种专业的东西来印上了,那的难度就非常非常大了啊。兄弟们, 那就要用这些东西了,这些东西就不是我们研究的,对吧?我们只是一个写拍摄的。好了,兄弟们,今天翻译和反翻译就讲到这里了,然后需要这些文档的直接后台私我,好吧,然后如果哪里讲的不好,还请各位大佬们轻点喷。好吧, ok, 再见。拜拜。
![和蔼的容嬷嬷又来教紫薇 Python 了
本期视频是 Python 的除法。
更多有趣教学视频在主页,也有视频正在制作中了。
#python[话题]# #python学习[话题]# #python自学[话题]# #python编程[话题]#编程入门](https://p3-pc-sign.douyinpic.com/image-cut-tos-priv/3a8c3226d7a39bf96d021125487d8602~tplv-dy-resize-origshort-autoq-75:330.jpeg?lk3s=138a59ce&x-expires=2093220000&x-signature=97HEb%2BKGjYmpWi4ChRrXjZZ6lw0%3D&from=327834062&s=PackSourceEnum_AWEME_DETAIL&se=false&sc=cover&biz_tag=pcweb_cover&l=202605041034117EF7F7F977CDEAD0D796)
听说你学了排丧,我考考你如何?在排丧代码中就有两个斜杠二、执行后的结果是什么?不知道。两个斜杠代表注式,所以二是注式,执行结果是几?选定排丧的注式是井号 裁判里面的,一个斜杠是除法,数学里面要有两个除号连用的,所以执行错误选一。在排丧中,除法分为两种, 真除法和地板除法。一个斜杠表示真除法,结果是一个伏点数,两个斜杠符号表示地板除法结果是向下取整的结果。 例如九两个斜杠两会得到四。所以这题正确答案应该选择四选,你学会了吗?

很多人问我,为什么有个 j c 音像的总是能让网页说脏话?其实不是网页老实,是他藏不住,尤其是那种一开调试起就疯狂暂停,恨不得把你赶出第二次的页面。新手看到这种场面,第一反应通常是完了,没法看了, 但老手不会先慌,老手先是第一件事情,就是判断这个场景到底该上插桩上户客,还是直接让插件来接受这一条视频。我不跟你堆术语,我就教你一件事,以后你再遇到 bug 风暴,第一刀该从哪里下? 不是我准,是他们叫我大哥学姐笔芯所学整理好了,需要的同学点击这里自拿。我们以这个网站为例, 首先我们在这个地方搜索一下拍摄相关的岗位,然后我们直接 f 十二快捷键打开 d o two 的 这个界面,结果您猜怎么着?当前的页面他直接跳转到空白界面, 并且上面显示的是 a b o 的 blank, 所以 说我们要看一下这个代码它是在哪个地方生成的。当然新手想的第一种方式就是像这个世界监听断电,我们在这里打上一个这个 g o 断电,然后我们再回来刚才这个页面,好, 你看到啊,它在执行这个 j s 文件的时候就直接断在这里了,那么我们就可以去搜看一下这个 blank 它是在哪个地方生成的,那么当前的这个 j s 文件当中没有,那么我们再看下一个 j s 文件也没有, 那继续往下面去找,哎,您猜怎么着?这里的话呢,有一个匹配项,那我们现在可以搜一下,也就是这个代码的位置,现在我们如果说 要判定是不是这个代码修改了我们当前的这个页面,我们直接新建一个页面,然后呢我们可以在控制台上面执行下这个代码,可以看一下它的这个功能是什么,叫做这个 about bug。 好, 然后我们执行一下,哎,您猜怎么着?他就跳转到了一个空白的界面,所以说就是这个代码更改了我们这个页面跳转的逻辑,所以我们来看一下怎么直接删掉他。 其实很重要的问题是这个文件是服务器返回过来的,我们要改的话只能本地文件替换来选择一下这个文件夹。好,在这里我们可以新建一个这个文件夹,就这个名字吧。现在我们再去修改这个代码,更改了, 然后你会发现这上面有个新号,代表他还没保存,所以你要按住加一次保存一下,现在的话就可以了,我们再看一下啊,当前的这个页面他是有这个枫叶处理的,就有这个枫叶的按钮,我们现在点击他是点击不了的,因为我们现在是在断住的状态, 那么我要让他在没有断住的状态之前下的这个脚本,断点的话,我们就可以把它取消了,然后我们再释放,当然你会发现跳转到这个空白的页面,因为我的这个浏览器不知道怎么回事啊,他没有反应过来, 没关系,那么我们现在再来打开一下这个页面,然后我们再回来, ok, 你 看现在就可以正常的 正常的去发包了啊,然后我们再点击一下这个分页的界面,你看啊,这也就抓取到这个数据包,当然除了这种方式,不像很多同学还有更好的方式,比如说呢,我们在遇到这种情况的时候呢,你可以在这个控控制台里面,比如说我们现在 在这个控制台上面直接这么去写 window 点, ok, 是, 就是你直接把它注空,其实这样的话也是可以的,你看啊,你看是可以正常的去抓取到这个雪包,对吧?这就是一个复合代码的注入,当然你会发现它这有个字体它一直在跳, 嗯,这个的话应该是跟我的这个 type alt 是 相关的啊,所以说你如果想让这一个字他不再跳的话呢,你可以把这一个把这个方法把它注空,比如说叫做三十加上一个这个小括号。好,你看现在他就不会跳了啊,这就是跟这个 type alt 是 相关的。好, 那这是第二种互客互客代码的注入,那还有第三种方式可以去解决这个返销式的问题了,也就是我们可以啊,打开这个上面 有一些这个扩展的一些程序,可以复制一下它,然后我们看一下我的这个扩展的程序, ok, 我 们全部打开,然后你在这里 再输一下这个网页,再搜一下。好,现在呢你把这几个按钮全部打开,这是一种插件的方式啊,大家如果说需要这些工具啊,或者说呢,想要这一个代码注的脚本都可以留言。好,我们再回来深圳的话呢,其实就是正常了,你也可以正常的去抓包了,一样的, 这就是你看,因为他这里的话已经是打开这个按钮了,所以说你是可以使用它上面的功能的。那我们今天的这个视频呢就分享到这, 你觉得哪一种方式更好呢?当然了,我建议啊,如果你是这个小白,零基础的小白的话,你还是要学会什么是这个户口代码的注入,以及呢?什么 怎么去定位找到这个代码它的生存位置就就是你需要大局的来看。然后如果说你有了一定基础之后呢?你去学什么这个插件啊,可以提升你的这个工作的效率。

拍访从零到精通第一章一点八拍访自创格式化。好,本节课呢,我们学习一个新的知识点,自创格式化。那什么是自创格式化呢?我们第一节课学习过打印这句话。你好,我是拍访老师, 今年三十岁了,这里面三十,我是用到上节课学习的是均函数,将整形转化成自创类型,因为这个整形呢,他是不能跟自创类型直接用加号去拼接打印输出的, 所以我们转换之后才能用加号进行去拼接打印,往往在日常编码中呢,我们接触的这些变量不止这一个,就比如我现在有这一句话要打印,我是小明,今年十八岁了,身高一米八,体重七十千克, 现在如果我还是用第一节课的那种方法去打印的话,会是什么情况呢?我们用代码演示一下。好,在这里我先把这些变量全都写出来, 姓名,小名,年龄十八,身高一米八,体重七十,如果我用第一节课的方法去写,那就会是这样子,你看 print, 我是 姓名加上今年年龄,加上身高, 加上体重,这么大一长串用加号去进行拼接,而且这里面的年龄、身高体重,他都不是字母串类型,所以还要进行一遍转换,这样看上去感觉特别的复杂。好,我们运行一下。 哎,你看这句话是不是被打印出来了,那么大家也看得出来,如果我的变量越来越多,后续还有比如说银行卡余额,你毕业学校,你的女朋友叫什么,你的女朋友的一些信息,那我是不是都要用加号去疯狂的给他往后追加? 这么长一串代码,看上去非常不美观,而且后续你要修改的时候,你还要注意了,不要漏掉了哪个引号,也不要忘记哪个变量需要进行转换, 这样特别特别麻烦。那么今天这节课的字母串格式化就能解决掉这个弊端。那我们看一下什么是字母串格式化呢? 自控串格式化,它的核心就是将变量或者数据按照指定格式嵌入到自控串中,它的本质是动态替换自控串中的站位位置。这句话是不是不是很好理解?我们接下来用它的三个常见方法去举例说明,并且用代码演示, 这样我们就可以很清楚的知道什么是自控串格式化。那么最早拍摄它是用站位符格式化, 他的语法很简单,就是在引号里面包裹需要站位符的制服串 后面接一个百分号,百分号后面呢需要放上替换的数据,如果需要替换的数据不止一个的话,我们中间需要用逗号去进行隔开的。那么常见的站位符它有三种, 百分号 s、 百分号 d 以及百分号 f。 百分号 s 呢,它是至负串占位符。 五分号 d 呢,它是整数占位符。百分 f 呢,它是浮点数占位符。至负串占位符呢,它是最常用的,可以兼容所有的数据类型。无论你用什么数据类型呢,它都会转换成至负串。 而分号 d 呢,它是整数占位符,它只能用于整数,如果传入浮点数的话,它会自动取整。 然后 f 呢,它是浮点数占位符,它是用于小数,而且它可以控制保留小数的位数。接下来我们用代码演示一遍,回到这里这句话,我们用占位符去格式化的话,怎么写呢? 大家先看,我写一遍 print 引号,接我们想要输出的内容。我是好,这里第一个小明,因为他是字幕串类型,所以我们前面要用到什么呢?对,这里要用到百分号 s, 相当于说这个小名呢,被这个摆放 s 字不串占位符给替换了。后面接一个逗号,今年好。第二个十八岁,这里的十八,他是整形,所以我们要用到百分号 d, 我的身高是,接下来是浮点类型,一点八,所以我们要用到百分号 f, 还有体重,体重呢,它是一个整形,那我们也是用百分号 d, 哎,写完这里呢?结束了吗?没有,如果我们直接这样打印输出,他只是把这句话给打印输出了,拍摄呢?他会觉得你这些好像没有后续的数据去替换他,我就把他当成制服串了,全部打印输出了, 所以我们这里后面要跟一个百分号,意思告诉拍摄这里面的百分号 s, 百分号 d, 百分号 f, 百分号 d, 它是有数据去替换的, 对不对?第一个百分 s, 我 们是替换成 name, 第二个 age 呢,是百分号 d, 那 么这样下去, height 是 百分 f, weight 是 百分号 d, 这样我们再次打印输出,右键运行。好,你看这个结果是不是打印输出了? 好,大家看这里,这个浮点类型呢?后面接了很多小数位,是因为我们没有明确告诉他需要保留几位小数,那如果我要保留的是跟上面一样一点八米,我们怎么写呢? 好,我们把这个复制一下,粘贴这里呢,我们如果要保留一位小数,就是加一个点一,我们再次运行一下。啊,你看这句话,它的身高,它就是保留了一位小数。 回到这里,这个浮点类型,它控制小数,就是用点后面加一个 n 位, 这个 n 呢代表需要保留的位数。我们看这个百分号 d, 它只能用于整数,如果传入辅点类型呢?它是会自动取整。回到这里,我们再把这句话复制一下, 如果我这里是百分号 d 呢?好,我们右键运行一下。哎,你看这里面的一点八米是不是被自动取整了,它变成了一米。 好,接下来我们看一下第二个方法, free 的 方法格式化。那么前面我们说过,不同的类型,它需要用到的是不同的站位符。 如果用在福典类型呢?我们还需要看一下保留几位小数,这样看他还是不是特别方便。那么这个佛卖的方法呢?他比占位符更灵活,更方便。好,我们看一下佛卖的方法,他的语法,他的语法很简单, 就是引号里面写一个包含花括号的制符串,也叫大括号。这个大括号就是我们需要替换的数据, 后面加一个点 format, 这个方法里面添加了我们需要替换的数据。同样,如果数据不止一个的话,我们需要用逗号进行隔开。我们回到代码案例,我们演示一遍 format 方法格式化,同样这个句子怎么写呢? 直接把这句话复制下来。好,在这里这些百分号 s, 我 通通用大括号去替代, 引用也是用大括号去替代。后面这一句话我们把它删除掉,加一个什么呢?点 format。 好, 这里面你看有姓名、年龄、身高、体重,它全都是替换成这个大括号里面的,我们右键运行一下。哎,你看这句话被成功打印了, 而且大家有没有发现这个一点八米呢?也是能够成功打印出来,他不用去进行说我要保留几位小数了,你这里数据写的多少,他保留的就是多少,我们把这里改成一点八二五, 我们再次运行一下。好,你看这里面是不是他也是能实时的去更新,其实否卖的方法呢?他也能够让福点类型保留你想保留的位数,我们复制一下,你看如果这里面我的身高呢, 在这里输入一个冒号,点二 f, 这样的话他代表的是该福点类型,我要保留两位有效数字 运行一下。好,你看这个一点八二米就被输出出来了,注意了,它的格式一定要清晰,是冒号,后面加一个百分号,点二 f。 好, 回到这里 二括号里面加一个冒号,后面加一个点 n, f 表示的就是浮点类型呢,要保留 n 位小数,跟这个有点类似,但是一定要注意区分。 接下来我们看一下第三个方法, f 字母串格式化,他呢会相比前面两种方法更加方便,更加便捷,也是拍成三点六引入的一个新方法。后续呢,我们日常编码中首选的就是这个方法,因为他是特别的简洁高效,而且很容易看出来 它的语法特别简单,就是 f 加上一个引号,引号里面有包含大括号的制复串,这个大括号它可以替换我们说的变量或者表达式甚至函数。最后这个 f 呢可以变成大写,但是我们通常是用小写的 f。 好, 我们再次回到这个代码,我们接下来用 f 制复串类型去进行格式化。同样我们把这句话复制一下,粘贴, 这个后面我们先给它去掉,这里前面我们要加一个 f, 这个百分号 s 呢,我们把它去掉,换成大括号,这个大括号里面就要替换成我们的变量,这个是姓名, 这里面呢同理,把它去掉,加上年龄,这里面呢 身高,这里面呢?体重。好,这句话就被成功替换成 f 自如串格式化类型, 我们运行一下。好,你看这句话是不是被打印出来了, 一目了然,而且特别简单,因为我能明确的知道,这里面替换的是我的姓名变量,这一面替换的是我的年龄变量,这里是身高,这里是体重。而且这句话呢,相较前面的这些句子是不是简短很多,特别的直观。 再回看我们开课前说的这句话,字母串格式化,它的核心是将变量或者数据按照指定的格式嵌入到字母串中,本质呢是动态替换字母串中的占位位置。这句话现在来理解是不是很简单了, 你看我这些都是去动态替换的,后续我需要什么变量,只要在这里面写对应的变量就行,这些数据我们都用占位符或者大括号去替换掉,后面呢我们再引用到具体的变量, 那么这个就是制服串格式化。今天的内容呢,就讲这么多,大家一定要动手实操一下,在实操中会遇到什么问题,可以在评论区里面留言,我们下节课再见。拜拜。

pai 既然这么简单,第三天 print 告诫语法在 pai print 意为打印的意思,当我们输入多个 print 打印时,就会发现输出的内容是依次排下来的, 那是因为这个有个反斜杠,恩,它的作用在代码里面是自动换行,但是会被 pai 自动隐藏起来。那如果说你想在一排展示,只需要加上一个加号就能够进行支付船。凭借 在 parent 中,逗号是可以起到空格的作用,我将内容中加上逗号进行分割,那么打印出来的内容就会有空格。我们再看这行代码后面加上了 set 等于加号,那么这个 set 是 什么意思呢? 它是用来定义逗号的,你可以用 set 等于加号来定义逗号,是加号运行得到的结果就是两个字母串的拼接。同样的,你也可以定义成别的内容,比如表情,那么运行得到的结果空格就会变成表情。除了 set 能定义逗号以外, print 中 and 可以 定义反斜杠 and, 也就是它能定义换行。我们看这两行代码运行得到的结果不会改变,如果在这里加上 and, 那 么就修改了换行,变成了 and 定义的内容。再次运行, 我们就可以看到内容进行改变了,因为指令不是换行了,所以它就会变成 and 定义的内容。如果说我们输入这样一串指令,草莓,西瓜,菠萝等等,打印出来的结果就是依次向下排列,那么这个时候我们加上 and 等于和, 那么输出的结果就变了,草莓和西瓜和菠萝。接下来我们进入练习环节, 今天我们要完成的是打印一份采购清单,在这里我们可以看到需要打印的内容,型号,价格等等,我们先输入 print 手机型号,价格等等, 依次将内容输入进去,用逗号就是空格进行分割开,同样的,我们输入第二行 print, 将上面的内容填充进去,点击上方运行,得到的结果就是清单的内容。如果说你用两个 print 打印 嫌弃太麻烦了,我们也可以用三引号进行打印,不过这个三引号它会保留你的格式并行发现和之前的内容是一样的,你还知道有什么方法吗? 接下来我们定义一下逗号的内容,在最后面这里加上 sb 就 等于笑脸,同样的,我们将这个复制加到下面这行代码 运行,我们就会发现打印出来的结果,逗号空格就被替换成了笑脸,是不是特别有趣呢?最后我们再来试试定义反斜杠, n 就是 定义换行,同样的,在最后面加上 n 的 等于分别式, 那么换行就会被替换成分别式的支付串,并且将两行代码打印成一行,我们运行看看效果很好,打印出来的结果和我们预设的一样。如果说你还有什么没听懂的,欢迎这里一起学习交流。

欢迎来到树木交友站,本期带来的是吉大斯然估计的 python 实现啊,那么我们吉大斯然估计它的一个应用范围还是非常广的,比如说我们可以去估计均值呀,估计方差呀,估计它的概率值啊等等等等。 那么他的一个理论其实也很简单,我们其实并不需要很多一个复杂的算法时间,比如说我们抛硬币啊,抛了四次朝上,一共抛了十次,那么对应的正面朝上的概率就是十分之四,这个就是他的极大的自然估计。 那么我有一组数据,零一二三四五六七八九十,那么他的一个均值是多少?那么我们要直接把零加一加二一直加到十,然后再除以一个十一,然后我们就可以得到一个均值是五,那么均值五就是他的一个极大似然估计。 所以说其实我们一个吉他四人,估计不管是我们在我们生活里面也好,还是在我们各种各样的比赛里面也好,他其实都已经无形的渗透进来了,只是我们之前不知道这个名词而已,所以说他就是一种比较偏直觉的一个估计方法。 那么我们这个地方还是假模假样的去实现一下一个自然函数,然后去求解他的一个自然函数的最大值,那么这个地方我这个地方只用了一个数学的库,所以说为了简单,我直接采用一个便利的方法, 然后的话就算看看各个参数带进去哪一个得到的一个自然函数的值是最大的,那么我就取这个参数, 那么我现在一共有一二三四五六七八八个样本,八个样本里面一出现的次数是五次,那么对应的我们都应该知道,那么 p x 等于一应该等于多少?等于零点六二五,对吧? p x 等于零,应该等于零点三七五,那么这个又加上一个极大的自然估计, 看我们得到了 p x 等于一的概率是零点六二五,然后对应的它的一个自然函数得到的值是负五点二九二五, 所以说这个就是我们的一个吉纳斯坦估计,那么我们以后在写论文的时候,就可以把我们的专业性给提起来了,对吧?我们以前是说算得的均值是多少,我们现在就可以说我们估计的均值,我们用吉纳斯坦估计求解出来的它的一个估计的均值大概是多少, 对吧?我们估计出来的一个概率是多少?然后的话,这样的话你论文看起来是不是逼格就要高一点呢?对吧? 这个就是我们捷达思想估计,那么对应的还有一个 em 算法,那么我们在课程里面说过,我们 em 算法里面主要是干嘛? 面对有引变量的一个问题的调解,我们可以使用猜测,然后再验证的方法去进行循环。那么这种思想在我们数学建模里面有很多的体现,比如说我们的智能优化算法就是这样去实现的,包括我们大部分的机器学习算法也是这样去实现的, 都是一开始随便猜一个数,然后呢再去计算它的一个误差,然后根据误差再去更新我们的这个数,然后如此如此的去进行循环,一直到我们的模型收敛,或者是说我们的一个 啊,我们指定的叠带次数达到了,那么我们就要停止他,所以说他其实是给我们提供的一种解决问题的一个思想。那么他比较一个多的一个应用,就是在求解我们的一个混合高斯模型里面,就是比如说我们有多个高斯分布,他混合到一起去了, 这个我们在课程里面也有讲过,比如说现在有两个高斯分布,它混合到一起去了,那么这个时候我们怎么把它给分离开来呢?这个时候我们就可以采用一个极大私然估计的方法, 我们先随机估计这两个电台分布的一个参数,也是他们的一个均值和标准差,然后的话再不断的根据我们猜测的一个误差来进行不断的一个迭代,那么其实这一个就是我们很多智能优化算法的一个思想。 那我们来运行了一下,试一下,对应的第一个它估计的值是负零点零五,第二个估计的均值是五点一七,而我初时画 的是零和五,那么对应的它还是有一点误差在的,一个是误差是零点零五几,另一个误差是零点一七几, 那么对应的方差呢?方差的话,第一个的方差是一,他的估计方差是零点六三,第二个的方差是一,对应的他那个估计方差是零点八七,那么还是有一点误差在的,但是的话这个模型效果还是不错的, 这个就是我们 e m 算法的一个非常典型的一个应用案例。然后的话,其实在我数学建模里面混合高斯分布这种模型出现的还是比较多的,很多时候我们同学们都会考虑用记忆学习进行求解,但是的话一般记忆学习 它对于正态分布的效果是比较好的,但是对于这种混合分布,它的一个效果就不太好,那么这个时候我们就可以考虑一下,我们可以用 g m m 模型去进行修剪,那么可能很多同学都是第一次听说这个模型,对吧? 那么第三个就是贝叶斯估计,那么贝叶斯估计他的一个应用范围也非常非常的广,比如说在我们做机器学习的,那么我们可能我们大数据的同学,我们学人工智能的同学 应该都听说过那个有一个名词叫做参数搜索模型优化,那么贝叶斯估计可以作为我们模型参数搜索的一种方法。其次呢还可以干嘛?就像我们题目里面讲到的那样,我们可以根据观测数据来得到我们的一个经验分布, 那么这他的一个效果在某些场合要比我们家的四眼估计要好。比如说我们抽烟的时候抽了三次,然后三个都是 正品,然后的话抽了十次,十次都是正品,那么对应的他其他四眼估计值都是一,而我们的贝叶斯估计值就不是一了,那么对应的他就有一定的偏差的一个修复能力, 它得到的一个数据就更加的客观,因为它是从数据之中得到的,那么它的一个核心的一个算法其实就是我们的贝叶斯公式。 那么我们还是用我们题目里面的那一个例子,一共有二十个数据,其中一出现了五次,零出现了十五次,那么对应 p 等于一的概率应该就是零点二五,对吧?那么我们用 ml 一 去估计它的概率应该是零点二五, 但是的话我们把数据引入之来之后呢,我们得到的概率是零点二七二七,也就是十一分之三,那么和我们的最大私人估计是有一点出入在的。那么这个地方其实求解的一个方法还是用的一个暴力的一个搜索方法, 因为这个地方我没有导入任何的库,所以说这个地方为了方便他就直接用暴力搜索的方法进行求解,然后的话 其实也就是一个循环去进行一个便利。那么其实在数学建模里面,这三个的考点主要设置在哪个地方呢?他一般不会直接去考你的一个计算,就像我们课程里面讲过的,在数学建模里面他的一个大部分的应用场景,其实就是应用他的一个结论。比如说我们贝叶斯估计的结论, 共恶酰胺分布,就是去年二零二四年国赛 b t 考到的最后一位,对吧?共恶酰胺分布。 其次的话 e m 算法的话,主要是它的一个思想猜测到验证的一个过程,它应用的话其实在我们优化算法里面有非常多的应用。其次的话在预测问题上面的话,就是我们刚刚说过的 g m m 模型,我们可以去修改混合高斯分布的一个问题, m l e 呢?就是我们的极大似然估计,那就更简单的,我们求均值也好,我们去求方差也好,我们去求它的一个概率值,它的一个出现概率也好, 那么我们通过我们观测到的样本数量,除以样本的总量,那么对应的就是我们的极大似然估计的一个概率值,那么同样的我们求的一个均值也可以说是我们极大似然估计求出来的一个均值。 所以说其实在这个讲解内容里面,我们其实很多很多都已经在前面已经涉及到了,只是这个地方我们又给他换了一个名字,对吧? m l e, 然后前面的一个贝尔斯,估计也是直接用贝尔斯公式就可以完全求解,没有任何新的东西, 那么唯一一个有点新的就是我们一个 em 算法,但是的话,它的一个核心的话,其实也就是把我们的问题分解开来,它其实是一种解决问题的一种思想,那么涉及到的模型的话也就只有一个 g m m 模型,那么本节课的内容就到此结束。

听说北京大学的官网是学生自己写的,一键检测大学生的代码水平,六分钟解密北京大学,今天呢,咱们来看一下北京大学的登录接口类型分析,那么你要去抓取登录数据包呢,也需要去触发登录事件,所以咱们可以通过 f 十二打开出工具 来去输入用户名,随便输一个,再来去输入密码一二三四五六,再来输入验证码 m g 九,哎,点击登录好,它就会发登录的数据包,咱们可以看一下啊,这里的话呢,第一个它虽然说有这个 user name, 但它并没有 password。 来看下第二个呢, 第二个呢,它这里又有 user name, 也有 password, 用户名和密码它都有啊,这里是咱们所输入的铭文的用户名,那么密码呢?它就去 对他做了加密啊,咱们输入的是一二三四五六,但他并没有去在这里展示一二三四五六,而是展示的这么一长串的密文值,就通过他把一二三四五六呢给他加密成了这么一长串, 然后再去做的提交。所以咱们爬虫呢,也需要去给他把这个铭文值加密成铭文值之后呢,再来去做提交啊,一样的道理,所以就需要去找到这个 password, 它加密生成的位置在哪里?那咱们可以通过搜索的形式, ctrl shift 加 f 来搜索一下, 搜索好搜索到的结果会比较多,要一个个去找呢,可能会比较麻烦,那咱们能不能通过搜索其他的方式来去更加快速地定位到呢?也有啊,比如咱们可以去搜什么呢? encrypt e n c r y p t 搜一下,那么搜索发现这个地方它在这里有一处,我的这个是文件的名称,不用管它啊,这里呢?这里呢会有一个 p w d 去获取了 这个标签啊,它的一个值,然后去对它做了一个加密,是吗?咱们可以看一下这个地方,这个地方的话呢, 看一下啊,他是去通过这个方法传入的这个密码的铭文值,看起来是,然后去给他做了一个加密,来下个断点吧,下个断点之后呢,咱们来去重新 过一下啊,这个验证码 u z u r 点击登录好,断住了,对不对?断住了之后呢,它这个地方的一个铭文值,哎,是一二三四五六。然后把它这个铭文值呢交给了这个方法之后, 看一下得到的一个值就是密文值了,所以这个加密的点就一定在这个地方啊,就一定在这个地方,它是通过这个什么 encrypt 方法来去做的一个加密。所以咱们这里呢,也可以去给它 点进去之后看一下啊,它这个加密点在什么位置?在这里啊?在这里,那么在这个地方呢,它会进到这个 return 里面来, 然后 this 点 get key 方法,再去点 encrypt 这样的一个方法去传入了这个 t, 那 么这个 t 的 话呢,就一定是什么?就一定是 密文值嘛?把这个密文值交给了这个方法之后,得到了第一次的密文值, 得到了第一次的密文值,然后他又把这个第一次的密文值呢交给了这个 f, 再得到了第二次的密文值,给它返回了出去。所以他是走了两次加密啊,先去走了这样的一次加密,再去走了这样的一次加密啊,得到了这个最终的结果。 那么来看这个 this 点 key get key, 呃,这个方法它是在这里面的,呃,在这个地方呢,它会有对 t 的 原形去加了这样的一个方法,或者去改了这样的一个方法啊,是这样的一个逻辑, 那咱们回到上面来看一下啊,这里先给它关掉,那么再回到上面来看,那么 this 点 get key, 那 么 this 是 什么东西呢?主要是看 this 是 什么啊?那么 this。 大家如果说了解 gs 的 同学,咱们这里可以看到它这里输出出来的是一个对象, this 是 谁调用它它就指向谁嘛。那么它是谁调用的呀?它是不是由这个地方来调用的, 对吧?这类来调用的,是通过 c l i p t 来去调用的,所以这个 z s 它一定是指向这个。呃, c l i p t 的, 所以咱们可以看一下它的一个对象输出的都是一模一样的,你也可以去判断啊,通过 啊,这个强等于 c l i p t 等不等于这个 z s, 它为 true, 说明它一定就是这个地方的一个 z s。 那 么就需要去找什么呢?就需要去找到这个 c l i p t 它加密的位置,它生成的位置,那咱们可以去搜一下呗, 搜一下啊, ctrl shift 加 f, 搜索 c l i p t 它的一个生成位置。 好,这个地方呢?首先文件名不用管,下面这里 文字不对啊,这里出现了一次 c r i p t 呢,它等于什么?它是等于的这个 溜了 gs 启发的这样的一个对象,所以他在这里去生成的。那咱们也可以在这里去下断点嘛,下断点之后呢,来去刷新一下,他就断住了,对吧?断住了之后来看他那个指向啊,来看这个对象,他的指向在哪里?跳过去 跳到了这个 t 函数这里,所以这个对象呢?一定是这个 t 函数,这个 t 函数来看一下他整个的一个逻辑啊,又维特呢这一些啊,给他这个 t 又加了一些, 在他的原型上面去加了一些方法,是吧?啊?加了,加了一些方法,所以咱们就可以直接去把整个文件啊的这个代码给他拔下来之后,然后再把这个 t 生成了,然后给它加完方法之后给它导出去。啊,在外部啊,在全区去溜这样的一个 t 对 象,就可以去得到这个 c i p t 了。 得到这个 c i p t 之后呢,咱们就再去直接通过 c i p t 去点这个 in cap 的 方法,就可以直接传一个啊密文,呃,传一个明文值的密码就可以去得到它的密文值了啊,这,这也非常简单 啊,差不多这样的一个形式,那咱们就这样去运行看一下,我们就得到了这样的一个密文值。哎,这个就是北京大学的一个加密位置啊。



欢迎来到树木交友站,本期带来的是吉大斯然估计的 python 实现啊,那么我们吉大斯然估计它的一个应用范围还是非常广的,比如说我们可以去估计均值呀,估计方差呀,估计它的概率值啊等等等等。 那么他的一个理论其实也很简单,我们其实并不需要很多一个复杂的算法时间,比如说我们抛硬币啊,抛了四次朝上,一共抛了十次,那么对应的正面朝上的概率就是十分之四,这个就是他的极大的自然估计。 那么我有一组数据,零一二三四五六七八九十,那么他的一个均值是多少?那么我们要直接把零加一加二一直加到十,然后再除以一个十一,然后我们就可以得到一个均值是五,那么均值五就是他的一个极大似然估计。 所以说其实我们一个吉他四人,估计不管是我们在我们生活里面也好,还是在我们各种各样的比赛里面也好,他其实都已经无形的渗透进来了,只是我们之前不知道这个名词而已,所以说他就是一种比较偏直觉的一个估计方法。 那么我们这个地方还是假模假样的去实现一下一个自然函数,然后去求解他的一个自然函数的最大值,那么这个地方我这个地方只用了一个数学的库,所以说为了简单,我直接采用一个便利的方法, 然后的话就算看看各个参数带进去哪一个得到的一个自然函数的值是最大的,那么我就取这个参数, 那么我现在一共有一二三四五六七八八个样本,八个样本里面一出现的次数是五次,那么对应的我们都应该知道,那么 p x 等于一应该等于多少?等于零点六二五,对吧? p x 等于零,应该等于零点三七五,那么这个又加上一个极大的自然估计, 看我们得到了 p x 等于一的概率是零点六二五,然后对应的它的一个自然函数得到的值是负五点二九二五, 所以说这个就是我们的一个吉纳斯坦估计,那么我们以后在写论文的时候,就可以把我们的专业性给提起来了,对吧?我们以前是说算得的均值是多少,我们现在就可以说我们估计的均值,我们用吉纳斯坦估计求解出来的它的一个估计的均值大概是多少, 对吧?我们估计出来的一个概率值是多少,然后的话,这样的话你论文看起来是不是逼格就要高一点呢?对吧? 这个就是我们吉他思想估计,那么对应的还有一个 em 算法,那么我们在课程里面说过,我们 em 算法里面主要是干嘛? 面对有引变量的一个问题的调解,我们可以使用猜测,然后再验证的方法去进行循环。那么这种思想在我们数学建模里面有很多的体现,比如说我们的智能优化算法就是这样去实现的,包括我们大部分的机器学习算法也是这样去实现的, 都是一开始随便猜一个数,然后呢再去计算它的一个误差,然后根据误差再去更新我们的这个数,然后如此如此的去进行循环,一直到我们的模型收敛,或者是说我们的一个 啊,我们指定的叠带次数达到了,那么我们就要停止他,所以说他其实是给我们提供的一种解决问题的一个思想。那么他比较一个多的一个应用,就是在求解我们的一个混合高斯模型里面,就是比如说我们有多个高斯分布,他混合到一起去了, 这个我们在课程里面也有讲过,比如说现在有两个高斯分布,它混合到一起去了,那么这个时候我们怎么把它给分离开来呢?这个时候我们就可以采用一个极大私然估计的方法, 我们先随机估计这两个电台分布的一个参数,也是他们的一个均值和标准差,然后的话再不断的根据我们猜测的一个误差来进行不断的一个迭代。那么其实这一个就是我们很多智能优化算法的一个思想。 那我们来运行它一下,试一下对应的第一个它估计的值是负零点零五,第二个估计的均值是五点一七,而我初时画 的是零和五,那么对应的它还是有一点误差在的,一个是误差是零点零五几,另一个误差是零点一七几, 那么对应的方差呢?方差的话,第一个的方差是一,他的估计方差是零点六三,第二个的方差是一,对应的他那个估计方差是零点八七,那么还是有一点误差在的,但是的话这个模型效果还是不错的, 这个就是我们 e m 算法的一个非常典型的一个应用案例。然后的话,其实在我数学建模里面,混合高斯分布这种模型出现的还是比较多的,很多时候我们同学们都会考虑用记忆学习进行求解,但是的话一般记忆学习 它对于正态分布的效果是比较好的,但是对于这种混合分布,它的一个效果就不太好,那么这个时候我们就可以考虑一下,我们可以用 g m m 模型去进行修剪,那么可能很多同学都是第一次听说这个模型,对吧? 那么第三个就是贝叶斯估计,那么贝叶斯估计他的一个应用范围也非常非常的广,比如说在我们做机器学习的,那么我们可能我们大数据的同学,我们学人工智能的同学 应该都听说过那个有一个名词叫做参数搜索模型优化,那么贝叶斯估计可以作为我们模型参数搜索的一种方法。其次呢还可以干嘛?就像我们题目里面讲到的那样,我们可以根据观测数据来得到我们的一个经验分布, 那么这他的一个效果在某些场合要比我们家的四眼估计要好。比如说我们抽烟的时候抽了三次,然后三个都是 正品,然后的话抽了十次,十次都是正品,那么对应的他其他四眼估计值都是一,而我们的贝叶斯估计值就不是一了,那么对应的他就有一定的偏差的一个修复能力, 它得到的一个数据就更加的客观,因为它是从数据之中得到的,那么它的一个核心的一个算法其实就是我们的贝叶斯公式。 那么我们还是用我们题目里面的那一个例子,一共有二十个数据,其中一出现了五次,零出现了十五次,那么对应 p 等于一的概率应该就是零点二五,对吧?那么我们用 ml 一 去估计它的概率应该是零点二五, 但是的话我们把数据引入之来之后呢,我们得到的概率是零点二七二七,也就是十一分之三,那么和我们的最大私人估计是有一点出入在的。那么这个地方其实求解的一个方法还是用的一个暴力的一个搜索方法, 因为这个地方我没有导入任何的库,所以说这个地方为了方便他就直接用暴力搜索的方法进行求解,然后的话 其实也就是一个循环去进行一个便利。那么其实在数学建模里面,这三个的考点主要设置在哪个地方呢?他一般不会直接去考你的一个计算,就像我们课程里面讲过的,在数学建模里面他的一个大部分的应用场景,其实就是应用他的一个结论。比如说我们贝叶斯估计的结论, 共恶酰胺分布,就是去年二零二四年国赛 b t 考到的最后一位,对吧?共恶酰胺分布。 其次的话 e m 算法的话,主要是它的一个思想猜测到验证的一个过程,它应用的话其实在我们优化算法里面有非常多的应用。其次的话在预测问题上面的话,就是我们刚刚说过的 g m m 模型,我们可以去修改混合高斯分布的一个问题, m l e 呢,就是我们的极大似然估计,那就更简单的,我们求均值也好,我们去求方差也好,我们去求他的一个概率值,他的一个出现概率也好, 那么我们通过我们观测到的样本数量,除以样本的总量,那么对应的就是我们的极大似然估计的一个概率值,那么同样的我们求的一个均值也可以说是我们极大似然估计求出来的一个均值。 所以说其实在这个讲解内容里面,我们其实很多很多都已经在前面已经涉及到了,只是这个地方我们又给他换了一个名字,对吧? m l e, 然后前面的一个贝尔斯,估计也是直接用贝尔斯公式就可以完全求解,没有任何新的东西, 那么唯一一个有点新的就是我们一个 e m 算法,但是的话,它的一个核心的话,其实也就是把我们的问题分解开来,它其实是一种解决问题的一种思想,那么涉及到的模型的话也就只有一个 g m m 模型,那么本节课的内容就到此结束。

hello, 大家好,我是 jack, 在 这一讲当中,我们一起来看题,二十五,反直角三角形图形,结果是这样子的,那我们可以简单的想一想,它呢,总共是呃两层循环对不对? 我们还是写一个循环嵌套啊,循环嵌套,它这里呢是两层循环,只不过外层循环呢?它似乎是从哪开始的呀? 从一到六,假设我们是从一到六一共会循环五趟,对不对啊?一到六一共会循环五趟,我们依然按照这种方式来分析啊, 这个 i 的 变量值呢,会从一开始一直到五,但是在内层循环过程当中呢?嗯,他第一次是要循环几次呢?第一次是循环五趟,那我个人觉得不要这样子啊,他最好是这样子,从六开始,从五开始, 从五开始一直到零,五开始到零,大家想一想,那 i 产生的方式呢?就应该是这样子,五四三 二一。当然他不可能跑到零,但这样还是不对,因为你要是逆向的,所以你这里要写个负一,他能够从五开始跑到四,跑三,跑二,跑一,不会跑到零。那这个地方我们只要用这个 i 就 可以了, 因为如果直接用 i, 他 第一次就是五,内部就会循环五趟到一次向下走就可以。大家想是不是这样子的呀?显然是正确的啊,好好想一想就能想明白。这样子呢,我就完成了一个反三角形,反直角三角形的输出,你看, 五四三二一,五四三二一,搞定。好的,这就是我们提二十五的一个代码逻辑实现,希望大家能够在这个案例当中掌握其关键的知识点。

二六年最新版本爬虫逆向实战干货教学,今天给大家带来的是阿里云官网的滑动验证码,采用的是幺四零的一个加密,来带大家详细的分析一下安排。老何我专门给大家准备了爬虫逆向实战的一个直播课,还配套录制了全套的逆向入门学习视频,大家记得在粉丝群里面来进行获取。 首先滑动验证码,目前他主要的重点是在哪里呢?就是他的验证接口,就是我们从这一个地方拖拽到他的最右边,然后验证通过, 对吧?这个叫滑动验证码,不是划快对吧?就验证通过。然后其次我们可以来看一下,首先目前啊像滑动验证码的话,第一步我们肯定是要先来获取当前的这个验证码接口,对,我们肯定要获取它像这种验证码的话,我们进行页面刷新,他就会进行加载,你看他在这里话会给我们进行验证码的一个加载, 这是它配置啊,来我们来看一下,其实我们很多时候我们找不到它是哪个加载接口,没关系,我们直接可以做验证,看啊,我们在下方进行滑动,看啊,滑动到最右边,那么当我们滑动到最右边的时候,它像在下面,它会给我们产生一个验证接口, 你看这下面它会给我们产生一个验证接口,然后像它这个验证接口里面,我们可以去关啊,这个不是的啊,我们可以把它清空线啊,你看把它全部删掉啊,看啊,刷新 删掉,删掉之后我们在页面当中来拖动这个滑块,我们点击全部接口啊,看好清空,然后滑动, 滑动之后它会产生一个接口,那这个叫做这个就是阿里云,看没有阿里云的简称,对吧?阿里云点接收打开它, 那么这个就是目前这个官网的验证码啊,官网验证码的一个验证接口里面,目前核心的参数是有这么几个参数,第一个一个 n 参数, 这个 n 参数的话采用的是幺四零,也就是我们常叫的,你看幺四零哒,幺四零念的嘛。然后其次它再往下面走,再往下面走的话,它里面有个 umid token, 看啊,有个 um token, 这两个是我们需要来处理的,那也就是目前的不管是阿里云官网的滑动还是无感,它们两个里面的核心全部都是幺四零,对吧?然后还有个 umid token, 那还一个 u m i d tokyo, 然后这个幺四零的话,幺四零的这个参数里面它会包含我们的轨迹,但是目前像滑动和无感验证,阿里云的官网的话,它是可以固定它里面的轨迹, 固定它里面的轨迹也可以使用,那它也是可以使用的啊,但是像目前 vi 的 滑动和无感的话是不行的。给大家讲一下啊,那么在这里我们现在目前市场的解决方案,首先我们可以先看一下啊,这个阿里官网的这个幺四零,阿里官网的这个幺四零的话, 那怎么去解决它呢?首先我们只要主动就是去调试它的一个 gs 的 一个加密位置,对不对?去找到它 gs 的 一个加密位置 来,我们可以点击启动器,然后点击启动器之后啊,在这里会出现一个请求的调用堆栈,我们去打一个断点,然后来进行调试,我们可以来调一下它啊,可以先暂时把它放掉啊,你看刷新 好看啊,我们打一个断点,然后我们先在这里来进验证,来进行拖拽,然后 bug, 然后当它 bug 之后,我们来观察一下它堆栈,我们看一下幺四零在哪里啊? 幺四零在这里有个 t 点 data, 是 吧?你看是不是在这里,对吧?有个 t 点 data 就是 t 下级的 data, 然后再是 data 下面的 n, 对 吧?我们可以去看一下啊,然后我们向上推,向上推的话我们可以看到是不是在这里,你看,那么你看这个地方它是不是就是我们当前的幺四零的一个加密的一个生成啊?对吧?是不是幺四零的一个加密的一个生成的一个位置,你看 这是我们当前幺四零的一个加密的一个生成位置,那么像在这里我们可以去看一下哦,它里面主要的加密就是这个 m 点下划线,下划线,由这个地方来做的一个加密,然后来生成,我们当前的幺四零 呀,就由它来生成的,然后在这个里面它还有签套,在这个方法里面它还是有签套的,它里面还有额外的进行的一个签套 没有,是吧?我们打个断点,我们重新调一下啊,你看我们把断点放掉来重新刷新,你看我们重新调一下就好了,来进行验证断点,然后断点之后我们来看啊,它这个是有签套的,我们可以点击它进行跳转, 跳转之后你看这个地方就是我们当前的目前市场主流的幺四零的一个加密的一个返回位置, 也就是直接掉了一个一方法,打掉了一个一方法。那么像目前在市场像幺四零的解决方案又是怎么样的嘞?目前在市场像幺四零的解决方案,我们大多数啊都是做的,嗯,其实纯算是没有的啊,大多数都是做补环境的 验证码和官网都在用的是幺四零码不一样,对吧?你听我细细讲好不好?因为我们后面还有很多其他验证码,阿里系的话有很多验证码啊,那么目前像幺四零的验证码的话,我给大家演示一下,看一下成品好不好?我给大家看成品,因为这个比较简单啊,我就快速的带你们过一下,看一下是什么结构。 目前阿里的幺四零验证码的话,它主要的逻辑啊,其实就是全扣的,直接把代码全扣,然后补环境来给你们看一下啊,这是幺四零的一个罚款, 你看你看啊,首先像目前的幺四零的原码,就是当我们现在找到了它的加密位置之后,就这个地方啊,这个一括号一处理了一个 o o 的 话,是被处理的一个迷门,然后在这个地方会返回我们的一个幺四零,对不对?然后我们去找这个一方法,这个一方法的话是在这个地方 看啊,他在最上面看没有这个一方法,也就是我们把代码全扣之后,指向的是这个方法看没有是不是他, 那么我们把这个代码给它全部扣下来,就是把当前整个 js 文件全部扣下来,然后通过一个大局变量啊,通过一个大局的 word 点 x x 来接收当前的一方法。什么意思啊?就是把它一个,把它从一个内部的一个方法变成全局的, 变成全局方法来方便我们在补环境之后来进行调用,调用它 这个地方应该没什么问题啊。然后目前幺四零的难点主要是在于补环境,你看这个是幺四零的一个补环境的原码,给大家看一下,目前幺四零的话,他是没有特别的检测,就是尤其是在圆形面上面的话,是没有特别的检测的, 目前像幺四零元幺四零的加密的生成,我们是可以直接补原生的环境,记住啊,是可以补原生的环境的,是不需要通过我们的原形链来补的,但是你们可以通过原形链也是没有关系, 你看你们也可以通过原形链,你看我这个是通过原形链的方式来补充的幺四零的一个加密,然后像幺四零的正常补下的话,目前在市场它的补环境原码大概也是在差不多四百多行的代码,你看这是一个幺四零的一个原码的一个生成, 看啊,幺四零的一个加密的一个生成,看,没有那幺四零的。 ok, 这里我们了解一下啊,这是幺四零的啊,幺四零的,那么除了像目前像我们现在这个幺四零,幺四零目前在市场 他是算一个比较简单的啊,因为目前在市场像阿里云官网的滑动无感,目前市场报价基本都是在两 k 个馒头左右, 对吧?两 k 个左右,那 i 三四我等下会讲到,好吧, i 三四是属于我们下面一个级别,对吧?而且现在目前市场像阿里云官网的不管是滑动验证码还是无感验证码,基本类似, 明白吗?他们俩是差不多的,那用 jason 兔哦,可以可以,用阿里云官网的,阿里云官网的这个补环境给大家讲一下,它补环境的检测点是非常 low 的 啊,不是很严格,你可以直接使用 vmi, 都是可以直接补上的,就是补环境框架,你可以用一些补环境的框架都可以来直接补上的, 明白吗?只是说你用补环境框架的话,你补的东西太多了嘛,一般正常你如果通过补环境框架来补的环境基本差不多,好像有七八百行代码,甚至有些还有上千行, 是吧?各位是不是啊?我问一下有没有用框架补过的?我没有用框架补过幺四零,一般像幺四零,如果你用框架补的话,基本那个原码太多太多了,说实话 对吧?然后还有个无感它的无感验证,记住啊,这个智能无感验证跟阿里的这个滑动验证是一样的啊,你看它也是幺四零,你看我们点击验证,然后出现当前的验证接口,在当前的验证接口里面它有个 a 参数,这个 a 参数它里面的重点也是一个 umid target 跟一个幺四零, 看没有一个 umid token 跟一个幺四零,它们两个的加密的文件都是一样的,那么它们里面有什么不同呢?就是被加密的内容,也就是铭文不一样, 其次里面的轨迹不一样,其他的加密的环境一模一样。就是说滑动验证码跟智能验证码,它们两个验证码的补环境是通用的。

今天我要来,嗯,我我,你们来看一下我,我做的拍摄计算器。首先来看一下代码,之前的到这里的代码都很简单,到积分这里就有点太难了,然后求和,求和更难, 球盒非常大,球机比球盒简单一点,但还是很难, 来吧,来看看运行结果,它是这样子的,首先来一个加, 输入第一个加速三,输入第二个加速六,然后再运行一下减, 输入第一个减速三四等于负一乘来试试乘 乘,输入第一个乘数五,输入第二个乘数六等于三十,小意思来看看这道题会不会做。四除以九等等于零点四四四四 来看看密来输入底数四,输入根数公等于四千,输入指数六等于四千零九十六, 然后 size, 输入角度四 口算,嗯,输入角度五 来看看输入积分来看看积分的输入积分下限零,输入积分上限四,输入被积表达数 x 加一等于八点零。 然后再来看看 sum, sum 这里出现一个使用方法, 我们我们输入求和范围 sum m, x 等于一逗号七,然后输入 x 表达式 x 减三, x 等于二十七点四四六二六七二四九七五七七六。再来一个 pro 的, 这个不需要输入,就等着他输出结果来看看,如果你想换一个结果的话,你就在这里改变参数, 比如我们要来一个七阶的,就输入七来看看普洛的 他就十,他就十八万,十八,十八,十八万了,他就会显示十八万。今天的我的计算器就到。

老爬虫逆向遇到像这种无限的 bug, 网页反调试,不想来写我们的后壳代码,想要能够一键来快速的解决这些问题,那么该怎么办呢?今天给大家分享一款我最常用的一个爬虫逆向工具。当前是不是进入反调试?我们一般遇到这种反调试,我们干嘛?是不是都是直接通过后壳来进行注入,对不对? 是吧?后壳注入是什么意思?就是说把当前这个 bug 置空,那么在这里你看我比如说我在这里我就随机的找一个后壳的 bug, 你 看 这是一个常见的后缀 bug, 一个代码,它主要就是来通过当前的构造器,然后里面构造了一个 bug 的 一个函数或方法,当它构造的 bug 为,对吧?有内容我们就把它返回为空,我们点击注入,注入之后当前 bug 是 可以解决掉了啊,你看是没有了,但是下滑没有数据了,朋友们,你们看你看 有没有发现下滑没有数据了。目前像在市场上像这种反调试的话,是有分为很多的一个章节, 如果你们感兴趣可以点点关注,今天的话我将重点的只讲雪球这个网站,其他的我可以不给你们进行扩展。那么在这里我们来看一下这个到底要该怎么去解决呢?其实这个是因为当前的构造逻辑不同,明白吗?因为当前的构造逻辑不同,从而导致你要记住你像这种构造器, 它其实际上当前这个网页它的构成采用的是一个 fact 对 象来进行构成的,也就是它的注入方式是不一样的,那么我们该怎么去解决它呢?看哦,点击检查, 我教你们一个简单的。好吧,我们不写代码,就是用插件。怎么叫插件?浏览器扩展程序吗?你看我们打开浏览器的扩展程序,然后在扩展程序当中,我这里有个很好用的一个呃,插件,如果你们有需要可以去看一下,叫做小博士,而且 目前像这个小博士的话,在网上也有很多的视频教程,你们感兴趣也可以去学习一下。他这个插件的话是非常好用的啊,直接打开,然后打开之后你看我们可以看到就把它开启,开启之后这里面有个绕过无线的 bug, 看到没有? 目前在市场。嗯,目前来说我还没有遇到是绕不过去的,我起码处理了处理讲解,有上千个网站,到目前为止起码不说上千个吧,四五百个网站肯定是有了,四五百个网站我还没有发现他绕不过去的, 所以说你看他的成功率还是很大的啊。你看开启绕过无线的 bug, 然后刷新一下页面,这个是最简单的,直接通过插件,这个插件可以免费获取啊,如果有需要的话,直接去给我点点关注就好了。朋友们来把,重新开一下。呃,开启了是吧?好,开启之后你看右键点击检查。 ok, 那 么我们现在我们像在这里,你看当我们插件开启之后往下滑,你看它就 都没有反弹,没有反调试,它都没有触发反调试,对吧?而且像这个插件目前很多功能都非常好用,像里面的。呃,像绕过我们的 c d p 检测,目前像很多网站它其实有特殊的 c d p 检测,它是可以绕过的,然后其次我还尝试了像里面的这个到幕和它的画布,还有像指纹, 对吧?插件怎么安装啊?插件的话就是,呃,给大家讲一下啊,这个插件的话它是一个文件包。给大家讲一下啊,它是个压缩包,一个压缩包,然后这压缩包你们把解压。呃,这个是没有上线的,这是我们自己的插件啊,就是我们一个学员开发的,你把它解压之后,里面是有个叫做 d i s t 的 一个文件,看没有有个 d i s t 的 文件, 然后你在你的浏览器里面,呃,任何浏览器都是 ok 的 啊?来管理扩展程序,然后开启为开发者模式,开启完成之后把这个 d i s 的 这个文件直接拖进去,然后就可以了。

然后帖子的话你们就随便选一个就可以了,无论哪一个都是一样的啊,思路都是同样的一个东西,没有什么很大的一个差别。主要去做的话,呃,要的一些数据内容呢,就是关于他的一些 评论相关的一些信息啊,包括一些昵称啊,像他的一个评论内容地区,评论的时间啊,这些东西的话就是我们所需要的。然后具体怎么去实现呢?还是按照咱们爬虫实现的一个基本流程去做啊? 实现的一个基本流程,首先第一个啊还是做一个数据来源分析,先明确一下需求,这个明确需求的话就是明确采集的网站以及数据内容啊,我们一步一步来 确定一下采集的网站和数据,这个网站的话随便哪一个任意一个帖子都可以。然后我们今天选的是这一个关于好,关于这个,呃,美食的教学的啊,反正就是一个美食教学的一个视频, 那就它了。网址的话也可以给大家发一下,如果说你想跟我一样的话啊,也可以给你们发一下数据的话,就是评论相关信息啊。 ok, 这是第一步需求。然后第二个抓包分析,就是当我们已经确定了需求之后的话,我们要去做抓包,就相当于要去分析一下我们评论啊,评论相关的一些数据信息,是可以请求哪个链接啊?或者说在哪个接口里面有 这个抓包的话,它是通过浏览器的开发者工具啊, 分析对应的数据位置,这个的话就相对会比较简单一点,没有很复杂,它主要是分为三步啊,第一个的话是打开开发者工具, 第二步呢刷新网页,第三步通过关键字搜索查询。打开开发者工具的话,你只需要在浏览器的页面中啊, 按一个 f 一 十二就可以了,那就可以直接打开刷新的话,其实就是让本网页的数据内容 重新加载一遍啊。搜索呢,这个关键字搜索的话,嗯,就是需要什么数据你就搜什么, 什么数据就搜什么数据啊,就这么简单的三个步数啊,就能够确定我们想要的数据信息它是在哪里。那我们首先在这个页面当中按一个 f 一 十二, 然后的话我们刷新, 那刷新之后的话,这里面就有很多的一些请求出来了啊,你看这边的话有比较多的一些数据包啊,有多数据包的话,我们需要的内容的话你就直接搜就行了,比如说这个芦笋应该很难吃啊,这个是他的评论内容,那么复制他这个评论,点击搜索粘贴回车 啊,这个的话就是我们数据所在的一个位置啊,就这么简单啊, 点击搜索按钮,然后第二步输入搜索内容, 回车啊,回车之后的话,我们就可以看到这个的话就是我们的一个接口,这个话就是我们的一个评论接口,嗯, 就找到了啊,就找到了,就就这么简单啊,因为我们去做这个抓包的话,因为它的响应是没有做加密的响应,没加密的话我们去搜的话还是比较快的, 那在这个里面的话我们就可以看到相关的数据信息,我们也可以通过预览去看,那它的数据的话就在这个 comments 里面啊,然后这个的话是第一条评论,那它的评论内容,然后用户的 id, 评论的时间,还有地区是湖北的, 嗯,还有他的一些,嗯,昵称啊,啊,用户的一个昵称,打用户的 id 啊,这个用户的 id 对 不对? ok 啊,这个的话好像帖子 id 吧,还是什么?还是评论的一个 id 啊?这个的话是用户的 id 啊,这个的话是用户的 id, 就 基本那些输进去的话,我们都可以看得到,然后还有他的一个头像啊,他的头像,然后下面这个的话就是啊回复的回复评论的数据啊,这个是回复评论的数据,然后回复的内容,然后地区之类的啊,还有他的一些点赞数量。 那点赞数量啊,这个是十一的一个点赞。嗯,在这个地方的话啊,也能够看得到,然后回复评论的话也能够看得到十二条啊,这些都是相应的一些数据内容啊,所以我们的一个接口是哪个呢?这个啊,这个话就是它的一个数据接口啊,给个短链接啊,就不给那么长了。 数据接口 是不是就找到了比较快啊?就按照这三个基本步骤来就行了。打开刷新,然后关联字搜,你就搜那个评论内容就行了,你需要哪些评论,你就直接搜就行了啊,就可以找到数据的位置了。 ok, 这是第一步数据来源分析,然后第二步 代码的一个实现步骤,然后代码的实现步骤的话,这里要给大家说一下,我们常规的话可能会需要通过一个什么,可大家比较看的比较多的话,我们可能是通过一个 request 模块, 但通过这个 request 模块去进行的一个请求,是不是啊?它的一个步骤的话分为四步啊?第一个发送请求,那也就是模拟浏览器对于我们的 url 地址 发送请求。第二个获取数据,那是提取我啊,就是获取服务器返回的响应数据。第三步解析数据,那是提取我们需要的数据内容, 然后保存数据来干嘛呢?把提取出来的数据内容 保存到本地文件中,那这个是用 request 模块的一个基本的四个步骤啊, 啊,但是用他我们可能经常会用到这一个模块,但是呢啊,他的话会涉及到一个问题,就是网站目前的话,现在很多网站都会有一些反爬,对吧?现在很多的一些网站都会设置的一些反爬措施, 那如果你通过什么呢?如果说你想要使用这个 request 模块进行一个数据请求,对不对?那它的话要模拟路由器,那网站是做了一些反爬的话,那你就要去进行一个什么呢?实现一个反反爬的一个处理 啊。实现一个反爬处理,你就比如说啊,比如说我们这一个小红书的一个内容的话,它就会涉及到一个什么呢?涉及到一些加密的一些参数 啊,涉及到一些加密。就是你可能说看我们这个链接啊,他还是比较正常的啊,对,我们这个链接的话,相对也还是比较比较常规的一个链接,对不对?但是他的一个请求头的话,主要是这个请求头里面的一个 啊,请求头里面的一个参数就这个叉 s, 它是一个加密的。那就是我们请求头参数中啊,存在我们的一个叉 s, 它是一个加密参数,是需要进行一个逆向的。 嗯?什么意思呢?就是它的啊,就是你我们说了模拟浏览器嘛,模拟浏览器的话我们一般是使用的什么呢?就使用的是请求头参数进行的一个模拟伪装, 对,使用这个请求头相关的一些参数去做一个基本的模拟伪装,那他的这个参数的话,他是有加密的啊,加密什么意思呢?就是他某些参数事实是更新的 啊,是更新的,而且服务器会干嘛呢?会进行一个叫验,就是你的参数传递啊,就是你携带的一个什么呢?参数 对不对?不对或者说过期了啊,就是人家会不认的。那就是干嘛呢?就是你请求后是得不到 数据内容的啊,得不到数据内容,所以说你得实时获取最新的一个参数啊,实时获取最新的参数啊,但是呢,这个方式的话好吗?好, 好用吗?也好用,但是呢他的难度系数相对会大一些,像我们现在很多一些初学者同学,可能爬虫你还不是特别清楚,然后你要去学逆向的话,对吧?那可能会更麻烦,那我们就可以选择更加简单的,就是我不会逆向,但我也想采集数据。 对,你不会逆向,也想要去采集数据,我们可以选择使用哪一个呢?选择使用这个 jason 配置的模块,它的话就不需要你去做逆向,一样能够批量的去获取数据,而且采集的速度也比较快啊,也比较快啊,它的话是一个什么呢?它是一个自动化的一个模块, 模拟人的一个行为,对于浏览器进行相关的一个操作啊,包括获取数据, 对不对?他的话就相对于什么呢?我们是用真实的浏览器去进行一个数据获取,而不是做一个模拟伪装,就相当于我们他浏览器会自动返回这个参数吗?对不对?我们就不需要去拟这个参数了啊,他的话也是四步啊,第一步的话那就是打开浏览器 访问网站,第二个获取数据也是获取,第三步也是解析,第四个的话也是保存数据啊,也是保存数据。这两个模块之间的话啊, request 和我们的一个专用配置 模块之间的一个步骤啊,步骤的一个区别主要是在于第一步啊,和第二步 主要是在于第一步和第二步有所不同,因为后续的第三步解析和保存的话都是一模一样的代码啊,就相当于重点是在你拿到数据的方式不一样啊,你可以理解为就是他拿到网站数据的方式不同啊,拿到数据网站方式不同, 把一个是伪装成浏览器进行请求,而一个是直接用浏览器去获取,懂了吧?啊,这个的话会更简单,更好学,更好用, 哪怕你是个小白,你刚开始学做爬虫,你跟着这个思路,跟着这个流程来做,也能去实现的了, 而不像这个啊,这个的话你去逆向的话,你没有你,你对于爬虫不是很熟悉,然后对于逆向方面东西不了解啊,就是你就相当于是听天数一样,就看天数一样,感觉是很科幻,根本就看不懂,但这个的话哪怕你是小白,一样是能够学会的,而且你能够去复现的出来。 ok, 好, 代码具体实现的话首先我们第一步啊,第一步的话就是打开浏览器 访问网站啊,打开浏览器访问网站,来我们导入一下自动化的模块, from jason page import chrome page 然后呢打开浏览器 d p 等于等于它啊,就这两行代码,就这两行代码它你运行之后的话就会自动打开浏览器, 看到没有?哎,自己就把这个浏览器打开了。打开之后的话啊,我们直接去访问 dp 点上一个什么呢? get, 把我们的目标网址给它拿过来。呃。我不加后面那一段看可不可以。我就加这个前面这一部分啊,看一下它能不能正常访问。 这笔记不能浏览吗?看一下。那我那我就把这个全部加上,嘿嘿。那你不加全部的话它浏览不了啊 啊,你得加上全部的,要不加全部的话还不行啊。 ok 啊啊。这样的话就是我们的一个三行代码。这三行代码能不能理解?这三行代码比较简单啊?还是比较简单的啊? 就打开和访问就行了。就这简单的一个三行代码。只要你配置好环境就可以了啊。只要你配置好环境就 ok 了啊,你相当于什么呢?嗯相当于这个的话就实力化了一个浏览器对象啊,他的话就实力化 浏览器的一个对象。那我们是使用什么呢?是使用了一个 d p, dp 的 一个变量接收了这个浏览器对象。那就相当于我们这个 dp 的 话就是打开浏览器了,就相当于什么呢?这个 dp 就是 我们打开的那一个浏览器。 那你要对于什么呢?你要你要对于什么呢?对于浏览器进行相关的一个操作啊?其实就是什么呢?调用的是 dp 封装的相关方法 啊,它的这个 get 对 不对?第一批点 get 的 一个方法,它就是表示什么呢?表示的是访问网站, 那就是让浏览器得到一个网址嘛?得到一个网址,那得到网址之后的话,它就会自动进行一个访问啊,自动进入这一个网站,明白了吧?好吧,这个就是我们这三行代码的一个基本东西啊,基本东西 ok, 然后重点的话是在于什么呢?重点其实是在于我们的一个第二步啊,获取数据啊。重点是在于第二步获取, 其实重点是在于获取和批量的。对啊,我们用这个模块的话,呃,访问还是比较简单的,获取的话其实是比较核心的,以及解析和保存的话也是比较简单的啊,最重要的话就是,呃,翻页和获取这两个东西啊,就稍微麻烦一点。获取数据的话它里面有个方法叫做什么呢?监听数据包。 好,监听数据就是,嗯,监听数据包的特征, 当网站加载了含有该特征的一个数据包时,我们可以直接获取它返回的响应数据。 我们的一个评论的接口是哪一个?评论的一个数据包接口是哪一个?我们刚刚是不是通过抓包分析是不是找到过是哪一个来着?那是这个吧, 对不对?然后我们前面通过抓包的,你看是他吧?啊?是这个他,我们是给了一个短的链接,我们是给了一个短的他长,他完整链接是这么长的完整链接是这么长的, ok 啊,这是我们的一个接口啊,特征是什么意思呢?就是这个链接长啥样, 对吧?这个链接长什么样子?当我们这个。呃。嗯,特征的一个选择啊,特征选择的话我们就直接选这些 command 配置就行了啊,就比较能够代表代表能够代表这个链接的 链接的啊,最好是干嘛呢?最好是唯一的最好是唯一的什么意思呢?就说整个网站啊,就整个,呃这个页面,打整个帖子的一个页面, 整个帖子的页面的一个数据包。只有评论啊,只有评论的它的一个数据包。呃接口含有什么呢?含有这个配置杠啊?不,这个 combs 杠配置就只有这一段 啊,只有这一个啊,只有这一个接口里面含有这个字母啊,其他都都不含有,这个是最好的啊,怎么去判断呢?我们可以利用这个过滤啊,你可以把这个复制过来,然后粘贴过去,看见没有? 那这个话不就是我们的评论的接口吗?对不对?这过滤的意思就是,呃这个的话是过滤啊,就是过滤什么呢?给大家解释一下。过滤的 数据包中就过滤链接啊,链接吧,应该说过链接还有什么呢?还有这个。 对,就过滤我们的一个数据包啊,就是过滤我们这个链接里面还有这段制服的一个接口啊,它其实的话就相当于什么呢?就相当于只要是网站啊,网站加载的数据包里面含有这个内容的啊,含有这一段制服的,那我们就直接可以获取它的一个返回的数据内容 啊,这个的话不知道大家能不能理解啊?啊?这个能理解,扣六啊,有疑问的话可以扣五啊,就是网站加载了只要含有这个什么呢? common 杠配置的啊,就它链接里面含有这这个玩意的,那我们就可以直接拿到它返回的一个数据,这能不能理解?能理解,扣六,有疑问的话你可以扣五, 没问题是吧? ok 啊。然后的话它还有一个必要的条件啊,就是监听的话一定要在执行动作之前 一定要在执行动作之前啊。呃什么意思呢?就是在数据在数据加载出来之前先进行监听 进监听就如果说啊它数据加载出来了你再去监听是没有用的, 懂吗?一定要在数据加载出来之前,就比如说啊,举个例子,比如举个比较通俗的啊,因为现在刚春节过后啊,比如说你的一个什么呢?你要坐高铁啊,你要乘坐什么呢?乘坐高铁,你的高铁它的一个车次是多少呢啊? g b 二三幺二啊,这是你高铁的一个车次啊,高铁车次,然后它的一个发射时间啊,发射时间 发射时间的话是下午的两点啊,下午的两点对不对啊?这是你要乘坐的一个高高铁啊,那我们如果说你要去坐车的话,你肯定是干嘛呢?肯定是在 开车前嘛,发车前先干嘛呢?先去车站进行等待等待,对吧?等待我们的一个车辆的到来,是不是这个意思,对不对啊?并且的话你要坐的是哪辆车?是坐的是这个吧,他是不是有一个什么呢?有个检票窗口啊, 对吧?比如说 a 二三啊, a 二三是不是啊?你你先去车站等,然后等的话这个车辆是一个什么?是 g p 二三幺二,这个话就是特征啊,这个话你可以理解为它是个特征, 呵,你可以理解就是我们的一个数据的一个特征,一样的嘛,但你得等它来嘛。对,你不可能说我们已经发车完了你,你两点过十分你才去车站,那你只能等明天的车,你这这一趟车你肯定等不了了, 懂这个意思吧?所以我们一定要在数据加载出来之前,我们先进行监听啊,先进行监听,所以在访问之前嘛,我们先监听啊, 点 listen, 点上一个 star, 把它的这个特征我们拿过来啊,它的特征的话,我们就这个啊, command page, 然后呢?等待数据包的加载 点位置啊,等它加载,加载之后的话用个变量接收它。加载出来之后呢,我们就直接获取它的一个数据内容,获取响应数据啊, 只要我们数据包加载出来了,那我们就可以直接拿到它返回的一个数据内容来运行一下,给大家看一下。 嗯,这样的话,我们的评论相关的数据是不是就出来了? 那这个话不就是评论相应的一些内容吗?点了个啥玩意?点了个图片啊,点了个图片链接,看到吗? 是不是数据是不是就出来了?那就这么简单啊?就这么简单,所以它它核心的话就是你把这个东西捋清楚就可以了,捋清楚就可以了,这样的话我们就拿到数据了啊, 拿到数据之后的话,我们第三步解析数据。解析数据的话就比较简单啊,因为我们现在这里所获取到的话,它是一个什么呢?它是一个字典,看到没有?它是花括,包括起来是个字典。然后我们想要的数据在哪里呢? 我们所需要的数据是在这个 comment comments 的 一个列表里面,在这个列表里面,所以我们首先的话可以通过自点取值啊,通过自点取值的方法提取我们的数据内容,自点取值的话叫做键值,对,取值,根据冒号左边的内容 提取冒号右边的内容,左边的话就是它的键,右边的话就是它的值。 那如果它因为它是多层嵌套的啊,就是得一层层去取啊,所以我们最外层的话是什么?是个 data, 那 最外层是个 data, 先取 data, 再取这些 comments。 来,我们来写一下提取评论信息所在的一个列表, 取 data data 下面的一个它,那根据冒号左边取,右边先取什么呢?取这个 data 它会返回冒号右边的,那冒号右边的话,它又是一个什么呢?又是一个字典,然后再取这个 comments comments 的 话,它后面返回的就是什么呢?咱们的列表 啊,返回就这个列表,返回列表之后的话,哎,我们再通过负循环遍历提取列表里面的元素, 那这样的话,就它的评论的内容的话,我们就全部拿出来了,就全部拿出来,然后这个 index 的 话就相当于什么呢?就相当于这里面的每一条数据啊,每一个数据, 对不对?那我们就在循环,那他的话还是一个什么呢?他还是个列表嘛?不还是个字典啊,还是个字典的话,那我们就在这里面啊,提取具体的数据内容,我们也给他保存到字典中。 d i t。 比如说我们的昵称, 我们来看一下他的昵称是什么啊?这个的话是评论,我们先取一下评论吧, 给它放这里。评论啊,这个话是评论内容,对不对?然后这个话是评论的时间戳啊。 评论的时间戳。 然后这个 id, 这个 id 的 话不知道它是用户 id 还是什么 id 啊?大家清楚它是用户 id 还是什么 id。 那 location 的 话是地区啊,这个地区我们也拿一下。 地区啊,这个是点赞的数量, 点赞的一个情况啊,你可以拿一拿。然后这个的话 note 感觉是评论的 id 啊,可能是评论的 id, 这个是回复的 id, 应该是这个应该是回复的 id 啊,这个是评论的 id。 ok, 回复数的话是十二条。这个是回复数量啊,回复数量的话如果说需要的话也可以拿一下。 嗯,还有呢?呃,还有的话,我们昵称是在 user, user 下面的一个 nick, nike, nick, nike。 好。 它的时间的话,它是一个时间戳啊,这个是一个时间戳,我们给它转换一下。把时间戳啊,把时间戳转成日期。转成日期的话,我们导入那一个日期转换的模块 from datetime import datetime 这个的话是好秒的,十三位的话是好秒的。我们得给它除一千啊,得给它除一千。哎。 date, 嗯,这样子嘛。嗯,不用这个吧, 只用这个 insert。 我 给他除个一千啊,把它转成秒,然后进行一个转换,这个话就是日期。 那我们来看一下数据拿到的话有没有问题啊?来运行一下, 等它啊。嗯,好像。 嗯,那这里面的话给它转成一个字串,它现在是一个这玩意,给它转个字串, 看到没有啊?这个话就是我们评论相关的一些数据信息, 那没问题吧?那这是我们解析提取出来之后的一个数据内容啊,就基本的一些内容话,我们就给它拿到了, 那反正这个地方的话就使用了常规的置顶取值就可以了啊,用了置顶取值的一个方法保存数据的话,这个是固定写法,固定写法啊,固定的一个写法,我们导入一个什么呢?导入一个 csv 的 一个模块, import csv。 首先先创建一个文件对象, f 等于 open, 给个文件名 model w according utf 杠八 u n, 然后再用字典写入的方法, 文件对象加上我们的一个字段名,这个字段名的话就使用什么呢?使用这个字典的键就可以了,使用这个字典的键就行了,替换一下, 只要这个键名就行了啊,只要这个键名就可以了, c s v right, 然后下面的话写入表头,在我们这里面写入数据 阶梯, ok 啊,这样的话就可以了,所以它基本固定的一个形式的话啊,基本固定的一个写法,就是这样子的,给大家看一下呐,这是数据已经出来了,我把这个代码贴一下, 给大家来个格式啊,数据还有写入数据,基本上这个是 d i t 啊,就是我们放到一个字典里面,然后 c s v write, 点上 write 中, ok, 这个话就是我们提取到的一个什么呢?提取的数据字段啊,放到一个什么呢啊?放入我们的一个字典中, 然后这个 feel nice 的 字段名,字段名的话就使用什么呢?使用 d i t 中的键就行了,就你在这个地方你提取了哪些字段,你这里面就写什么东西就可以了啊,其他的话基本上就是固定的啊,其他的话就是固定的 啊,当然除了这种方式以外的话还有其他的方法,但我们用这个我用这个方法用的比较比较习惯啊,当然你可以选择其他的方式也行。 固定的一个写法啊,固定的模板就是你多写两次的话就知道了。所以其实你唯一需要改的话就是哪一个呢啊?一个是这个,一个是这个 打就跟这个的话就是看你要取哪些数据,因为你爬的不一样的话,你这样爬的是招聘网站的话,那就是什么呢啊?那就是职位啊,薪资公司、城市啊。对,那你这里的话也写写对应的东西吗? 你爬的是电商的话,那就是,呃,产品对不对,价格、评论、销量啊等等,那这里的话肯定也是相应的东西就是一模一样的。 ok, 那 我们来看一下它保存的数据呐,就在这里。对,这种话就是保存出来的那种 啊,就是保存到这个表格文件当中了, 没问题吧?啊?就这么简单啊,就这么简单,所以他就不需要你去做一些很多花里胡哨的一些逆向啊什么的,我们就按照基本的这个流程去走啊,按照这个基本的流程去走就可以了, 就这么简单。只要你知道我们数据在什么地方啊,只要你知道我们的数据在什么地方啊,我们流程就是这么一回事, 没有问题的话我们接下来就要去实现咱们的一个翻页的啊, 看一下这个咳, comment id 四九多少 课时 id 啊?那我们就拿这个 id 去了,这个话就是最后的一个 id 啊。这个这个话就最后的 id 会爬崩吗?呃,爬崩的话那你就要负法律责任了, 爬坡的话你得得法负法律责任的。呃,只能针对这一个单个帖子爬去嘛。你可以做批量的呀你可以做批量的一个帖子采集 可以做批量的帖子采集。你爬得了单个你才能做批量呀你爬得了单个就才能做批量呀。对,如果说你单个的话你都实现不了,那你就没办法做批量呀, 对不对啊?你要改帖子的话那改什么呢?改改这个链接就好了呀。对啊,换这个链接就好了呀。这个链接主要组成的部分啊。主要组成的部分就两个,一个是 id 一个是 token 啊。这个帖子的一个链接构成啊。这个帖子链接构成就这一个 啊,一个是这个 id 啊,还有一个的话是这个 token, 打帖子的这个 token 就 这两个字,这两个字在列表页面能够获取到的。找这两个啊在列表页面能获取到的。 小红书犯法搞多了。嘿嘿,是的,所以说一般的话用自动化满足你日常的需求就够了啊。你要走协议的话刚刚说的你要把人家网站爬崩了他要负法律责任的。小红书的话他很那个的。小红书很那个的啊, 这个地方写。好吧,那不说那么多了啊。就是这样子啊。那我们接下来的话做个翻译啊。翻译的话怎么去实现呢?首先的话我们基本的一个构建循环啊,当然你可以写个死循环啊,也可以写死循环。嗯 啊我们也可以构建一个什么呢?构建一个循环翻译啊。啊?你要爬,比如说我们爬前二十页,好吧?前二十页的一个评论 print 正在采集数据内容 啊,正在采集前二十页的数据内容,然后我们翻译的话啊,翻译的话我们要需要获取干嘛呢?获取啊?获取最后啊,最后一个用户的他的一个评论 id 啊,获取最后用户的一个评论 id。 评论 id 是 哪个呢?就这个, 就这个啊,它这里面就这个啊,这个话是最后的一个用户的评论 id, 就 它,嗯, j n data 啊,去它啊,获取最后一个用户的一个评论 id, 获取到之后的话我们需要做一个操作啊。 啊?为什么呢?因为为了翻翻译的话,就是我们定位到这里的话,呃,有一个什么呢?有个这玩意啊, 它有个标签可见啊,其实就是我们下滑的方式,就是网站批量采集的话,它是需要下滑才能采集数据。我这里的话给大家简单讲一下吧, 因为我们是使用的什么?使用是一个自动化啊,对于浏览器进行操作, 一般批量采集的话无非就这几种。第一个对吧?点击翻页对吧?它是有什么呢啊?一页、二页、三四五六啊,这种点击翻页你就只点什么呢?点下页就可以了啊?就点下页,对吧?进行一个翻页的采集啊。第二种的话就是什么呢?是我们的下滑加载更多 啊,下滑加载更多的话就是你需要干嘛呢?需要让网页页面进行一个下滑的一个操作 啊,这种下滑的操作方式有很多种啊?方式很多啊,很多种,对于不同的什么呢? 对于不同的网站有不同的一个方法啊。不同的一个方法,对不同的网站有不同的方法,就是方式的话有挺多种的啊,有很多种, 有有些,有些网站的话它是可以适用什么呢?适用啊,有些网站它又不能适用,所以说这种下滑的一个操作的话,要针对页面去针对网站去进行相应的一个操作啊。那我们这边的话是使用那一个什么呢?使用页面元素可见啊。 使用页面元素可见。就是为什么我要找这个呢?为什么要找他这个评论 id 呢?评论 id 的 话他有个这个,我给大家先写一下操作,先给你们操作一下 定位一下啊。最后一个评论的一个标签, next next page d p 点上 e l e 好, e l e, 对 吧?然后这个的话是会变的啊,这个是会变的,变的话从哪里来?从这个地方拿, 咱们是从这里去获取的最后一个评论的 id。 好, 获取之后的话,对吧?滑动页面可见啊, 页面可见, 可见什么呢?可见这一个 next page 的 一个标签, 那是什么呢? d p 点上它点上 to c, 然后 next page 就滑动到页面,能够看到这个标签,就是滑动到什么呢?滑动到我们最后一个评论能够展示到这个页面当中,因为你滑动到。呃,就比如说我们第二条给大家看下第二条, 第二条最后的一个评论是哪一个?最后一个评论是他,对不对啊?最后一个评论是他啊,他的,他的一个标签的话是哪一个呢?我们来搜一下 啊,你看到当我定位到这个地方的时候啊,当我定位到这个标签的时候它会加载第三条, 它会加载第三页的,就是你下滑到这个地方的时候,那它会加载第三页的一个数据。哇,就是它得适用于这种方式啊,不然的话你是可能拿不到数据啊。就是有有其他的一些方法不太好用啊,不太不太适用。给大家看一下啊。那 速度的话也比较快啊,相对也也也比较 ok。 嗯,他只有十五页吗?应该不止啊, 那这个话就是前二十页的一个评论数据内容,看到效果的话扣个六啊。看到效果的话扣个六。

三六零作为国内顶级的安全防护公司,他们旗下的验证码究竟设计的怎么样?想要用协议爬虫自动过掉又有哪些难点?遇到这种验证码图片乱码的情况又该如何进行还原呢?今天一条视频带大家学习玩牛逼, 更多爬虫逆向学习视频、爬虫技术学习文档以及项目实战公开课,我都放在了我的抖音粉丝群。 我们来看的是三六零天翼滑块验证码,首先右键去选择检查,打开开发工具,断在了这个位置,第八格可以给他右键,一律不再此入暂停给他过一下。过掉之后,这里点击登录就弹出来了这样的一个滑块窗口,我们来看它是在这个数据包里面会返回一些信息的。呃,缺口图,背景图,背景图呢,是一个乱序的图片, 它是切块之后乱序了,所以我们要去给它做一个底图还原。呃,这里的话还有 token 值, id 值和 key 值,这个 key 呢,后续也会用到。那我们来看一下它的一个参数吧, id 固定的,这些都是固定的,然后时间戳呢,可以给它动态生成,这里有个散值,需要去给它本地生成一下。我们来看它具体的一个生成位置, 给它下上一个叉圈断点吧,来这里复制一下路由,下上一个叉圈提取断点。好,这个地方呢,给它重新刷新一下,断在了这个位置,这里我们是 看不太懂这个代码的,他是混淆之后的,所以我们来去看到中域啊,中域这里面的话呢,是有了这个站址的,所以往上面找。好,往上面跟站。这里面有没有呢?这里面的话也有,那再往上面找呗,这里有没有 啊?也是有的,那再找上一个,在这个位置好,这个地方他也有吗? 这个好像不太对啊,应该不是这个。那么在这里面呢,这里面的话呢,也是有的啊,那就再往上面找,找到这个 set 这个位置,这个位置他就已经是没有那个占值了,所以我们就可以确定他应该是在这一步生成的,在这一步生成的,他在这里所对应的那个对象是谁啊?对象是这个什么?八、 d 七,我们来去搜一下他在什么地方生成的, 在这里生成的。那么就给它向上断点嘛,向上断点之后,这个叉圈就可以给它去掉了,来重新刷新一下,断在了这个位置,断在了这个位置。我们来看它的一个流程啊,这个地方它是什么东西? r, s, o, y, i, 然后这个呢? 一个函数,然后这里面的话呢?是什么东西? set request body, 它传入了什么参数啊?传入的是这样的一个参数,并没有散值,那么走了这个逻辑之后,那个散值应该就出现了 啊,就出现了这个散值,所以它就一定是在这个方法里面去生成的嘛,那么就可以把这个给它拿过来跑一下,看它是指向的谁, 指向的是这个函数,那么这里它它又是给它定义了一个对象,去取这里面的一些参数值生成啊,那个时间戳,包括这些都是一些固定值啊,这个值,这个值也是固定的,然后这里的话又走了一个排序的逻辑,然后这里的话又走了一个排序的逻辑,然后这里的话又走了一个 m d 五加密, 这个占值,你可以去看他的一个结果啊,他其实在这里可以看到,我们可以看一下啊,他的一个组成零到九位的 f 三十二位, 他大概率其实就是一个 m d 五,对吧?就我们这个地方,你可以把这个代码给到 ai, 让他去给你分析一下,他会给你出相对应的逻辑的。我这里的一个提问方式可以给他看一下在这里 提问方式啊,这个是参数复制过来,然后加密入口,这个是我解了一下,就是通过浏览器给他解了一下这个加密入口。呃,指向的函数是谁呢?指向的函数是这个函数,然后交给 ai, 它就可以去帮你分析。哎,这里可以看一下它所分析的一个结果 啊,分析的一个结果签名生成,是吧?这里是常用的参数排序实现,先去排序,然后再去做一些处理嘛。它这里的 gs 生成,我们来看一下 gs 的 一个逻辑,懂吗? 呃,它这里是直接给了 python 的 一个逻辑啊,对,就整整个这样的一个逻辑,给它构造好这样的一个参数字典,然后交给了这个函数, 走了这样的一个排序,然后再去做了一个处理,最后去给它通过这个 md 五来做一个加密,就能取得这个散值了。那么散值得到之后,我们来看一下地图还原这个流程,这里可以去把断点先给它全部去掉吧,去掉之后地图还原呢?它肯定会走这样的一个 chaos 断点,我们要给它下上下上之后这里也可以先给它过一下,重新去刷新,就,哎,没断住吗?啊?这里是动啊,这里画布啊,画布 好,画布 combs 断在了这个位置,那来看一下这里面是什么东西啊?这个地方它大概率是那个 get contest, 这里应该是那个二 d, 就是 一个非常标准的 combs 断点,那么这里我当时也是去让 a 给我分析的,这里是我的提问方式。 呃,我看一下啊,不是这里啊,这个地方是直接给到 ai 的 ai 的 一个流程。 好,这里是吧慢序的,然后这个是那个断点的位置,然后把那个原代码给到他之后,让他去给我分析分析。走了这样的一个逻辑, 得到了这样的一个流程,先会制原图,然后获取还原顺序数组,这里呢是获取切分顺序,这我们主要是要拿到这个东西啊,这里他呢是对那个 s r c 来去做了一下这个呃处理啊,他是把那个 就图片链接做了一下切割,然后去取到它里面会有这样的一个纸,我们可以看一下这个地方可以看一下在这里面 它是对这个图片来做了一个处理啊,这个链接去得到这个值,来去当成当成一个 key 值,所以在这个地方我们来去搜一下它的一个获取积分顺序的地方,来给它复制 搜索,如果说它每次都变化的话,你就要去找它具体的一个位置了,我们这里没变就可以直接去搜索加上断点,然后就给它断住,断在了这个地方来去先执行一下, 执行一下,看他能够去得到什么,就能够去得到这样的一个还原顺序了。得到还原顺序之后,这里面常用的参数就是那个 k 值嘛,就是通过图片链接来去给它获取到的,这个是指向的一个函数位置 跳到了这里面来,跳到了这里面呢,你可以把整个函数同样也是交给 ai 啊,让他就给你还原图片。我这里呢也是直接交给 ai 的, 在这个地方用的是一个国内的 ai 啊,这里的话呢是后面, 嗯,给到了他的一个指向函数,就是把那个代码给他复制过去之后,在这他就可以去分析了, 整个来说分析出的一个结果是这样的一个结果,然后总结通过白纸来去实现,就能够去还原这个图片的。但他后面我去测试了一下之后,这个代码有点问题,后面就交给他重新去生成了。一次他就给我重新去出了一套代码啊,这样子就可以去还原这个图片了,之后这里面也给他取消断点,也给他取消掉。 这里啊给它取消掉,就来看这个滑块儿滑块儿接口了,这个滑块儿接口的话来给它滑动一下,在这地方有个 check check 里面它里面的参数主要是什么呢?这个 report 这样的一个参数, token 值和 id 值都是可以通过获取这个数据包里面的一个响应内容来获取到的,所以就主要是看什么呢?主要是看这个 check 里面它的这个参数啊,这个是我们所需要去给它动态生成的,所以同样也是给它下上拆圈提取断点,在这里去给它下一下, 下上之后来去滑动一下这个滑块距离这里我是直接把这个代码交给大家分析,它后面给我出了个结果,是说在这里面呢会有一个 report 的 一个生成位置,冒号这个地方它是直接在这里生成的,所以我就直接在这里给它下上断点,加上断点之后来跳进来啊,这里是过了 a j 来重新滑一下,跳到了这个地方,跳到了这个地方之后,同样来看它这里面的东西吧, 其实这个地方你看它没什么用啊。然后这里面的话呢,一个函数嘛,这个是一个 e n c 嘛?主要是看这里啊, jason 是 群 five, 它里面是, 那么它里面所去转换的对象呢?是这个呃,鼠标的移动轨迹,这个可以通过 ai 让它去给你生成一个鼠标移动轨迹,然后交给了这个 函数之后就能够去得到这样的一个啊密文值了。那么可以看一下它所指向的是什么?什么逻辑啊?看一下它是指向的谁指向的是这个啊?这里有个六 g s in craft, 下上断点吧,下上断点进来,你可以看一下这里的这个 g s in craft 是 在哪里面,它在这里啊,你可以把整套代码给它扒下来, 拔下来之后来去给他六下就可以了。在这里面呢,又是走了这样的一套逻辑, a t o b 这东西也是可以交给 f n c 的, 你真自己去看到呢?不太好看啊,他是直接把这个 k 就是 我们刚刚所在那个 a u t h 数据包里面所看到那个 k, 给他用了一下拜斯特斯解码,解出来了一个这个 r a c 的 公钥啊,给他设置了一下公钥,然后这里是通过 m t 五去加密什么呢?加密这个 id 值和 token 值它俩相加的一个 结果去做了一个 md 五加密,然后最后的一个流程呢,是将整个的一个鼠标移动轨迹的解散格式串去加上呃这个 md 五之后,这个结果去通过 r i c 来做了一下加密,最后是得到了这样的一个密文值。这个我们也可以看一下 ai 给我们的这个分析啊,关键代码段,然后它整个的一个解 析对象,然后就给它解码代码,设置公钥 md 五去加密他俩的拼接值,然后再去通过 r s c 点 n 块的去加密啊这个鼠标移动轨迹的这个串,然后去加上这个签名密钥,最后去得到这个结果。 在这里在本地去生成的话,我是直接去扒的这一套代码,扒的这套代码的话,我们来看一下这个地方是原代码,因为我直接去扒代码,他当时会有一个加密的,加了这样的一套逻辑去做了一下处理啊,这个地方呢是 那个入口函数啊,给它构造了一个入口函数,有了这样的一个对象,然后在这个地方呢是设置了公钥嘛? 这里面的话呢,是给它做了 m 六五加密复制,训了一下,这个是直接导入的那个 c y p o g s 拼接铭文,嗯,在这里去做了一个加密结果它如果说是长字不串的话呢,我们就用的是这个呃, in crabson 这样的一个方法啊,就可以了,就能够去得到这样的一个结果了,得到了密文字。我们来看一下这个 python 里面的一个逻辑啊,首先呢 在这地方先去构造这个获取散值的一个参数字典,然后去给它通过 md 五加密啊,得到这样的一个散值,得到了散值之后,我们就可以去获取这个对应的一些图片链接,以及什么 id 值、 token 值和 k 值了, 再去把这个背景图给他做一下还原。这里我是单独去创建了一个啊还原的图片类的,去做了一下还原,给他还原成了一张底图。就比如说我们这个地方啊,给他还原成一张正常的图片, 然后去交给这个函数去做了一下识别,这里面的话呢是用了 d, d, d, o, c, r 来去做了识别,那么这里为什么要去给它除以五百四十四乘以三百呢?是因为它的一张底图呢是五百四十四的,但是它在页面上面啊,所显示的图片呢是三啊,这个地方不对, 是三百的,所以要去给它做一下这个比例,得到识别之后,我们就再交给这个生成鼠标移动轨迹,这个也是让 a x 生成的, 得到了鼠标移动轨迹,我们再来去给它转成 json 格式的字母串啊,构造上这样的一个什么,呃,参数字典嘛, key 和 talking, 还有这个 id 值,给到了这个方法, 做了一下 rsa 文件的编辑,然后去给它调用了这边的这个方法,传入了这里的一些参数,得到了这个密文值, 得到密文值了,最后去请求这样的一个缺口,呃,请求这样的一个验证码接口,它的一个 data id 值, token 值,这个呢是滑动距离,然后这里的话呢是那个 report 的 一个值,之后去得到结果,它在这个地方我们可以先全部断点给大家停用一下 来看一下啊,这里如果说在这里是未通过的话,那么它在这个地方是一个 呃 force, 如果是通过的话呢?在这里是 to, 我 们来去通过看一下它这地方是一个 force, 还是 to 来看它这一次的这个滑块是不通过来右键去运行,看一下, 是吧?为 to 的 再跑一下呢?也是为 to 的 这个识别成功几率还是非常大的,那么这个就是呃,我们通过呃 ai 来辅助啊,整个去逆向三六零滑块的一个流程。