粉丝1675.6万获赞6.5亿


逼自己三天学懂游戏封包逆向存下吧,很难找全的,本视频号十三秒,制作时长四个小时,带你学习游戏封包、逆向封包、加密解密,铭文包,现成发包, 抓包,拆包、组包发包。今天呢我们主要讲一下封包协议啊,讲这个加密解密,现场发包,讲一下这些游戏中的整体的一个流程啊,以及这些简单的概念啊,以及现场发包的入门,这是咱们今天的任务啊, 那今天如果说你把原理彻底搞通的话,其实任何的一个软件或者是游戏的话,其实你都是可以搞定的, 但是几乎没有这样的人,是吧?没有这样的人说我把原理搞通之后立刻就,但是你还需要一定的锻炼呢。扩展来看的话,就是本周需要做的。我们先来看什么是封包,什么是协议,什么是封包呢?封包就是按照某种协议组成的一段,自结集 按照某种协议组成的一段,这些节啊,这个很容易理解,对吧?那么为什么要按照某种协议呢?这个一会咱再说,那我们说所有的联网的软件,包括网络游戏扣端服务端进行通信都是通过封包来进行的,对不对啊?大家可以想象成什么呢?想象成两个人打电话, 那封包就是什么呀?就是我们打电话时候说话的内容,而协议呢,就是封包的语言,比如说两个人打电话啊,一个人用日语,毛细毛细那面,一个用英文啊, what are you talking? 听不懂,对吧?那没有办法交流,所以说他们两个人要什么协议好, 扣你七八,那么他们两个要定好协议,本通电话我们必须采用中文,这样就可以正常交流了,对不对啊?这就是协议,这就是封包,一句话概括网络软件,嗯,客户端跟服务端是通过约定好的协议用封包来进行通信的, 就这么简单啊,啊?像咱们正常来说的协议呢?其实你像什么 tcp、 u、 d、 p 啊等等等等,这这些协协议,那我们可能说没有感觉到什么比较复杂的设计,对吧?那还有呢?像咱们现在很多一些游戏愿意用一些什么 pro, two, buffer, 到时候咱们去 看,到时候咱可以分析一下,对吧?嗯,他等等等等的这样的一些情况,咱们都要去学习一下。好的,我们现在了解了什么是封包协议的概念,我们来了解一下什么是收发包?鼠标怎么总那什么,来了解一下什么是收发包。 那网络游戏和单机游戏的区别在于什么呀?在于时刻要和服务器进行通信,对吧?也就是收发包, 那我们发给服务器的叫做发包啊,我们收到服务器给我们的叫做收包,但是这是相对于我们客户端而言的啊,那你反之,服务器的话正好是跟我们反过来。我们举个简单的例子,我们到一个游戏里面啊,到一个游戏里面,我们说啊喊,喊一句话喊你好, 别的玩家为什么可以看到我们的喊话内容啊?那道理非常简单,它的流程是这样的啊,流程是这样的,首先我们要什么?发送一个喊话的封包给服务器啊?喊你好,给服服务器,然后服务器收到我们的封包以后怎么办? 服务器收到我们的封包以后它是什么样的反应? 服务器收到我们的红包以后,他的反应是,哎,先给我们回回复一句, ok, 没问题,一般情况下会会这样啊,就是正常的情况,我们发一个服务器一般会给我回个包的,回个包, ok, 没问题,当然他有他也有什么可能啊?就是非常高冷的说,哎, 不搭理你就,我就低头办事就完事,但是这种可能性不大,对吧?然后呢?服务器会什么?执行他服务器上面的代码来判断我们的周围都有哪些玩家啊?比如说判断三百米,他判断我们周围三百米有哪些玩家,这是服务器去去运行的代码啊。 然后他执行完毕之后会把这个封包啊喊话你好谁谁喊你好的,这个封包发送给这些玩家,这些玩家收到服务器的这个封包以后,就看到我们喊话内容了,就是这样的一个过程 啊,就是这样的一个过程,是不是这样的话,我们简单就了解什么是收发包了啊?收发包了,那我们想要知道 调用什么函数来实现这些收话包的功能呢?我们在学习前先把这三个函数先简单的了解一下,因为前面咱们可能多多少少也学过了,是吧?这三个函数就是我们的三大快递公司,是吧?肾的肾的兔, send 啊, send to, 还有还有什么?还有我们的这个 wsa send 啊,大小写要区分好,这是我们的三个发包函函数,就以后的我们的这个功能,想发包的话都是通过这三个发包函数去发的。 还有什么三个收包函数,它对应的三个收包函数, receive 啊,还有什么 receive from 啊,对吧?然后 wsa receive 啊,比如说我们以后分析收包、发包永远是离不开这六个函数 啊,每一组是对应的啊,每一组?什么叫做每一组对应的?他用 send 发包的话,他就用 receive 收包,就用 receive from 收包啊,用这个 wc send 发包的话,就用 wc receive 收包啊,那这是一个对应的关系,那比如说我们 不用说比如了啊,我们正常情况下这两种大家可能说用的比较多, send to 可能相对来说看的比较少,其实一样,其实一样。 那具体的这些函数的一些情况,以及甚至说这个收包收包,因为现在你们接接接触的相对来说更少一些啊,那我们后面呢,都会慢慢的去讲到啊,先复习,慢慢的去研究一点来。 好的,我们现在了解了收包发包啊,了解了什么是封包协议,我们来看一下什么是心跳包,心跳包,当然我们前面其实也多多少少讲过了,但是呢,在这里面呢,重新把概念说一下,大家可能有更深刻的一层的理解。 那心跳包呢?其实他也是什么?他也是一种封包,不过只是一种比较特殊的封包啊, 是封包啊,但是相对来说比较特别而已。那他可以证明我们的客户段子呢?还活着,因为顾名思义,他说的什么心跳证明你还活着吗?举个简单的例子啊,两个人打电话还是两个人打电话?第一个人喂,嗯,第二人不吱声,第二第一个人喂,第二还不吱声,然后你喂喂喂,你在不在?然后还还不吱声,啪,挂了对吧? 他没有得到回应的话,那他肯定是是是挂电话呀,谁给你打电话之后,你拿起来手机之后一接,然后说了三声回,还没人回,你肯定是挂的,对不对? 那心跳包也是这样的道理啊,心跳包一样,那当服务器给我们发包的时候,服务器给我们发一个包,哎, 客户端在不在,然后我们没有回回他,对吧?这时候服务器不会立刻给我们断了,如果一个包说我们没有回他,他立刻给我们断了,这有点霸王条款条款了。 嗯,他可能是太严重了,一般情况下他都给我们发两个包,三个包,或者更多的时候,他才会考虑把我们踢掉线啊。给你发个包你不回我发个包你不回我发个包你不回我。卧槽,这人掉了线了对不对?程程程序要不然是崩溃了,要不然是蓝屏了,要不然是掉是掉线了,给你踢掉线了。 或者是这这小子在做拖鞋,挂心。心跳包没有处理好啊,那我也得给他踢掉线,对不对?就这这样的情况,那么像这种情况呢? pc 的 话呢?他心心跳会特别多, pc 的 话会特别多,你会发现你断网一秒两秒啪就掉了,对不对?心跳特别多, 但是这个比如说安卓端,他可能会就比较少,安卓端会比较少,因为什么?那你网络信号他没有 pc 这稳定啊? 对,我不可能说保证每次信号都都那丢包的频率会比较高,有的时候突然一下五五五秒,十秒,信号不好,可能包都丢了,所以它的宽松就特别大,或者说它的心跳的间隔就特别大,我一个就整个游戏里就一个心心跳包每个三十秒发一次, 对吧?这样的话它不就宽,宽松度比较大,但 pc 里面可能是有两秒发一次的,有十五秒发一次的啊,有五分钟发一次的, 然后这些东西混合在一起,还有几个是随随机发的,对吧?咱们就比如说拿这个 lost ark 去举举例子, lost ark 里面心跳就是像我说的那样,跟我刚才说的是一模一样,有两秒一个的、十五秒一个的、二十秒一个、六十秒一个的,还有一个随随机发的,随机发的是看福气什么时候给你来,你什么时候回, 还有一个纹五分钟的,就这些,总共是六个还是七个,我记得,对吧?那你这个中间任意错过两个,可能啪就给你踢掉,踢掉线了。那我说心跳包有什么好处呢?刚才咱也说了,他在很很大一个程度上可以防止吗?防止脱气挂,对吧? 防止脱机挂的有这这个效果啊。那另外呢,还有什么样的效果呢?他可以隐藏一些数据在心,心在心跳包中啊,心跳包中,其实心跳包的时候他也可能会发送一些数据来进进行一定的验证啊,心跳包里面也有可能发一些什么机器码啊,这是可能的啊。 然后呢,我们说这是第二个功能,还有可能发一些什么机器码啊?这是可能的啊,啊?然后呢,我们说这是第二个功能,就是他可以把你判断下线, 比如说像一些老的游戏传奇二之类的,我刚开始不也跟你们讲过吗?你在传奇二里面,如果说你电脑突然断网,或者是游戏崩溃,或者是蓝屏死机的时候,你的游戏是不会立刻掉线的, 你会发现你的游戏可能在游戏里站个三五分钟都有可能啊,像我以前玩游戏的时候,我,我就是在一些地方还看到有有人,有人站着不动了,其实你过去打打他,把身上装备全包了,对吧? 所以说呢,这种心跳的话,对游游戏下线的一些安全性也是比较好的啊,他心跳总有这些作用。 好的,咱们第一节课最简单的一些概念讲完了,咱们可以休息一分钟来简单解答一下,刚才哪一些概念不懂啊? 给一分钟时间。好的,我们了解了封号的概念,我们发现啊,发包函数非常的重要,对不对?发包函数非常重要啊,我们这里面说的发包函数呢,不仅限于发包函数,收包函数也一样重要啊, 比如说我们监听了发包函数,什么叫监监?监听了就是我顾客的发包函数啊,因为顾客,咱们下周 下周的主题是五五种顾客啊,异常跟五种顾客,下下周主要的知识点是我们讲的,对吧?那么现在呢,先不用太在意,就是拦截了啊,在封包的,在这个发包函数的这个位置,把他的所发的所有的包全拦截出来啊, 你可以认为是监听了,因为两个人打电话吗?啊,一个人跟另外一个人说的话,我们说封包就相当于说的话,那你在这个地方监听一个人的电话,是不是把他所有信息都获得了呀?所以说我们说监听了发包函数就相当于掌握了所有功能实现的方法 啊!我们在游戏中任何的功能最终都是组成一个封包发给服务器的,那你监听了发包函数就相当于掌握了所有功能实现的方法,对不对啊?同样他也可以返回 call 里面,那我们现在只聊这个封包跟协议。 监听了发包函数相当于掌握了所有功能的实现方法,那么可以替代所有的考了就所有的考,其实我们都可以用这个封包来做实现。同样我们监听了收包函数,是什么道理呢?监听了收包函数将相当于获得了所有的数据。 大家说收包函数怎么会有所有的数据呢?因为啊,我们的游戏在打开的时候其实就是一个空壳, 就是一个空壳跟一些基本的算法,跟一些出土化的基本的藏量。而我们所有的数据本质上都是在我们连接福气以后,福气给我们发送过来的, 无论是你周围的所有怪物信息,还是你的人物的一些信息,都是福气给你发过来的 减损而已。所以我们监听了收包相当于可以获获得所有的数据,比如说 receive 这个位置啊,实际情况下你是可以拿到所有数数据的,不过 很难啊,如果说你能在这个位置处理明白的话,分析清楚所有的情况的话,那相当于是脱机了,对吧?你们现在不用先把自己的高度定的那么高啊。好的,那我们说 同时呢,我们说通过调用关系,我们还会知道可以通过发包函数返回到所有的功能函数。那么其实了解这三点之后,我们就会发现了一件事,发包函数非常重要, 甚至说连新手都知道的情况,对吧? ctrl 加 f 九哈,甚至下段 ctrl 加 f 九 b p 顺的,对吧?包括所有的新手,呃,拿到说 ceo 的 根本就不懂什么 c 加加,不懂什么编程的时候都知道第一句学 b p 顺的啊,然后 ctrl 加 f 九, 新手都会的情况,那么这种情况我们软件还是游戏公司的话都会来进行防护,那怎么防护呢?防护的目的就是保护我们的什么发包函数,对吧?针对发包函数进行保护的方法,第一个就是把我们的 函数给尽量的隐藏起来啊,自己升值,然后加上对我们说可以第一件事就是尽量的把函数给隐藏起来。那刚才同学说的抓包工具啊,比如说像比较什么什么著名的这些什么什么 we 啥玩意这些抓包工具,他是怎么怎么怎么抓的包 啊?他能抓包的原因是因为你的发包还是固定在某一个位置,然后我直接去呼克你,然后把你的封包信息全输出出来,仅此而已,对不对? 是因为这样,但实际情况下,那都是什么很很低级的游戏或者是软件,才会直接让你能够互克到铭文,互克到这个真正的位置。而我们正常来说,做防护的话,第一件事就是要把函数给尽量隐藏起来,就是你上肾子上下断断不到, 在肾子上面下断断不到,那为什么呢?那为什么呢? 啊?而且大家可能会发发,发现企鹅这游戏大部分全是发包含三个发包函数下断断不到,那你稍微古老点的咱不说了,对吧?你像我一五年,我以前呢,咱们说一五年我以后呢,你会发,发现基本上在发包函数上面下断,断不到了就不断,那为什么呢? 这个就是重新写了个发包函数而已啊?重新写一个发包函数而已,因为我们说这个肾的呀, 这个肾的呀,这,这是个肾的,对吧?它里里面呢,它也是有代码去实现的,它 cpi 里面有据,也是有具体代码去实现的。然后呢,我们 我们在肾子上面下个段,他只要一掉这 api, 我 们就可以断到他的所有的功能了,是吧?但是呢,如果说他再写,写一个,写一个肾的肾的肾的企鹅啊,肾的企鹅,对吧?我写一个肾的杠企鹅,然后里面把原来肾的的代码全拷贝过来 就可以了。但是说那,那他为啥是拷贝过来?因为啊,他整个身子的纹流程他改不了啊,里面的里面的代码改不了啊,他只能什么?只能,只能微改, 只能微改,因为他整整体纹流程改不了,还是要调那些含函数,还要取那些子,还是要走那个过程, 改不了。所以说他实现的方法就是什么把肾的里面的代码给拷贝过来啊,如果有兴趣可以进行微改,然后把这个含函数放在这,然后我们去发包的时候调上它就可以了 啊,然后呢,在这个里面呢,他调的有一个是什么什么样的函数啊?叫做 websp, 肾的就是更更内层的函数,更内层的函数 是这样的,所以说我们知道这是我们防护的时候能够做的第一件事,把函数重写, 函数重写,道理非常简单,把里面的代码 copy 出来啊,重新贴到一个函数里面。我们在调用肾的时候,不调用原来的肾呢?调用这个肾呢?就完事了啊? 那里面的肾的里面的代码并并不复杂,对吧?甚至我们自己都可以去翻译,你可以把里面的代码翻译一下,自己写下,或者直接把里面的会编贴贴进来改啊。但是我们自己没有这个必要啊,没有这个必要,那好,那如果说 啊,如果说一个肾的发包函数重写了的话怎么办啊?对于你来,你来说,你说我下段它不断了怎么办? 其实没有什么怎么办?他不断了的原因其实就是什么重写,重写对于你来说其实相当于什么? 他换了个位置啊,代码还是原来的代码,可能会有微微小的变化,然后本来的肾子放在那,现在他又另开辟了一块空间,放了一个新的肾,仅此而已 啊,仅此而已。那我们明白了这个原理之后,大家说怎么去找他重新写了肾的?你们的想法,第一想法是怎么想的啊?如果说你重写了个肾的,我怎么去去找你说一说, 看看你们的想想法啊。现在比如说我在肾的肾的 two wc, 肾的上面下段都不断,这个时候你怎么办?我总得找到发包的突破口啊,对,搜索特码吗? 说我特特征码对吧?对,你看你们两个这一下就把两个方法全说出来了,一个是什么?一个是里面我们有一个 wsp 肾的,我们上 wsp 肾的上下段,可以啊,也也可以。怎么搜索肾的里面的特征码?都可以啊,都可以。 我们先来简单看一眼啊,要不然你们可能不知道哪个地方是 wsp 省的,无论是哪个系统啊,不同的系统,不同的系统。记得一件事啊,不同的系统它的发包函数是不一样的,发包函数里面你能看到的是不一样的, 懂不懂?不同的系统你会是看到是不一样的?我们来看一眼啊, wsc 会不会也被重写?嗯,小莫这个回答啊,其实我跟你说会, 其实其实是是会的,会的,但是会的一样会也是搜搜索特登码,我还没有见过我搜索 wsp 肾的头部特登码搜不到的情况啊。我,我给你们讲讲一下最最复杂的情况啊最最复杂的情况, 我给你们讲讲一下最最复杂的情况最最复杂情况,我们是先搜肾的特征码嘛,对吧?我发现收到特征码太多了,太多了,然后我就先没管,然后呢,我,我就去找 wsc 肾的。 wsc 肾的之后呢,我下了个段,下了个段, 发现段段回来的位置不对,段回来的位置不对。这个这个时候呢,我就怎么样去搜 wsc 肾的里面的特征码,这是我说的最复杂的情况啊。 三步,第一步,搜肾的特征码没有收到啊,不是没有收到,收到太多了,我判断不出来哪个地方。是啊,也就暂时先没看。然后呢,去 wsa 肾的里面, wsp 肾的里面去下段,发现什么?发现 断回来的位置不对,这时候我去搜 wsp 肾的了,结果收到了四十多个地方的特征码,我把四十多个地方同时下断,然后呢,里面有五六个会会断,最终找到一个地方是真的,它是把 wsp 肾的里面也重新写了 啊,就是这种,这种情况,这种情况,这是最最复杂的,一般就是企鹅的,要说起名,起名我就是企鹅吗?一般别的这种重写或者重重写这么多的不多,一般都都是企鹅的,就是这么个情况啊, 好,那我们现在说了,我们说当我们想做的第一件事的吗?第一件事是可以重写发包函数,重写发被写了。重写发包函数的时候特征是什么呢?就是你在肾子上下段也不断,在肾子上段也不断,在 wc 肾子上面下段也不断,这个时候 我们的考虑就是两种方法来去找到我们的真的发包函数,要不然是搜索特登码啊。我们先来看一下, 好,先到我们的肾的肾的,这是是以前咱们学对战的时候写的,乱七八糟的备注都不用看了。 好的,这是一个肾的,肾的代码呢,并不多,从头到尾呢,就这么点啊,就这么点啊,就,就这么点,当然还有里面有一些跳是因为执行失败会跳飞的啊,那个咱们先不管,这就是他的核核心的代码,就这点啊,里面调用了几个考啊。好的,我们在这里面看到了,他是这样的, 嗯,他是他是他是这样的,那我们比如说现在下下段他不断啊,另外两个发包函数下段也不断的时候,我们说,哎,我找不到发包函数了,这个时候不要慌 啊,不要慌,第一件事我们说我给他给把这个把流程给你们写写,写一下啊,一肾的肾的酷, wsc 肾的 下段都不断啊,这是,这是遇见的情况第一步对吧?第二步怎么办呢?第二步我们可以什么附加一个其他 肾的段的进程?什么叫附加一个其他段的进程呢?比如说我们现在你附加了一个游戏 a a 啊,它不断,对吧?这时候呢,我们说,哎, a a 不 断的话,我们来附附加我们的 口袋球啊,来附加我们的口袋球,然后呢,借用它来找到我们的什么 wc a 肾的啊?怎么,怎么去借用它来找到呢?这样 在这里看啊,它调用了第一个函数啊,第二个函数啊,第三个函数,第四个函数,总共就调用了四个。第四个这个地方你会发现有个虚函数,有个虚函数,那我们的这个虚函数呢?它就是什么?就是 wc 肾的 这个虚函数是 w s c 的, 它并不一定是一个固固定的啊,固定的,无论是三十二位,还是不同的系统,还是个六十四,这个位置不一定是一个固定的,是 call e s i, 可能是别的,但,但是呢,这个地方肯定是个虚虚函数啊,我们在这里面呢,找到这个虚函数,下个段 好了,它断下了,它断下了,点 f 七进来,这个地方就是 w s p c 的, 这地方写上 wsa, 这个地方就是,啊,不对,这就是 wsa, 是 吧?我们三大法宝函数是叫 wsa 啊,更内层,他们三个的共用的更内层叫 wsp 啊,好的,我们这里面就来到了什么 wsp 肾的头部,这就是 wsp 肾,而且你可以在这里可以看到有个字母串,是吧? wsp 肾的, 这就是 wsp 帧的。所以说呢,当我们附加一个其他帧的段子进城之后,什么通过虚函数找到 wsp 帧的啊?是不是?这就找找到 wsp 帧帧的了,然后怎么附加?附加回原来进城下段即可 附加回原来进城下段即可,就是我们记住这个位置七二零 b 一 零 a 零,记住这个位置,然后附加回原来的进城,在这个地方下段 ctrl f 九,就可以返回到我们的正常的发包函数里面。 这个是不是非常的简单?这个非常简单,那我刚才说的这个步骤就是某 d 叉 f 啊, d 叉 f 就是 这样情情况啊,就按照这个步骤可以去操作一下 d 叉 f, 试一下,它就是简最企鹅里面最简单的重写代码。函数的情况, 它就是直接重写了一个肾的,然后呢?然后里面调上的 wsp 呢?它一点都没有改,里面肾的代码也一点都没有改。你直接比如说通过 口袋西游啊,找到这个位置,找到这个代码七二比一零一零,然后呢跳过去直接下断,但是这个地址是不是不是固定的啊?是,我的电脑是这样的,你的电脑不是这样的,对吧?因为这模块加加载只是在我的电脑上是固定的啊,在我的电脑上现在就是固定的。 好的,那我们这样的话是不是就可以找到了?当然这是第一种情况,非常非常简单的情况,是吧?非常非常简单的情况。那么第二种情况呢?就是我们来到这个位置下段依然不好使啊,依然不好使,那这个时候呢,其实我们就要什么 记住特征码了啊,要不然是这个 wsp 四呢的特征码啊,它的代码也不多啊,代码也不多, 哎,不对啊,等会啊,看有那么多代码吗?等会啊,其实代码不多,我看看啊, 三个号、四个号、五个、六个、七个、八个、九个,到这到这也不算多啊,九个号,十个号,那那样啊,九个号,十个号那样。比如说一,一般情况下我们其实也不会拿下面当特征码的,正常情况下大家可能会会说什么? 正常情况下我们可能就拿头部这一段当特征码,比如说第二、第第三点,方法二,如果不行,我们什么就要通过 发包函数的特征码来搜索了啊,就这么简单啊。如果说第二种方法,我们找到了 webs 的 下方还不行的话,我们就搜索特征码,比如说什么样的特征码呢? 大家可能说你们的经验不多啊,因为说搜索特码这个东西没有什么技术含量啊,就说我,我写,我重写那个涵函数,我说跟你的这个函数的相似度达到百分之九十以上, 那么这种情况你也不知道说我搜索这段特码行不行?他的里面的地址变不变,对吧?地址变不变行不行?这个你你是肯定是会很疑惑的, 那我这个地方呢,我也是以前搜索他的时候比较多,所以说有一些经验,可以把一些经验分享给你们,让你们搜索的过程中会没那么繁琐,对吧?那这个过程中有一些哪些经验呢?比如说啊,如果说他重写的话,如果说他重写的话,那么这个三三 c 的 这个东西他并不是固定的 啊,三 c 的 地方并不是固定的,他可能是四零,可能是四四,可能是三八啊,但是变化特别大的可能性又不是很大啊,这,这个是第一点,第二点呢?这两个值几乎是不可能变的 啊,起码我在九个十个里面,九个九个半发现他他没变啊,因为我我操作他的情况下比较多啊,所以说 会有一些经验。那有的时候说那理论上他可以变,但是实际情况下他就是几乎我没有看到过变的啊。这个这都是比较的容易的,所以说你会搜索特码的时候,你会搜索一堆出来,因为这个值才是 在我们整个这模块中变化最少的情况。那比如说我们在在这里面来搜一下啊,右键二进字复制,然后我们去二进字扫描,你会发现搜搜索到很多的。呃,我们自己。那什么吧,我们自己。 算了,我们我们扫描一下吧。查查找,查找特征码,查找特征码,查找所有模块,所有模块。 当前模块还是所有模块?想想啊, s w 我 搜这个 o d 搜所有模块会有问题,是不是?我们先搜当前吧。 嗯,想想啊,所有模块查找 看一下啊,哎。嗯,不会。什么什么玩意?不,不会。 咱们先先先来看一下,简单的,待会咱再咱再说。我们先来看一下,简单的,我们先把这个先搜搜一下,先看一眼,然后咱再看。咱应该用叉里 bug 搜啊 咱应该用叉里 bug 搜。等会啊,我们先把这个东西搜一下。好的 好的。第一个是在这个位置,我们点 ctrl l, 你 会发现找不到第二个,你会发现找不到第二个。为什么呢?一般情况下,在这游这游戏里面啊,它这种铺是一个这个长量,然后加上后两个值的地方特别多,但是这个三 c 应该是一般情况下是唯一的 啊。但是呢,我跟你们讲了,搜索特等码的时候一定不能把三 c 放进去,你比如说我们再再继续把三 c 改成四零。 哎,这么不给面子,他没重重新写的话没有别的值吗?是是,哈哈哈。三八 没有啊,没有,没有的话那说明他没有重新写什么什么什么东西啊?那我可能是企鹅的调的多了,调出神经神经病了。企鹅的里面会什么? 加三八的,加二八的,加二零的,加四零的,加四四的,就是从从多从多少的这个地方全都有,他全都重新写了,然后你在其中找到一个,真的,这是大部分的情况啊,我只能说把这些经验告诉你。 好的,那我们就说,总之我们是在这里面搜特码就可以了啊,你如果认为这不行的话,你可以搜这这一段,但是尽量把这个什么长量带上,这个长量几乎没有变过。他们两个啊,他们两个几乎没有变过, 几乎是没有没有变过的。我们再来看看一下,他这里面如果没有重重写的话,会导致一点都不变吗?我怎么觉得有有点纳闷呢?真的是一个也没有吗? 真的是真的是一个也没有吗?不太可能吧, 反正是给我的微印象,因为我我正正常也不会到这种简单微游戏里面去搜他的特征码,对吧?没有啊,真的是没有,比如说理论上来讲的话,这这段代码是唯一的 这段代码是唯一的,但是像我说的吧,你到企鹅里面,到这模块里面去搜这种代码,老老多了,就说明他确实是重写了很多。嗯, 好的,鸟哥你先讲讲那个肾的,肾的就没有啥好说的了,因为肾的是什么?什么样的肾的没有什么特不特别的,肾的里面这些特征码你全可以用吗?对吧?这些特征码你全可以用吗?就是我们拿拿过来去收特征码就完事了。所以肾的没有什么特别的 啊,他不像 wsa 肾的里面, wsp 肾的里面,我们说会有什么样的情况,有一些经验分享,但 w 肾的里面就跟普通搜的特码是一样的。我们之直接啊,如果说我们想搜他特码,直接拿拿一段过来搜,看有没有就可以了啊,这是我们这样的一个情况啊, 那么在这里面我想想还有什么一些东东西可以给你们进行一定的补充啊?就当时我们怎么去搜特征码,怎么去能拿到我们想要的东西的一个情况。这里面还有一个值得注意的一件事啊,注意,一定要注意,一定要注意。 搜索特征码的时候不局限于本模块搜索特征码的时候不局限于本模块。什么叫做不局限于本模块啊? 不局限于本模块啊?就说它重写的函数可能不放在这个位置, ws 二下限三十二这个里面,它可能放到自己的进程里面 啊,他不不会局限于,肯定放在这模块里啊,你要注意这件事,所以有的同学可能是收收收特征的时候就在这模块里面收,但是有的游戏他可能就放在这里面,但是很多一些游戏他放在自己的一些其他模块里面,所以你要照所有模块里面收啊,注意这些事就可以了。 能拿个企鹅搜出来看一下吗?嗯,实实战的时候骷髅会领领着你们,你们看到这些情况的啊,他,我让他给你准备了四五个,我不知道他准备的啥,但是只要是有企鹅的话应该是都需要收的,而且我可以给你们个作业啊,让你们自己去做。我给你们讲一个刚刚才说的第一个作业吗? d 叉 f 啊, d 叉 f, d 叉 f 的 方法就是第一步都不断第二步,然后呢,你会发现怎么办?你回到我们的这个口袋西游里面,你去下个段找到 wsp 帧的,怎么去找?非常容易,从这个虚函数往里面进,进到那个位置记录下来,再附加回你原来的 d 叉 f, 然后怎么办?附加,我要 d 叉 f 在 你的这个 wsp 帧的上面下个段再去做动作, ctrl f 九就可以返回了, 就可以返返回了,对不对?这是最简单的一种一一种情况啊,如果这种情况还不行的话,那怎么去锁锁定肾的跟 wsp 肾的呢?那你就只能怎么办?只能去搜索特码,当然搜索特码,我们说我,我为什么选择搜索 wsp 肾的特码呢?先先讲呢,因为你搜索 wsp 肾的是唯一的, 他们三个函数都会调用到 wsp 肾的,你搜索他的特征码是唯一的啊,而你说搜索肾的特征码搜不到就没有了吗?因为他还可能是肾的吐啊,还可能是 wsp 肾的呀,你搜索他肾的的特征码的话,你要搜索三个,所以会很麻烦啊。是这样的, 好的,那我们现在再来看同学说的一些问题,哪个是肾的?肾的标识是这个,整个这个函数就就肾的肾的代码比较比较少,对吧? 企鹅的自由幻想是吗?自由幻想他是做了几个处理啊?说一下他是做了几个处理,是就简单的像 d 叉 f 那 样,还是说像我说的会稍微复杂一点呢? 什么什么操作了啊?就就就就是简简单的是吧?因为大部分都是像我说的这种简单,他就重写一个甚的,然后你一找就找到了, 但是你别觉得是,别觉得是,他这个就是简单重写一下就很容易了。因为什么呢?因为这样的话,他可以 防护做到百分之八十的防护,至少百分之八十的小白他就不知道该怎么下下断了。他说,哎呦卧槽,肾的下断他不断,我不知道发包函数是什么了。 w 肾的兔 wc 肾的也不断,他不知道该怎么做了啊?这拦拦住了百分之八十小白就可以了呗。但是对于你们来讲的话,你知道它的原理 啊,我上 wsp 的 肾子上下断就可以了,或者我直接搜特码就可以,对你们来说的话没有没有任何作用,对吧? 好的,这就是什么我们的这个保护发包函数的第一种方法有问题咱来讨论两。好的,我们刚才讲了第一种保护发包函数的方法啊,就是重写发包函数啊。所以说呢,以后呢?以后呢?你们也一样, 对吧?你们是不是也一样?你们有通过这个得到了什么启发吗?比如说我们不要学一个知识点就干不愣的,就学学一个知识点,我知道照照葫芦画个瓢就用就完事了,你们得到了什么?什么启?启发 别人去逆向你的软件的时候,他是不是也会针对你的一些情况啊?拿到你的软件想要破解你的时候,哎,这个这个小子弹了一个麦克斯 box, 我上麦 c 是 包括上面下下个下个下个段,那举举例子啊,咱们不会用那玩意啊,举例子,我在这上面下个段,康佳就返回到你的这个函数里面去分析你去了,对吧? 或者说是我在这个函数上面检测你。那其实我们不是跟我们刚才讲的讲刚开始讲的道理一样吗?就是我们写这个函数,如果觉得这个函数什么,我可以重新去写写他,甚至重写那个函数,对吧? 就是其实是道理是一样的啊,你们要有一定的启发跟发散啊。好的,第一种情况我就讲完了,我们来讲第二种。第二种就是说对发包函数的保护啊,肯定是重中之重,对不对?第一个给他重新写第二个怎么办?第二个加密吗? 第二加密吗?大家可能说那加密作用啥呀?加密作用作用大了,对吧?加重作用大了一个是什么?一是如果我们不加密, 如果我们不加密的话,刚才说了我们监听收发包直接就能听到什么,你的所有的内容就捕捉下来就完事了。像一些什么 wpe 之类的工具,它不就是直接在一些发包函数上面给你去 监听一下,然后获得信息输出出来吗?但是如果我们加密了呢?你听到没用啊?啊?我们两个人打电话是用的暗语 天王盖地虎对吧?那边宝塔镇河妖,他说的什么玩意只有我们两个知道我们说的是什么?今天晴吗?然后那块说阴啊?对啊,他就他就懂了啊。 所以说这个地方呢,我们就知道加密是必要的,而且正常如果可以解密了啊,如果可以解密了,啥意思啊?哈哈哈,就,哈哈哈。 比如说我们说这种情况呢,你用这个 wsp 之类的工具就没有用了,本身其实这这些工具呢就没有用。我们写户口,我们要自己写啊,所有的户口我们要自己写,我们自己去拦截,我们在有用的位置拦截,在加密前去拦截,而不是说固定的位置去拦截,对不对?这,这是不可以的啊。 那比如说我们怎么怎么讲呢?第一种情况我们就是加密也一定要顾注意啊,这种加密一定要是动态的加密。 什么叫动态的加密?就是你不要说我一加密完了就是三三十一二加密完了就是三十二固固定的,那固定的话你会发现啊,市市面上有很多的小白,他拿的 wpe, 你 可能你,你们可以去搜搜一些什么加密解密课程。我看完之后我都要喷了,卧槽, 什么样的?他是拿着这个 w p 去在这个发包函数库克之后,拿到封包以后,封包是加密的,他教你加密,他教你怎么怎么加密呢?他喊喊个一,然后输出个内容,喊个二输出个那个,喊个三输出,把三个包比对,然后算啊, 根据我们的观察,可得加密的算法是 e 或了 f, 然后除以二,再加三,然后 等等等等,你知道用用眼睛去看固定固定加密,你知道,那这种加密他本身就已经早就淘汰掉了,比如说我们现在的加密其实都是动态的加密。什么叫动态加密?就是你的这个加密的结果啊?不是固定的,我的一的加密第一次加密三十二,第二次加密可能五十五, 他为什么会是动态加密呢?因为你会给他传递一个密钥,就是这个密钥的值是跟服务器通信不断发生变化的,那不断发生变化自然结果他也是会发生变化,对吧?啊?所以说我们的加密要动态加密,那这样的话呢?所谓的这这些抓包工具就完全失去作用了, 是不是又把百分之五十以上的小白给拦住了啊?你分析不了了,你抓到我的封包也没用,全是加密的, 全是乱码,看不懂,没用啊。第二种防护方法进行加密,那加密我们说了,第一个好,好处是什么?第一个好处就是你监听没用, 第二个好处就是为了数据传输的安全性吗?那你你想我的一些什么账号密码啥的,如果说直接通过收发包的形式给你发送出来, 那能行吗?那多多不安全啊,对吧?你被一些病毒木马给利用了,对吧?那不就掌握了吗?啊?安全性也不行,然后呢?还有呢?再就是这个纹逆向吗?你 如果是铭文的话,我们直接去分分析,逆向的话很容易,那我们加密之后呢?对于你的去往上面去逆向分析,这都是很大的困难,对吧?所以第二种情况就是我们的这个保护方案加密, 我们把它分分割开啊,然后继续讲中间。那我们现在学了两种最简单的啊,重写发包函数跟封包加密两种对这个发包函数的保护方法,那还有第三种保护方法就是现成发包啊,现成发包,现成发包的话呢,它也是对这个 封包有很强烈的保护的作用,尤其是大家常用的,比如说 b p c 的, 然后 ctrl f 九, 直接可以找到所有的功能函数,对吧?只要你有一个肾的,然后呢康复加 f 九,就可以根据调研关系找到所有的发包行这个功能函函数,那其实任何软件设计者,任何网游公司,他也知知知道存在的这样的问题,那么我们怎么去避免呢? 那就出现了陷阱,发包陷阱,发包就是为了避免让你能够通过一个函数找到所有的功能,甚至让你找不到任何有用的东西啊,就说你在肾的上面下个段可以 啊,但是你返回不到铭文,返回不到功能 call, 那 你只能在我加密数据里面转,没有任何意义,对吧?是不是这也是非常有用的手段啊?我们来看一下正常游戏的一个调用过程啊,正常游戏的一个调用过程, 我们简单的写一下,首先呢功能函数,功能函数一啊,我们去调用功能函数二, 然后去调用什么调用组包的过程啊?组包的过过程,我们先先把它写完,然后再来详细说组包的过程,之后我们来进行什么,比如说这个地方就到明文封包,然后呢进行加密,然后啊深的, 比如说这就是我们的过程。来看一下这里面功能函数一二,我们就没有啥好说的了,对吧?它就是比如说一个走路啊,这也是一个走路,那为什么分两层呢?那我们自己封包函数的时候,大家也也知道啊,那 里里层能够达到功能,外层也能达到功能,这是很正常的,只是说他在里面加了个判断,他在里面直接是里面的那个功能,对吧?那这个主包是什么呢?所谓的主包就是把功能函数的参数按照一定的格式给组成了一个自觉级 啊。你在这里面,比如说你的走路的里面都有什么样的参数啊?有坐标值,目目的地坐标,出发点坐标,有地图 id 等等等等,把这些所有的有用的参数组成了一个自觉级 啊,这就是煮包的过程,煮完包之后呢,再往里面掉的这个坑呢,应该就叫做我们的铭文包了啊,铭文包了,因为他这个位置所有的参数都是煮完的这个 封包的结构的自觉级的这样的一个情况,铭文包了,那铭文包里面他要做哪些动作呢?肯定是要加密的,把我们的铭文进行一个加密,加密之后才能发送,对吧?这样的话才能有安全性啊。发送,这是他整个的一个过程, 整个的一个过程,那我们通过这样的一个调用关系,大家可能就会知道,我们只要在发布函数上面下个段, ctrl 加 f 九,加 f 九,加 f 九,所有的无论是什么功能都能找得到, 对吧?什么样都能找找的到。那么为了把这条返回链条给切断,让你没有那么轻松的能够找到铭文包,或者找到这些功能,可能在这个加密的之之后啊,应该是他要切的话,应该是在哪个位位置切是最合理的?在这个位置切, 在加密之后切,当加密之后可能还有很多的代码调用吗?对吧?在加密以后切,那么你就只能在加密跟肾的中间这个位置看,不能返回到人。想办法拿刀给切切开 啊,所谓的线头花苞就是把这切开,那我来看呢,他怎么切开呢?用,用什么切呢?把这些代码分成两个线层去放着,就可以实现切的功能了啊。两条线层,第一条线层啊,第一条线层我们直接给他复制过来啊,直接复制过来, 功能一,调用功能二,调用发包函数,调用铭文,调用,调用加密,对吧?我们现在是不是实现了一个加密的封包啊?然后把 加密后的内容写入到某个内存地址 啊?写入到某个内存地址,然后现。现成二是干嘛呢?现成二什么?不断循环,判断某个内存地址中是否有值,如果有要发送的红包,那么 再调用深啊,就是把原来的一条线成给切成了两条线,但是我这是写的是最简单的情况,它里面的实心代码可能远远比这复杂, 这个调过程也可能远远比这复杂,只是我给他简单化了啊,简单化了。那么这种情况,把一条线段拆成两条线段,我们再在肾的上面下断的话, ctrl 加 f 九啊,可能返回到一些判断一些 call 位置,再 ctrl 加 f 九,可能就返回到一些循环体头了,再返回可能就返回到什么县城头部了,出不去了。 所以你用 ctrl f 九的方法是不行的啊。比如说这样的一个简单的一条线成分两条线的分割思路,就把只会肾的下断,只会 ctrl f 九的小白给干掉, 这就是县城发包,是吧?县城发包的原理是不是非常的简单?非常的简单,拆成两条两条县城去做就行,他们两个地方有一个公用的什么,相当于两条县城通信的方式,那这个地地址呢? 很多的情况下最简单的方式就是一个全驱变量啊,我往一个全驱变量里面写入一个要发送封包的地址,这个里面呢?从全驱变量里面取出来一个地址,或者说直接拿这全驱变量当封封包地址直接发送,是不非常简单?非常简单,而且绝大部分的情况他可能就就是一个全驱变量啊, 是不是原理很简单,而且达到的效果非常好啊?这么简单的一个原理,很多人分析现场发包是分析不懂得,对吧?嗯, 当然我们说两条线成分工并不一定是严格这么这么写的啊,我只是说大概嘛,对吧?他也有可能把加密的过程放到这个这个县城里面,这也是有可能的。如果把加密的,把加密的过程放到这个县城里会有什么弊端?你们说 如果把加密的,如果把加密的过程放到第二条县城里面会有什么弊端? 你们说对,哎呀,今天反应很灵光啊,对吧?如果把这个加密的过程放到这个第二条线里面,说明什么?说明我们在这条线里面是可以抓到铭文包的, 对不对?你在这里面加密,那你没有铭文,你何以加密呢?如果是这个加密放在这,那么说明写到这个内存地址中的就是铭文包,那铭文包在这个县城中出现过的话,其实我们就没有必要跳县城了,直接在这个县城里互个铭文包就完事了,对吧? 啊?所以说我们在这里面说呢,两条县城的分工不一定是严格的,但是大家一定要明白它原理就可以了。好的,那我们来看一下,如果是县城发包的话,他有怎样的特征呢?如果他是县城发包的话,他有怎样的特征?第一点 什么?第一点无论什么功能,无论什么功能,所以说你现在哪个地方不懂就要把它给解决掉啊。今天下午要彻底的明白所有的 县城发包的知识,无论什么功能,我们说堆站返回都是一样的,对吧?因为我们在这个县城里面,他没有涉及到什么上层的这个功能函数,所以说你在这个 第二条线层里面,无论什么功能,在帧子上面下段返回的都是固定的代码,所以无论什么功能,对战返回都是一样的, 对不对啊?这是线层发包的特点啊,想判断一个游戏是不是线层发包很容易,甚至上面下个段或者找到发包还是下个下个段做不同的功能,看对战返回是不是一样的。都一样的话,那一眼就看出来就是线层发包了呀,对不对?毫无疑问啊。嗯?第二点。 第二点什么?我们在第二条县城里面,第二条县城里面下断,断的可能比较频繁 啊?断的可可能比较频繁啊,他并不一定,对吧?断的可能会比较频繁,因为他可能会有不断的循环啊,不断的循环。那第二个呢?只是参参考我们鉴定县城发包的唯一标准是第一个。 好的呢,我们现在呢就把县城发包的原理讲完了。嗯,大家现在有问题呢?提一分,一两分钟问问题。然后呢咱们开始详细的来搞县城发包了啊,就进入我们今天下午的主题了,是吧?进入下午的主题。

