摘要:点击下一步,进入了这个函数内如果你调试过多次之后,发现这个是将一些加密后的字符串解密为正常的函数名字。你细心的话会发现,下面还有个打乱这个数组的函数,正确来说应该是还原数组,需要两个一起扣下来。
只收藏不点赞的都是耍流氓
注意:目前pdd已经需要登陆,这篇文章是在未更改之前写的,如果需要实践需要先登陆pdd再进行操作即可
上周的pdd很多人说看了还不会找,都找我要写一篇来教教如何扣代码的,那就应大家要求,今天来写一篇详细的扣代码过程,完全从零到一,如果对你有帮助,还望大力分享,这样我会越写越多。
代码都放在我的Github上,还没有star的感觉star了,哈哈,可能今周会更新别的网站,由于网站太强给推迟了,还得需要时间,为了爬虫可谓掉光了头发。
Github:https://github.com/SergioJune...
其他不多说了,直接开始今天的主题,扣代码。
上篇文章我已经找到了加密位置了,就是下图这个位置
如果还不知道怎样找的话,可以看看https://sergiojune.com/2019/0...,微信的被举报删除了,暂时只能在我blog上看了,这里就不多说了。
1. 创建 HTML 文件我们在扣代码之前,为了方便调试,可以先创建一个 html 文件,这样可以方便我们直接在 chrome 上直接进行调试,或者创建一个 js 文件也可以,不过进行调试时需要在 webstorm 上调试才可以。这里我就创建了一个 html 文件。
然后把我们扣下来的代码放到 script 标签里面即可,然后使用浏览器进行打开即可调试。
2. 开始正式扣代码这里我们知道了 ep("0xd2", "jLF%") 这个语句是生成 anti_content 的,所以可以直接打断点到这个语句进行查看它所需要的语句。
点击下一步,进入了这个函数内
如果你调试过多次之后,发现这个是将一些加密后的字符串解密为正常的函数名字。如果你第一次扣的话,估计是把这个函数直接给扣出来,但是后面会有很多麻烦,比如变量之间的关系,所以我们应该是把整个大函数给扣出来,即是包括这个函数的函数,看下图
但是当你扣的时候,发现刚才我们加密的那个方法也在这个函数里面,这时就得改改了,不扣大函数,因为扣了之后调用开始就难免会出错,还是直接把这个小函数扣出来先,如下图:
这时就可以用浏览器打开这个文件了,可以看到报错
这时不要慌,报错是正常的,因为我们只扣了一下部分,所以还需要继续找,接下来就是查看报错的地方并断点。
可以用这个和原网址上的运行作比较,发现这个变量是个数组,所以也直接扣下来。
你细心的话会发现,下面还有个打乱这个数组的函数,正确来说应该是还原数组,需要两个一起扣下来。
这时再次刷新文件即可正常得到结果了
我们再看下一个问题。
再次点击到达错误位置,再根据原网站对比
可以发现这是个函数,可以点击箭头所指函数直达函数位置,发现还是和加密的语句在同一个大函数内,所以我们还是直接扣出 Z 函数即可
再次刷新运行,出错的位置也变了
我们继续进入错误位置和原网址的对比
发现这个变量是个方法名,可以往上找找定义位置
估计这里面的变量都是有用的,所以直接全部扣了
再次刷新即可看到错误地方不一样了,继续找即可。
在出错地方断点的同时也需要在原文件中断点,然后将原文件的运行到该断点处就可以了。
接着就是查找这个对象的定义的地方了,然后把代码扣下来即可。
这里不止 F 对象, 还有 B,U,z等对象,定义位置都是在附近的,也都一起扣下来即可。
再次刷新看到少了个 data 属性,这里自己手动加上即可
接着运行就变成了这个错误
还是同样与原文件做对比即可。找到原文件的定义地方,然后全部扣出来他们的定义。
我这里是将整个大函数都扣出来,然后自调用来返回上面所需要的对象,这样封装可以避免很多变量的冲突。
再次刷新,错误就到了另外一个地方了。
也是一个函数,对比原文,很容易找到函数,直接扣出
继续保存文件刷新,错误也变了
对比原文件,知道这个是搜索的 url,这里我们直接赋值即可,可以在我们调用函数的时候传这个参数。
再次刷新,还是这些对象的data属性的问题
也是和上面的一样,看原文是什么值,直接赋值即可。
然后到了这个错误
还是比较原文,找出函数定义,并扣出来,就不多说了。
接着就是到这里的错误了。
这个错误比较麻烦,不过耐心点来还是可以的,还是来比较原文件中的JS看看那里不一样。
比较这个 Y 对象,发现我们的少了一个data,接着就是找 Y 这个 data 的生成位置了。根据上面的内容,很容易就可以知道定义的位置。
可以知道这个 l() 就是生成 data,可以打断点原文件并刷新就可以看到生成步骤了。
这里需要直接把 l 所在的位置的外部大函数都扣出来,并且自调用返回这个 l 函数即可。
接下来的还是重复之前的步骤,说多了也是废话,相信大家应该能举一反三,如果实在不会的话就多看几遍文章吧,自己动动手,总会有收获的。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/43576.html
摘要:本教程主要基于大神的开源商城,为大家解读的源码,由于原版商城更多是针对国际业务,因此本教程会适当修改,使其更适合于微信环境。 本教程主要基于 terry 大神的开源商城 Fecshop,为大家解读 Fecshop 的源码,由于原版商城更多是针对国际业务,因此本教程会适当修改,使其更适合于微信环境。由于商城源码复杂,本教程将长期更新。本人也是边学习边写这份教程,过程中难免会出现错误,还请...
摘要:模拟登陆知乎这个知乎的登陆也是坑满满,我也给踩了几个,这个就直接说坑吧,其他的就不多说了。 以下内容仅交流学习,请勿用于非法用途 如果你现在想模拟登陆知乎,会发现 fromdata 是一串加密的字符串 showImg(https://segmentfault.com/img/remote/1460000018245629); 看了之后是不是很痛苦?你是不是就想使用 selenium 来...
摘要:模拟登陆知乎这个知乎的登陆也是坑满满,我也给踩了几个,这个就直接说坑吧,其他的就不多说了。 以下内容仅交流学习,请勿用于非法用途 如果你现在想模拟登陆知乎,会发现 fromdata 是一串加密的字符串 showImg(https://segmentfault.com/img/remote/1460000018245629); 看了之后是不是很痛苦?你是不是就想使用 selenium 来...
摘要:编写不可维护的代码是一个特殊的技能,但奇怪的是,似乎对某些开发者来说是很自然的。维护人员没有时间去理解你的代码。你的代码不能看起来不可维护因为别人会怀疑的它必须是不可维护。我希望你相信你自己也能做到,你也可以编写不可维护的代码。 showImg(https://segmentfault.com/img/remote/1460000015221325); 译者注:这是一篇很棒文章,使用有...
阅读 3080·2021-11-24 10:47
阅读 3831·2021-11-02 14:43
阅读 2228·2021-09-26 10:15
阅读 2253·2021-09-08 09:35
阅读 560·2019-08-30 12:45
阅读 2781·2019-08-29 17:04
阅读 3214·2019-08-26 14:05
阅读 1259·2019-08-26 12:10