首页
学习
活动
专区
圈层
工具
发布

bilibili弹幕爬取与比对分析

mid=up主的uid&pagesize=30&tid=0&page=1&keyword=& 直接通过GET请求访问,该接口限制pagesize为100,数目超过就会返回错误,但是该接口会返回一个总数与页数.../{cid}.xml 这个cid就是弹幕xml的文件编号,通过分析异步请求,发现了返回这个cid的返回接口 接口地址:https://api.bilibili.com/x/player/pagelist...xml文件中获取的用户标识是用户uid经过hash后的编码,所以我们需要进行转换后才能对比校验,经过使用在线hash网站中的一个个hash函数尝试比对,发现hash算法为crc32b,crc32是一个常见算法...,用于文件校验,但是crc32b百度了一圈也搜索不到是个啥东西,无奈出国google了一下,crc32b只是将crc32算法加密后的结果转换成了16进制,下面提供c#实现的功能函数 //...xml文件的过程中发现输出流转为文字永远是乱码,经过查看请求网页中header中的值,发现返回的xml数据流是压缩格式的 所以我们对GET请求的方法进行了一些设置,首先Accept-Encoding需要与真正的访问请求保持一致

1K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    记一道少见的与zlib块相关的题

    再用010editor查看图片的信息,我们查找789C,可以发现在这个图片中存在三个789C 图片 先来补充一下相关的知识(感谢夏风师傅的指点): IDAT块是储存图像数据的块,在这个块中存放在图像真正的数据信息...,也就是说没有它就看不到图像 完整的图像数据由一个单独的zlib datastream表示,它储存在一个IDAT块中 一个png文件中无论有多少个IDAT区块,在IDAT块中只会出现一个zlib块 789C...在png文件中为zlib的标志位 一个zlib数据块只有一个标志位,即只会出现一次789C 到这里就会发现问题了,在这个png文件中有三个789C,也就是说在这个图片中还隐藏着另外两张图片的信息 由于IDAT...,用FzWjScJ师傅的脚本爆破一下,将宽高有可能的图片全部生成(此处建议在一个单独的文件夹中跑程序,因为会生成很多图片……) #python3 import binascii from Crypto.Util...当分辨率为1132x160时可以成功看到图片 当然这并不是flag,但是证明了我们方法没有问题,下面我们再用同样的方法处理第三个zlib块 当分辨率为1084x160时得到第二个图片 图片 而真正的

    1K30

    PHP的Mhash扩展函数的学习

    不过这个扩展 Mhash 已经集成在了 Hash 扩展中。同时也需要注意的是,这个扩展已经不推荐使用了,我们应该直接使用 Hash 扩展中的函数来进行 Hash 加密操作。..."Hash:%s,块大小为: %d\n", mhash_get_hash_name($i), mhash_get_block_size($i)); } // Hash:CRC32...块大小为: 0 // Hash:RIPEMD160,块大小为:20 // Hash:,块大小为: 0 // Hash:TIGER,块大小为:24 // Hash:GOST,块大小为:32 // Hash:CRC32B...PHP 中也提供了非常多的常量来代表这些算法,比如在前一段代码中我们使用的 MHASH_MD5 。...= // 101ab899 当然,这个算法也是比较安全的,有 salt 参数,并且它可以指定返回的数据长度。它返回的也是二进制的数据,如果需要保存标准的文本内容也需要将其转化为 16 进制的形式。

    56620

    一封钓鱼邮件带来的乐趣

    溯源不是本文的重点,我搜索了国际刑警的留言信息,找到了原始图片,原本是 PlaidCTF 在 2015 年出的一道取证的题目 PNG_Uncorrupt,刚好演习结束了,我得给自己找找乐子,在几乎安全取证相关技术背景为零的情况下...PNG 规范可知,校验码域是通过 CRC32 算法对类型代号域和实际内容域求值而来,脚本在实际内容域的第一个字节前依次尝试插入 [0, 255] 范围内的值,验证 CRC32 结果是否等于校验码域,若不等继续尝试在第二个字节前插入...python 内置的 zlib.crc32() 函数支持 CRC32 算法: ? 参数必须是 bytes 类型,所以我得以二进制模式读入文件。...分析过程与之前类似,预期实际内容为 0x020000 个字节,而真实只有 (262256 + 0x0C) - (131184 + 0x0C + 4) + 1 个,缺失 3 个字节,按先前的预判,均为 0x0A...最后,被我溯源的那台 CC 并没写入蓝队报告中,因为,虽然我在蓝队,但有颗红心!

    1K30

    21.10 Python 使用CRC32校验文件

    使用第一种方式,函数recursion_all_file使用第二种,这两种方式都返回_file列表,读者可使用列表接收输出数据集。...库中的crc32方法计算特定文件的CRC32值,如下所示。...temp: break return crc except Exception: return 0 return 0在主函数中...并将该特征保存至dump.json文件内,如下图所示;图片指定mode模式为check并指定转存之前的dump.json文件,则可用于验证当前目录下是否存在异常文件,如果文件特征值发生了变化则会提示异常文件,而如果文件被删除或被重命名则会输出文件丢失...) else: parser.print_help()如下图所示,我们通过传入d://lyshark以及关键字gumbo_normalized_tagname并设置扫描后缀类型*.c当程序运行后

    87430

    php操作memcache的使用测试总结

    memcache.hash_function string 控制哪种 hsah 函数被应用于 key映射 到服务器过程中,默认值“crc32”使用 CRC32 算法,而“fnv”则表示使用 FNV-1a...每一个失败的服务器在失效前都有独自的生存期,选择后端请求时会被跳过而不服务于请求。一个过期的连接将成功的重新连接或者被标记为失败的连接等待下一次 重试。...返回缓存的指定 key 的变量内容或者是在失败或该变量的值不存在时返回 FALSE  如果传出的key的数组中的key都不存在,返回的结果是一个空数组,反之则返回key与缓存值相关联的关联数组 2.8.4...> 2.10.Memcache::flush 2.10.1.说明 bool Memcache::flush ( void ) 清空所有缓存内容,不是真的删除缓存的内容,只是使所有变量的缓存过期,使内存中的内容被重写...每一个失败的服务器在失效前都有独自的生存期,选择后端请求时会被跳过而不服务于请求。一个过期的连接将成功的重新连接或者被标记为失败的连接等待下一次 重试。

    2.2K70

    HTTP传输数据压缩

    人们普遍认为default不受任何专利所制约,并且在LZW(GIF文件格式使用)相关的专利失效之前,这种格式除了在ZIP文件格式中得到应用之外也在gzip压缩文件以及PNG图像文件中得到了应用。...因为gzip数据中的zlib压缩数据块没有zlib header的两个字节。使用inflateInit2时要求zlib库忽略zlib header。...在zlib手册中要求windowBits为8..15,但是实际上其它范围的数据有特殊作用,见zlib.h中的注释,如负数表示raw deflate。                 ...例如Firefox的zlib假头为0x7801,python zlib.compress()结果头部为0x789c。                 ...deflate 是最基础的算法,gzip 在 deflate 的 raw data 前增加了 10 个字节的 gzheader,尾部添加了 8 个字节的校验字节(可选 crc32 和 adler32)

    3.9K70

    xmake vs cmake对比分析

    当初我做xmake的目的,也并不是为了完全替代cmake,这没啥意义,只是觉得cmake的语法和易用性满足不了我,我还是更喜欢更简单直观的方式去描述和维护项目,在不同平台下提供近乎一致的使用体验。...项目源码 官方文档 xmake v2.2.6 发布, Qt/Android编译支持 特性支持 我先罗列下构建工具的一些主要基础特性对比,大部分特性两者都是支持的,而xmake的优势主要还是在:语法、包仓库管理...add_files("src/**.c|impl/*.c") 更多关于这个接口的使用说明,见相关文档:add_files接口文档 cmake cmake似乎并不支持这种方式,只能挨个添加。...") end) on_run(function (target) os.run("%s --help", target:targetfile()) end) 在自定义脚本中...像android平台编译,配置ndk的方式似乎也很繁琐。 cmake ..

    2.4K20

    “大”事务引起的锁等待分析案例

    从接口名称也清楚的知道是在进行禁用用户的操作,猜想: 禁用用户的逻辑上有先挪到回收站,再删资料、删权限、删关系,清理缓存等等一系列操作,放在事务里保证他们的原子性,似乎是合理的。...、这个事务执行到一半,它需要操作的数据被别人锁住,等待了这么久 2、类似事务要操作5000条数据,但是一条一条的操作,然后一起提交(已出现过类似的例子) 3、事务务执行完成很快,但调用其它接口迟迟没有返回...不会是1和2,因为从一开始的分析看到事务 19705811640 都是在阻塞别人,而不是受害者。...0x25216430 GTID [commit=yes] SET @@SESSION.GTID_NEXT= '56506509-b971-11e6-8c19-6c92bf2c8aaf:10306353216...开发再次回去检查,发现在Spring框架的时,在类上面用 @Transactional 的方式做了事务,而常规的做法是把注解加在类的方法上,导致忽略了这个因素。

    1.3K20

    “大”事务引起的锁等待分析案例

    从接口名称也清楚的知道是在进行禁用用户的操作,猜想: 禁用用户的逻辑上有先挪到回收站,再删资料、删权限、删关系,清理缓存等等一系列操作,放在事务里保证他们的原子性,似乎是合理的。...、这个事务执行到一半,它需要操作的数据被别人锁住,等待了这么久 2、类似事务要操作5000条数据,但是一条一条的操作,然后一起提交(已出现过类似的例子) 3、事务务执行完成很快,但调用其它接口迟迟没有返回...不会是1和2,因为从一开始的分析看到事务 19705811640 都是在阻塞别人,而不是受害者。...0x25216430 GTID [commit=yes] SET @@SESSION.GTID_NEXT= '56506509-b971-11e6-8c19-6c92bf2c8aaf:10306353216...开发再次回去检查,发现在Spring框架的时,在类上面用 @Transactional 的方式做了事务,而常规的做法是把注解加在类的方法上,导致忽略了这个因素。

    91010

    在MySQL中建立自己的哈希索引(书摘备查)

    在MySQL中,只有Memory存储引擎支持显式的哈希索引,但是可以按照InnoDB使用的方式模拟自己的哈希索引。这会让你得到某些哈希索引的特性,例如很大的键也只有很小的索引。...想法非常简单:在标准B-Tree索引上创建一个伪哈希索引。它和真正的哈希索引不是一回事,因为它还是使用B-Tree索引进行查找。然而,它将会使用键的哈希值进行查找,而不是键自身。...你可以手工进行维护,在MySQL 5.0及以上版本中,可以使用触发器来进行维护。下面的例子显示了触发器如何在插入和更新值的时候维护url_crc列。...如果表有很多行并且crc32()产生了很多冲突,就要实现自己的64位哈希函数。要确保自己的函数返回整数,而不是字符串。...如果碰撞不是问题,不如进行统计并且不需要精确的结果,就可以通过在where子句中使用crc32()值简化查询,并得到效率提升。

    2.9K30

    PHP的Hash信息摘要扩展框架

    PHP的Hash信息摘要扩展框架 今天我们主要学习的是 PHP 中一些 Hash 散列加密相关的扩展函数的使用,而不是 Hash 算法,这种加密其实也只是一种更复杂一些的密钥算法,与 Hash 算法类似的是...在 PHP 中,不管是 md5 还是 sha1 ,同样的输入会产生同样的结果。由此,如果在保存用户密码类的信息时,我们尽量不要只使用一层 Hash ,因为这种形式的加密是可以通过彩虹表暴力破解出来的。...这一套功能当然在我们的 PHP 中也是完美支持的。 / 文件 HASH echo hash_file('md5', '....hmac 只需要一个密钥就可以了,hash_hkdf() 则是增加了返回长度、应用程序/特定于上下文的信息字符串、以及盐值三个参数,而且加密后的内容是二进制的加密内容,是不是感觉很高大上!...而 hash_equals() 则是不管怎么比较,相同的 Hash 算法长度的内容返回的时间都是相同的。OpenSSL 、 OpenSSH 等软件都曾出现过这种类似的时序攻击漏洞!

    1.2K30

    CC++ 构建系统,我用 xmake

    同时也让用户在开发 C/C++ 项目的时候,拥有与其他语言一样的良好体验,比如:Rust/Cargo,Nodejs/Npm, Dlang/Dub,不再为到处找第三包,研究如何移植编译而折腾。...XMake 的特性和优势 经常有人问我 XMake 有什么特别之处,相比现有 CMake、Meson 此类构建工具有什么优势,我为什么要使用 XMake 而不是 CMake?...XMake 都可以帮他们提升开发效率,让其更加关注 C/C++ 项目本身,而不是花更多的时间在构建工具和开发环境上。 下面,我来具体介绍 XMake 的这些主要特性。.../*.c") add_packages("zlib") XMake 同样会自动安装 conan 中的 zlib 包,然后自动集成编译。...比如,我们在 Windows 上使用 mingw-w64 工具链来编译 C/C++ 工程,只需要做如下配置即可。

    3.3K20

    Nginx与Gzip请求

    每当我遇到难题的时候就会想起lua-nginx-module,它总是能屡建奇功,这次自然也不例外,仔细搜索了一下OpenResty社区,发现有人遇到了同样的问题,春哥在讨论中给出了建议,不过并没有涉及具体的实现逻辑...,不过例子里介绍的是Deflate,而不是Gzip,自己用FFI封装Gzip的话又有点小复杂,好在别人已经做了相关的工作,那就是lua-files: local ffi = require "ffi"...实际上这是因为如下zlib.lua代码的缘故: local C = ffi.load 'zlib' 运行时,ffi.load会自动补全文件名,如果是Windows,则加载zlib.dll文件,如果是Linux...知道的问题的原委,我们自然就知道如何修改代码了: local C if ffi.os == "Windows" then C = ffi.load "zlib" else C = ffi.load...不同的语言似乎是个难题,好在Nginx有Phases一说,PHP作为FastCGI模块工作在content阶段,LUA可以工作在access阶段,这样它们就和谐了: location ~ \.php$

    1.1K40
    领券