第二十天某易云 aes 加密解析,今天我们来看的是网易云音乐啊,首先进入网站当中的右键去选择检查,打开开发者工具,进入到网络面板当中,那么这里我们可以去选择播放音乐, 它就会播放这首歌曲,我们来看一下媒体文件,就会有这样的一个媒体文件发送过来,那么这个就是它音乐的一个链接 啊,这他就已经开始下载了,就是那个音乐的链接,那就说我们要去获取到这样的一个链接,从而去实现批量下载的话,然后去找到他的一个链接是在哪个税包当中的,因为他整个的一个啊,这个链接肯定是变化的,可能是无法去构造的吗?我们来搜一下 搜索,发现它是在这个 v 一 当中,我们来看一下吧,在 v 一 当中呢,这里就会有对应的一个 url, 那 么这个 url 呢,它其实就是我们对应的那个歌曲的链接它它这个载客参数呢? 首先有个 token 值,这个 token 值一般来说是令牌啊,是服务器返回的,那么来看一下这里有个 powers 以及 enck 值,这里会有两个参数值,那也就是说这两个参数值它都需要去,我们都需要去给它逆向生成, 我们来给他分析一下啊,看他是在什么地方来生成的。那么这种我们就可以去通过搜索的形式来搜一下吧,比如说这个 n c k 值啊,这个地方呢,可以通过在这里选择三个点来去选择搜索啊,可以搜索这样的一个关键词来搜一下, 搜索发现这里有一处,然后下面这里呢也有一处啊,这里还有个 power, 那 应该是在这个地方了,他是在 bw 二 x 里面,我们可以再再给他们下个断点, 向上断点,就我们这里再来去重新先给大家取消断点,先重新刷新一下页面吧, 然后再来去开启断点,给它点击一下,好断住了,断在了这个地方,断在了这个地方之后,我们来看一下它整个的一个逻辑是什么啊?这个地方 我也测一下,它就能够去得到对应的这个 e n c test 的, 以及这个 e n c test 的, 以及这个 e n c k 值。那么这个就是 power 那 个值嘛?这个就是那个 e n c k 值嘛?那来看一下它是怎么去生成的? 首先他传入的参数 i 八 a, 那 么这个参数呢?很明确的给大家说啊,他是每次都会变化的,因为他整个网易云都会走这样的一个接口, 所以他不论是歌词加密也好,还是那个评论加密好,还是那个歌曲链接加密好,他都会走这个接口,所以他会多很多次。那你要去找到他对应这歌曲链接到底是哪个 i 八 a, 那 这个呢?后续你可以给他发完代码之后再来去测试, 他总有一个是对的,那个 i 八 a 的 好。然后再是这个什么流泪墙是什么东西呢?零一零零零,那么这个值呢?一般来说是固定值啊,它是用于去做 r a c 曲模预算的。 再来看一下这个地方呢,他现在都已经有 r a c 的 模值了,他就肯定会有个什么有个 k 值啊,就供药嘛,这个值呢,一般来说也是固定值啊,再来看一下这个东西,这是什么?这个呢?也是一个密文值,它是多少位的呢?我们来去看一下, 长度的话呢,是十六位,那么十六位大概率是什么呢?大概率是这个,嗯, a e s 或者对对称加密它的一个 k 值或者那个 i v 值啊,那我们来看一下这个方法里面是什么东西。 进到了这里面做,我们来给他,同样让他进到这里面来吧。进到这里面来,首先 a 十六 a 是 什么东西呢? a 的 话在这个地方是生成随机致富串啊,生成多少位的随机致富串吗?他这里是做了一个循环来拼接去取随机取值的啊。再来看一下 这个地方给到了把这个 d, 就是 jason 哥说的这幅串和这个 g g, 就是 那个应该是 k 值。给到了这个 b b 方法呢?我们来看一下啊, b 的 话这里面,哎,其实很明显他就是一个 seven p u g s a e s in cap 了, 然后 i v 值, i v 值在这里去生成的啊,这个传过来的应该是做了一个 k 值的一个生成, 然后魔声的是 c b c 模式,那么这个就可以直接让 ai 或者你再去给它通过这个第三方库啊,就是 c l p u g s 给它导入一下,然后去这么去给它做一个 a s 加密就可以了,这个还是很简单的。 好,那再来看它这里走了一次之后呢,就得到了一个 type 的 值了,这个 type 的 值又把它传过去,又做了一次这个 a s 加密 啊,虽然是做了两次 a s 加密啊。那再是看这个 c 方法呢? c 方法的话呢,是这个地方的传了一个 i 十六位的随机字母串 e 就是 那个魔值, f 呢,是那个 k 值,点到这个 c, 这个 c 的 话,我们来看一下它整个这个结果是看起来应该是二百五十六位的,我们来输出一下啊, 对吧?二百二百五十六位,然后是零到九, a 到 f 的 组成呢,它大概的就是一个纯正的 r a c 了,所以这些你都已经知道了之后啊,它这个地方,是吧?这个地方,这个 c 方法,然后, 呃,这里呢是设置了一个什么东西,然后这个地方呢是一个 r a c 六了,一个 r a c 对 象啊,然后再去做了一个加密,所以这一套逻辑呢,就直接可以干嘛?直接可以把全部代码给他扒下来,扒下来之后我们这里去创建一个 g s 文件 啊,丢进去,丢进去之后给它收起来吧,那么怎么去抠代码呢?哎,收起来好抠代码,那么就要找呗,找它的那个 c r p two g s 定位的定义的位置啊,那么这里看起来都是一些 r a c 的 原码, 那么 c r p two g s 还在上啊,这里啊,这里他从这地方一直扒,扒到什么位置呢?扒到我们刚刚所看到那个这个地方,我们来看一下啊,进到这里面来,扒到这个位置啊,扒到这个位置,这里是个自大的自治性函数。 好,这么就可以从这个里一直复制,复制,复制,复制到那个呃, c y p 六 g s 定义的位置哈,这个位置,那好,给它全部先清空,再来粘贴一下,那么这里肯定会缺个 windows, 我 们给它补一下 windows 就 可以了,补上对应的 window, 哎, 补一下 window, 比如说等于 global。 好,那再来去右键运行看,它应该是不会有任何报错的,那我们就可以去调用对应的方法了呗,调用一下那个方法传入对应的参数, 比如说第一个是那个 json 格式的字母串嘛?我们来看一下啊。 首先它呢是 json 格式的字母串,我们可以直接把它拿过来,或者把这个 i 八 a 拿过来吧。 i 八 a 拿过来给它复制一下 啊。这里呢?我们是 i 八 a, 就 来个 i 就 i 八 a 吧,还是写写全一点啊?好,那么就是 jason 点是群发,然后去把这个 i 八 a 传进去 啊。再就是那个零一零零零一那个摩值,还有那个 k 值, k 值呢?我们也给它复制一下。在这里输出过吗?没有啊。那给它输出一下。 呃,现在是在哪里?对战?对战,哎,调用对战。这个好,这个地方我们来找一下, 这个是 k 值,还有另外一个 k 值,我们给它也输出一下,这地方 好,拿过来,那现在我们这里就可以去接收,呃,接收一个变量,比如说就叫做 b b b 吧,来输出一下这个 b b b, 右键去运行,对吧?它就能够去得到这样的一个结果啊,能够去得到这样的结果,那么这个结果就可以拿到那个 python 端去发请求来去测试了。如果说它无法得到正确的数据,那就只需要去找到对应的这个 i 八 a 它是什么样的一个值就可以了,就是你可以通过 这,它会断很多次啊,会断很多次,对吧?你就看它这个 i 八 a 到底是哪个,去换它总能测测试出来的。那么这个就是网易云的一个加密,它就是用的 aes 和 rac。 呃,难度呢?其实不算难啊,都是一些直接能看到的一些加密方式。

面试官,接口测试中如何处理?加密接口怎么测试?最近面试了一个三年经验的测试工程师,问到加密接口怎么测,解密怎么处理,他只会直接发请求报错。问到对称加密、非对称加密、签名校验、抓包解密怎么落地,当场直接沉默了。 假如你对这道题目也不会回答,我整理了让面试官沉默的大场测试必考题目包含,测试理论功能、测试接口测试自动化、测试性能、测试数据库项目等等。 只要是我粉丝,留六六六打包带走,接下来带大家一起解析满分回答。第一阶段,先了解加密方式,常见两种,对称加密 aes, 非对称加密 rsa, 还有接口签名 sign, 时间戳随机数防篡改 请求参数是密文,不能直接明文调用。第二阶段,日常手动测试做法,找开发要加密算法,密钥加解密工具类本地明文参数,先加密,再把密文传给接口抓包拿到密文,用密钥本地解密,查看真实返回数据是否正确, 绕过前端,直接用后端测试环境接口,部分测试环境支持关闭加密校验。第三阶段,自动化测试处理。在 jmeter appress python 脚本里引入加密算法,代码请求前自动对铭文参数加密,接口返回后自动解密断言,实现加密接口全流程自动化回归。 这道题是现在接口测试高频实操题工作中几乎都会遇到加密接口,你平时遇到加密接口,是找开发要工具还是自己写脚本加解密?评论区聊聊?

这是你已经下载好的压缩包,打开后却发现还需要解压,密码必须要到指定的网站付费后才可以获得。欲火焚身的你会忍不住付费吗? 如果不想付费,我们又该如何白嫖呢?本期视频让我们一看究竟。在破解压缩包密码之前,我们首先要知道加密者对压缩包做了什么。 要使得压缩内容和解压后一模一样,就需要使用到无损压缩。比如 lz 算法,它的原理非常简单,就是简化重复结构。例如有这么一组数据, 元元元元元宝宝宝宝,我们是不是也就知道该怎么压缩了?六个元,九个宝,重复的字数加上字母,加上字母本身一下子就省出了不少空间。 那么压缩完之后又应该如何加密呢?其实最重要的加密阶段发生在数据压缩之后,但又在将数据写入最终压缩文件之前。加密算法可以使用我们小学二年级就学过的 a e s 算法,它是被广泛使用的加密标准,例如你家的路由器密码就是被它加密的。 以 aes 一 二八为例,如果你设定的密码为 iq u n 五二零,在 aes 处理之前,这串密码会变成另一种哥哥的模样,也就是会变为 a s c i i 编码并填充到一定程度, 最终转化为这个矩阵,这就是铭文块。你的密码在一瞬间变得面目全非了,可这还没有结束。接下来转换后的矩阵会替换一些数字,完成自己的替换,然后再印设一次, 让密码进行非限性变化,更好的防止被破解。然后还会按照一定的规律移动矩阵的后三行,并与某个固定的矩阵相乘, 完成行移位和列混合的动作,增强扩散性,让密文更加难以预测。最后一步则是轮密,要加把结果与一个特定的密要矩阵进行主谓一或预算。就像是这样,把这个步骤重复十次, 就得到了最终的加密文件。所以这套流程下来, a e s 加密算法其实是很难被破解的。如果你的密码是十六位的复杂密码,其实使用当今最强的计算机 也需要数十亿年才能暴力破解所有的可能密钥组合。但是理论是理论,现实是现实,很多人的密码都是六位到八位的字母或者数字, 密码强度非常低,只要肯花心思,还是很容易被破解的。就拿我自己测试密码强度的工具 app 来说,通过暴力测试的方法解密小写英文组成的密码,五位仅用时一秒, 六位最多七秒,七位最多三分钟,八位最多一个小时二十分钟。只有设置成真正的复杂密码,才会让密码无法被破解。所以看到这的各位,一定要给自己设置一个复杂密码。 如果你不知道你的密码是否复杂,可以把你的密码发到评论区,我帮你看看你的密码是否复杂。同样,在 mac 上,破解压缩包的方式会更加简单,只需要在终端执行这两行命令即可。 需要注意的是,要在第二行命令后加上文件的绝对路径,速度同样很快。照我测试下来,六位密码十秒钟搞定,最后记得收藏下来,以备不时之需。

连接手机即可提取录音的录音笔就是这款金正品牌小圆形录音笔,它尺寸小巧便携带机时间超长, 充一次电超长待机三十天,一键开启录音高清降噪,录音清晰,录音加密,还有录音转文字功能,机身小巧便携,更方便随身携带, 喜欢的点击视频左下方小黄车可选购。连接手机即可提取录音的录音笔就是这款金正品牌小圆形录音笔, 它尺寸小巧便携带机时间超长,充一次电超长待机三十天,一键开启录音高清降噪、录音清晰、录音加密,还有录音转文字功能,机身小巧便携,更方便随身携带, 喜欢的点击视频左下方小黄车可选购。连接手机即可提取录音的录音笔就是这款金正品牌小圆形录音笔, 它尺寸小巧便携带机时间超长,充一次电超长待机三十天,一键开启录音高清降噪、录音清晰,录音加密,还有录音转文字功能,机身小巧便携,更方便随身携带, 喜欢的点击视频左下方小黄车可选购。连接手机即可提取录音的录音笔就是这款金正品牌小圆形录音笔, 它尺寸小巧便携带机时间超长,充一次电超长待机三十天,一键开启录音高清降噪,录音清晰,录音加密,还有录音转文字功能,机身小巧便携,更方便随身携带, 喜欢的点击视频左下方小黄车可选购。连接手机即可提取录音的录音笔就是这款金正品牌小圆形录音笔, 它尺寸小巧便携带机时间超长,充一次电超长待机三十天,一键开启录音高清降噪,录音清晰、录音加密,还有录音转文字功能,机身小巧便携,更方便随身携带。 喜欢的点击视频左下方小黄车可选购,连接手机即可提取录音的录音笔就是这款金正品牌小圆形录音笔, 它尺寸小巧便携,带机时间超长,充一次电超长,待机三十天。一键开启录音高清降噪,录音清晰,录音加密,还有录音转文字功能,机身小巧便携,更方便随身携带, 喜欢的点击视频左下方小黄车可选购,连接手机即可提取录音的录音笔就是这款金正品牌小圆形录音笔, 它尺寸小巧便携,带机时间超长,充一次电超长待机三十天。一键开启录音高清降噪,录音清晰,录音加密,还有录音转文字功能,机身小巧便携,更方便随身携带, 喜欢的点击视频左下方小黄车可选购,连接手机即可提取录音的录音笔就是这款金正品牌小圆形录音笔,它尺寸小巧便携带机时间超长,充一次电超长,待机三十天。 一键开启录音高清降噪,录音清晰,录音加密,还有录音转文字功能,机身小巧便携,更方。 提取录音的录音笔就是这款金正品牌小圆形录音笔,它尺寸小巧便携,带机时间超长,充一次电超长待机三十天。 一键开启录音高清降噪,录音清晰,录音加密,还有录音转文字功能,机身小巧便携,更方便随身携带。 喜欢的点击视频左下方小黄车可选购,连接手机即可提取录音的录音笔就是这款金正品牌小圆形录音笔,它尺寸小巧便携。

半夜把喝醉的女神送回家,结果他的电脑配置拉满,突然想打开来两把三角洲,但有密码咋办?别急,我们今天学习的是嗨转神器搞定密码本系列,耗时五千九百小时,制作总时长三百六十分钟,手把手教你使用嗨转,学会后不仅能解决密码,还能把凯里玩的更溜。在这么一个夜黑风高的晚上, 你刷着抖音正起劲,突然想起隔壁老小子说过,他在网盘当中放了六个多 g 的 小电影,但是你去访问这个网盘的时候,他提示什么?他提示你需要输入用户名和密码。 好你个老小子,竟然敢设置用户名和密码,你只要敢设置密码,那我就能够破解你的密码,接下来看我如何破这个局。 正式实战这个工具之前,咱们需要准备好一些原材料,什么原材料呢?比如说前面咱们不知道这个密码是什么,那么咱们需要收集密码来制定一个密码本。什么叫做密码本呢?密码本就是里面放了很多可能的密码的 t 叉 t 文件啊,大家看一下。 那么就是正如这样的一个 t 叉 t 文件里面放了很多的密码,其中里面很有可能一个就是你的 一个密码本。那这个密码本是怎么制作的呢?那就是用这个白鹿工具去制作的。那么课程内容呢?仅用于以防伪为目的的教学演示,请勿用于其他用途,否则后果自负。为师没有教你做违法的事情,为师只是教你技术,所以你做了违法的事情,不要跟为师扯上关系。 ok, 那 第一个咱们制作这个密码本, 这里我先问大家,大家在设置密码的时候有没有跟自己的公司啊,邮箱、手机号等等啊?比如说有的人喜欢 用自己姓名和生日去组合,比如你的姓名叫张三,生日是一九九九年,那么他就会设置成张三拼音,然后艾特一九九九, 类似于这样的。那么黑客是怎么去生成?就是有关于这些信息的一些密码呢?他是用的这个工具,首先呢他在这里输入一个姓名,还有你的别名,生日啊等等的一些信息,这里只列出了三个信息,那么点击生成,就是这个地方他会有生成, 因为我这里生成过了,他就会显示这样的,待会我会给大家演示,然后他就会生成一个专属的密码本,这些密码本里面就含有和你这三个要素相关的密码。那咱们看一下这个工具怎么去使用。 ok, 那 咱们打开这个工具演示一下,就是这样一个工具一插一文件的一点击就可以了。 然后咱们怎么去生成呢?比如说你叫啥呢?你叫张三,好吧,张三拼音,然后你的生日是多少呢?一九九九年十一月一号啊,你在哪里上班呢?志邦要上班啊,啊,我乱写的啊,志邦要上班。 然后点击生成这个字典文件,那么它就会生成你这个三个信息相关的一些字典,咱们看一下这个字典在这里。好,咱们打开看一下,看到这个 t 叉 t 文件里面就包含一些相关的信息啊,和你生日相关的, 下面还有呢,咱们看一下和你这个姓名相关的,和你这个公司相关的,就是你有可能会设置这些密码,当然还有一个组合,就是和你这三个要素都包含在这里面了,那咱们就生成了一个密码本,那咱们现在有了密码本过后, 咱们对于这个破解不可能是一个一个去尝试,那咱们就需要介绍到一款工具了,就是 hackler 这一款工具,那它能够让整个破解实现自动化,就不需要你输入一个一个的账号和一个一个的密码去呃,去搞了。那么 hackler 是 一款强大的网络登录破解工具, 支持多种协议, s h 啊, f t p 啊, r d p 啊等等等等一些,其实总的来说它就是一款破解工具,自动化的破解工具。那在这里咱们以这个 smb 为例, ok, 那 首先咱们介绍一下这个 smb, smb 呢,它就像公司内部的一个共享文件夹或者共享网盘, 它让同一网络下的不同的电脑之间呢,可以方便的共享文件或者打印件资源。那前面咱们说的这个,呃,同学把这个小电影放网盘里面,那么它就是用的一个 smb 协议, 那咱们在这里做一个实验,咱们也用这个 smb 协议,在这里呢,咱们有几个环境我需要介绍一下。首先呢这里是一个卡尼,卡尼就是咱们攻击者卡尼,它是内置 headroom 的。 然后这里是咱们的一个网盘的一个电脑, 咱们登录一下,登录过后呢,咱们在这个网盘下,嗯,笑,这个网盘下咱们不放小电影,咱们放一些网安学习的资料, 咱们打开一下这个资料,那么资料就是这个样子,有网安的视频教学啊,然后也有其他的一些基础书籍啊,比如说这个渗透手册啊,如果大家想要这些资料的话,可以在下方留言,我为大家打包好了。 ok, 咱们不搞了,一些小电影咱们搞一搞真实的学习资料。 那么这个网盘里面,咱们现在是不知道这个账号名和密码的,那咱们看一下,假如我需要访问这个网盘的这个电脑,那我怎么办呢? 在这里两个斜杠,然后输入网盘的这个 ip 地址,咱们看一下这个电脑的 ip 地址是多少? ok, 大 写也行,小写也行,因为 windows 无关大小写吗? 在这里是这个,那咱们在物理机上面就是这么去访问的两个斜杠啊,然后再加这个 ip, 就 能够访问它的一个共享文件夹,但是访问的时候怎么样呢?你看一下嘛,提示需要输入用户名和密码。 ok, 接下来咱们就破这个局,所以啊, 这个 smb 协议就是一个上了锁的柜子,咱们需要用 head 去找到这把钥匙,去把这个柜子打开,就打开那个共享文件夹嘛,首先就是这样一个命令去爆破的,那么这个原理是啥呢?是这样的,大家看一个场景啊, 呃,可能做过家里面房子很多,自己本来是房东,对不对?本身就是一个房二代嘛。 那么你出租房,比如说这是一个出租房,你有很多钥匙,这个出租房的这个门呢,它钥匙混在了其中,但是你现在不知道是哪一把具体钥匙,然后你就需要去一个一个去尝试,那么这个包括原理也是一样的,需要一个一个去尝试,那你的这个钥匙对应的就是这个密码本, 你这个 ip 呢?就是对应的这个门,那门里面是不是有一个 smb 上锁了, 就是那个上锁的文件夹,对吧?那现在你需要用这个用户名和这个正确的密码去撬开这个 smb, 就 相当于你去用这个钥匙一把一把的去破解这个锁一样。 ok, 那 咱们这个原理讲完了过后呢,咱们需要回到具体的演示,大家看这里的这个参数很多啊,大家不用担心,先看我演示再说。 ok 啊,我把这个命令输入完了,那么就是这样一串命令,咱们直接回车, ok, 等待一下, 他正在一个一个去试一把钥匙,去试这个锁。 ok, 有 没有注意到一些不一样的东西,比如这里绿色的,就说明包括成功了用户名密码,也就是说他找到了那把打开 smb 锁的一把钥匙。啊。那么接下来咱们用这个用户名和这个密码去连接一下。 怎么连接呢? win 加 r, 然后斜杠嘛,输入这个 smb 主机的 ip 确定,然后提示需要输入用户名和密码,用户名和密码是多少呢? 它的 mini 是 trader, 小 件一九九八,咱们输入一下吧。 mini 是 trader, ok, 密码是多少呢?小件一九九八,看一下是不是?没错,点击确定,咱们看一下是不是和刚才那个电脑里面的学习资料是一模一样的。 ok, 在 这个网盘里面, 这个学习资料已经为大家打包好了,在这个网站里面想要的话可以在下方留言。哎,咱们看一下是不是这样,这个是咱们的那个 smb 的 电脑,大家其实咱们也看过,对不对? 嗯,咱们再对比一下,在哪里呢?在这里来咱们对比一下,是不是和我连接的一模一样。 ok, 那 在这里已经搞演示完了, ok, 咱们整个就是这串命令的演示已经完毕了。那这个密码我是怎么获得的呢? 也是用这个密码本生成器,也可以叫做字典生成器,因为咱们把这个密码本叫做这个字典, 那我生成的是怎么生成的呢?因为我叫小贱嘛,我可以这样说小贱,然后我的生日我会输入进去,然后直接让他去生成了一个字典,然后我然后我就把这个字典放在这个目录下面嘛, 就是在这个目录下面,咱们看一下啊,呐,在这个目录下面,那么他就会包含我生日相关的一些密码嘛, 然后我就一个一个去报告嘛,这样就是啊,制作密码本的一个正确的姿势,这个就是这个密码本的由来了,这个密码本的名字大家可以自己命名啊,你这个名字都是无所谓的啊,你可以自己改名字。 然后咱们主要看这些参数啊,小伙伴们对这些参数很头疼,比如说这个杠 f 是 啥意思呢?这个又是啥意思呢?哎,这个又是啥意思呢?那咱们接下来继续讲解这个参数。 首先杠 f 参数是啥呢?这个 f 参数就是找到第一个,呃,密码对过后呢,他就会立即停止。那什么叫做立即停止呢?大家看这里啊? 还是看我整个的一个爆破过程,咱们直接看最后的一个东西,那么哎,大家看这里,也就是说他找到了一个对的账号和密码过后,他就会立即停止,后面就不一一去尝试了。那还有这个参数是啥意思呢?杠小微,杠大微,双重详情输出。 什么叫做详情输出呢啊?双重详情输出,其实就是把这些尝试的过程给你列出来,这里咱们不是去爆破吗?对吧?一一去爆破,尝试这个账号名和这个密码,那么在这里你看他用这个账号名和这个密码去尝试吗?然后你看上面的也是吗? 因为咱们有这个密码本嘛,它就会把这所有的密码都给尝试一遍,然后看这里嘛把名字去掉,然后密码是这样的,然后看上面的密码,它又是不一样了。那还有这个 smb, smb 就是 指定的一个协议,咱们前面也说到了这个 head 协议,它不只有 smb, 还有 ftp 啊, s h 啊, 这里大家具体情况就填具体的协议就行,这个就是 ip 嘛, ip 就是 那个开启 smb 服务的一个主机。那我着重讲的就是这个和这个,大家可以看到我这里是用大写的, 那么大写的就指定爆破了,密码本就是 txt 文件,用那个百度生成器生成的这个 txt 文件。 那么杠小 p 就 指定单个的密码,这里呢是一个小写的情况,小写的就指定的单个的用户名,然后大写的就指定的一个用户名的这个 p 叉 t 文件。那可能我讲到这里小伙伴们还是比较懵逼, ok, 不要担心,那接下来我会详细讲解这两个参数。首先我就讲解这里的一个情况, p 大 写啊,然后 l 小 写是指定单个的用户名 administrator。 那 有小伙伴们问了,我这里为什么要指定这个 administrator 而不指定其他的呢?嗯,那这里就有一个小技巧了,既然这个就是这个主机,它开启的是这个 smb 服务啊,那么 smb 服务它是存在 windows 电脑的一个协议, 那么它 windows 电脑它会自带的有一个账号,就是奥迪 mini 四缺的账号管理员账号,当然你要启动这个账号, 所以我就拆它起用了嘛,我就直接固定了 almightysearch 啊,这个小写就直接指定这个 almightysearch, 嗯,就是这样情况,然后这个杠 p 大 写。咱们前面不是说了吗,指定密码本,这个密码本呢,它就是一个 t 叉 t 文件,然后这个文件里面存放的是咱们前面用那个白鹭 嗯,生成器生成的一些密码,他就会用这个哦的命令是去掉账号,然后一个一个去试密码本里面的每一个密码,这样去试,然后再包括这个 smb 协议,然后然后一个一个去试,就是这样的情况。 ok, 咱们看下一个场景呢,是杠 l 大 写的是指定的用户名文件,咱们把这个 t 叉 t 文件,呃,里面存放的一些账号啊,咱们叫做字典,那么这个就是用户名字典,那前面这个就是密码字典。 ok, 那 这个杠 p 小 写呢?就指定的单个的密码,其实大家注意到没有,是和前面相反的, 前面是杠 l 小 写,指定单个的用户名,杠 p 大 写指定密码字典,那么这里呢,杠 l 大 写,指定的一个是用户名文件,就是用户名字典,然后杠 p 小 写呢,指定的是单个的密码, 那前面这个呢,就是用这个用户名,然后一个一个去拆解这个密码,去报报这个 smb, 那 么这里是一样的,就是用这个用户名, 然后去对应这个密码,然后一个一个去尝试用户名,这里的是用户名变,然后密码不变,这里呢是用户名不变,密码变,然后去包括这个 smb, 这个是个相反的场景。 ok, 那 咱们演示一下这个场景,咱们是哪个场景来着?前面是上一个场景,也就是指定这个用户名去包括这个密码,就是这样一个场景吗?然后去用户名去猜解密码,那咱们现在换一下,换成这个场景, 用用户名去包括这个用户名,把这个密码给固定下来,那你这里就是填这个杠 l 大 写,然后同时要指定一个用户名字,点 r e s 杠 t 叉 t, 然后再把这个改成小写嘛, 当然前提你要知道这个密码,你就说大概的密码,你能猜出来,比如说我现在猜他的密码就是 password 吗? password, ok, 回车过后呢, 大家看这里情况,看到没有它就会把 password 给固定下来,然后去包括这个账号。那还有一个场景, ok, 这种情况就是 l 也大写, p 也大写,那么 l 大 写是指定用户名的 t 叉 t 文件,也就是用户名字典,然后 p 大 写呢?是指定密码字典, 他两个都是字典对字典的,那他是怎么去爆破的呢?他是首先用用户名字典里面的第一条记录第一个用户名,然后一一去匹配密码字典里面的每一个密码,然后第二个去匹配,第二个匹配完了过后呢,第三个去匹配,然后依次往下进行,然后这样去爆破的。 那在这里我为什么不说小写和小写的情况呢?你这什么杠 l 小 写是什么?指定单个密码吗? 你这一个用户名,一个密码有什么可以包括的?那就没有意义了吗?对吧?以上呢,咱们是从攻击者的视角讲怎么去攻击的,那么对于咱们个人而言啊,或者是对于企业而言,怎么去防范这种攻击呢?首先第一个密码要改用一个抢密码,不要使用很简单的密码, 最好是数字加字母加特殊符号,六位数以上密码最好和个人信息无关,比如说生日啊,邮箱姓名啊,都要没有关系,或者是没有很强的关系。第三个呢,肯定就要保护好个人的信息了。紧接着呢,咱们来看一下这个应用场景, 在网络和渗透测试当中,咱们经常会遇到一些登录的后台啊,管理员登录的接口啊等等一些,那咱们怎么去猜他的这个账号和这个密码呢?咱们可以根据他的一些呃登录页的信息,企业信息, 嗯,然后还有他的一些人员信息,咱们用那个百度生成工具去生成相应的字典。而针对这些服务呢, 比如说 s h 啊, r d p 啊, s m b 啊,咱们是以 s m b 为例的嘛,咱们可以使用这个 header 去实现自动化的爆破。那么 header 的 用户名和密码咱们怎么去制定呢?可以使用这个咱们前面讲的这个百度生成工具嘛,那其实这个就呃联系起来了。 ok, 咱们讲完了这两个场景,咱们有没有真实的在这两个场景用到这个工具呢?这个百度工具呢,咱们是有的,咱们看一下,这个是我的某一次授权的深度测试,那么我遇到场景是怎么样的呢?咱们看一下。 首先我遇到的是企业的后台地址,咱们不是说前面有一个遇到了深度测试,遇到了登录框怎么办吗?那看我是怎么办的,我看到这个用户名,然后我就去上网搜他的一个创立时间,然后我根据这个用户名和这个创立时间,我就生成了一个定制化的字典,专属字典, 然后我就去爆破这个密码,当然账号我是首先已经获取了。呃,通过翻一些配置文件啊,我只要获爆破这个密码就行了,但是如果不知道账号和密码的情况下,咱们可以把这个账号和密码一起去爆破了。这里我是知道这个账号的,我把这个密码设置成相应的爆破点就行了。把账号固定下来, 然后就登录了他的后台地址,我就获得了分数。 ok, 咱们总的已经讲完了,咱们总体进行回顾一下,那咱们第一点讲的啥呢?咱们第一点讲了这个 head 的 介绍,大家还记得 head 的 核心功能是啥吗?是爆破。 那咱们还讲了这个命令,大家还记得命令是什么样子的吗?如果暂时忘记的小伙伴呢,可以把进度条往回拉一拉。 ok, 那 咱们讲的第二点是啥呢?第二点是这个白鹭工具如何去制作密码本?大家千万不要忘记领这个白鹭工具哦,可以在下方留言白鹭。 那么咱们第三点讲的啥呢?第三点讲了很久的使用场景啊,一些深度测试啊,网络攻防啊,还有一些端口的测试。 ok, 那 咱们这期讲完了,咱们下期再见。

接口测试,针对加密的接口你是怎么测试的?嗯嗯,首先我们是用 g meter 来做接口测试的,如果遇到加密的接口,一般也就是登录接口的密码加密, 我们可以先判断他是用的什么加密方式,有可能用的是三二五六啊加密或者是啊 md 五加密的方式一般呢是只能向开发要加密的价包的,然后自己在 jimmy 特中写下冰室要脚本进行加密操作,再传到入餐里面。 但是有脚本你也可以自己独立写吗?嗯,当然,这个这个不难嘛。思路就是创建一个加密的对象,然后再执行加密的操作。拿到返回后的加密制表呢,用 put 保存到变量里面就可以了。

听说成都大学官网加密参数变得比川剧脸谱还快,那今天来拆解这所变脸大学的逆向逻辑,看看你是否能跟上节奏,三分钟解密成都大学官网,今天我们来逆向分析一下成都大学的登录页面,然后首先在这里输一下用户名和密码,然后我们再输一下这个验证码, 直接打开开发九公界面版。大家如果是刚入门爬虫正确练手的素材学计划,你想案例学习文档可以在这里点击自取。在当前的网络界面当中,我们来进行抓包,直接点击一下这个动态的话,您猜怎么装?就出现了一个 logo 的 数据包,我们点击下来来看一下他的这在格的数据信息, 那我们滑到下面的话呢,可以看到这里的话呢,应该是有一个叫做 python, 它是密码的意思,但是我们观察它的这个指不是我们刚才输入的这个密码,它是经过了这个加密处理的, 也就是说啊,我们的这一个客户端,也就是这个浏览器,那就像我们这个服务器去请求数据的时候呢,它携带的不是这个明文的密码,而是这个密文的密码,所以我们这个服务器在做一个交易的时候呢,它会判断你的这一个数据有没有经过这个加密的数据,然后去验证。 好,那我们作为一个这一个合格的爬虫程序的话呢,也需要去模拟这个加的过程,我们也需要去把这个啊铭文的密码去变成密文的密码,那怎么做呢?我们需要去找到它这个加密的逻辑,直接来通过这个关键的搜索方式,我们在这里来搜一下,嗯,看一下能不能定位找到它的这个生存位置,好像有点麻烦,那么我可以换一个这个关键词, 我要去找的是它这个加密的逻辑,所以搜索一下这个 enquire。 好, 然后我们在这里去搜索的话呢,找到了几个这个函数的位置啊,来直接打上这个断点,在这个地方呢,多打几个断点啊,不然说它有可能会断不住。来瑞特的位置也打上这个断点。好,然后我们在这个地方的话也打一下这个断点, ok, 然后在这个地方也打一下这个断点。 打完这个断点之后啊,我们嗯就可以去触发那个,触发那个登录事件啊,看一下他会不会断在这里。他能断在这里的话,说明呢,他在发行球的时候肯定是经由了这个代码的,那就是有可能是在这里进行这个加密啊。好,那么我们输一下这个 验证码,然后点击一下这个登录的按钮, ok, 他 直接断在这里了。那现在来研究一下啊,这里的第一个参数是什么? 这的话是一个 o b 混淆的啊,就是这种值的话,你看不懂,对吧?这个其实是一个 o b 混淆的,然后使用的是十六进的这种命名方式。我们再来看一下第二个参数。好,来看一下第二个参数啊, 这个参数的话啊,就是我们看到的这个,看到的那个加密之后的那个密码的值嘛?看一下比较一下, 在这里啊,就基基本上这个结构上是一模一样的,因为我们重新发这个请求了,所以说呢,它的值会不一样,它是动态变化的。来看一下第一个参数啊,这个参数的话是一个矩阵,然后我们再来看一下第二个参数,它的参数的话看看起来就像那个密码,我们对应的观察一下它这个值。好,没问题,就是我刚才输的这个密码。 那么最重要的这一个加密的这个方法呢,就是在这个地方,但是我们可以看到这有个关键字叫做 a s, a s 的 话呢,我们是可以判断它是一个对上加密算法的,来直接点击进来,呃,判断它是一个这一个 对上加密算法标准的 a s 之后,我们可以看到啊,他在这里的话也是做了一个这个混淆的,做了一个混淆,但是呢你可以看这个东西的话是一个标准加密算法库从 里面举到的这个 a s 标准对乘加减法,这个标准加减法库里面有 a s, d, s, h, m, a c, 对 吧?还有算一算五六那些东西啊,不管我们如果说能够去判断它是一个标准的对乘加减法 a s 的 话呢,嗯,就直接来参考一下我们这个支付,就这的话是写了这个笔记啊, 就要去找哪些东西。如果它是一个标准的 es 的 话,我们要去找到它这个密钥,还有它这工作模式,因为你要去处理它这个加密逻辑或者是解密逻辑嘛,还有这个通俗化向量 i v 的 值以及这个填充方式。好,那我们现在的话呢,先来看一下它的这个密钥,密钥的话呢就是第二个参数啊,这个东西 是十六个季节一百二十八位的这个密钥,然后它这个模式是什么?来看一下啊?这个是做了一个混淆的。呃,模式的话呢?就是这个 看一下 e c p 的 这个模式啊,然后再看一下它这个填充方式是 pk 四 g 的, 这个填充方式非常的简单,事实上它就是一个标准的这个对称加密算法 e s 去加密实现的。然后我们只要得到它的这个密钥,还有它的这个模式和填充方式啊,就可以去使用本地的这个标准加密算法库去进行模拟实现。