探究Presto SQL引擎(4)-统计计数

本篇文章介绍了统计计数的基本原理以及Presto的实现思路,精确统计和近似统计的细节及各种优缺点,并给出了统计计数在具体业务使用的建议。

Node.js 应用全链路追踪技术——全链路信息存储

本文主要介绍在Node.js应用中, 如何用全链路信息存储技术把全链路追踪数据存储起来,并进行相应的展示,最终实现基于业界通用 OpenTracing 标准的 Zipkin 的 Node.js 方案。

vivo版本发布平台:带宽智能调控优化实践-平台产品系列03

随着分发规模地逐步增长,各企业对CDN带宽的使用越来越多。并且,各类业务使用CDN的场景各式各样,导致带宽会不断地出现骤增骤降等问题。基于成本考虑,国内CDN厂商的计费模式主要用峰值点的带宽来计费,就算不用峰值点的带宽,也会因为峰值问题所产生的成本而抬高带宽单价。基于此,控制CDN带宽的峰谷具有重要意义,降低峰值就意味着成本节省。

深度学习(十一)——神经网络:线形层及其他层介绍

主要介绍神经网络线性层的计算,即torch.nn.Linear的原理及应用。并插入一些神经网络的其他层介绍,及调用pytorch中网络模型的方法。

驱动开发:内核层InlineHook挂钩函数

内核中的`InlineHook`函数挂钩技术其实与应用层完全一致,都是使用劫持执行流并跳转到我们自己的函数上来做处理,唯一的不同只有一个内核`Hook`只针对内核API函数,虽然只针对内核API函数实现挂钩但由于其身处在最底层所以一旦被挂钩其整个应用层都将会受到影响,这就直接决定了在内核层挂钩的效果是应用层无法比拟的,对于安全从业者来说学会使用内核挂钩也是很重要的。

驱动开发:PE导出函数与RVA转换

在笔者上篇文章`《驱动开发:内核扫描SSDT挂钩状态》`中简单介绍了如何扫描被挂钩的SSDT函数,并简单介绍了如何解析导出表,本章将继续延申PE导出表的解析,实现一系列灵活的解析如通过传入函数名解析出函数的RVA偏移,ID索引,Index下标等参数,并将其封装为可直接使用的函数,以在后期需要时可以被直接引用,同样为了节约篇幅本章中的`LoadKernelFile()`内存映射函数如需要使用请去前一

1.7 完善自定位ShellCode后门

在之前的文章中,我们实现了一个正向的匿名管道`ShellCode`后门,为了保证文章的简洁易懂并没有增加针对调用函数的动态定位功能,此类方法在更换系统后则由于地址变化导致我们的后门无法正常使用,接下来将实现通过PEB获取`GetProcAddrees`函数地址,并根据该函数实现所需其他函数的地址自定位功能,通过枚举内存导出表的方式自动实现定位所需函数的动态地址,从而实现后门的通用性。

4.5 x64dbg 探索钩子劫持技术

钩子劫持技术是计算机编程中的一种技术,它们可以让开发者拦截系统函数或应用程序函数的调用,并在函数调用前或调用后执行自定义代码,钩子劫持技术通常用于病毒和恶意软件,也可以让开发者扩展或修改系统函数的功能,从而提高软件的性能和增加新功能。钩子劫持技术的实现一般需要在对端内存中通过`create_alloc()`函数准备一块空间,并通过`assemble_write_memory()`函数,将一段汇编代

3.0 Python 迭代器与生成器

当我们需要处理一个大量的数据集合时,一次性将其全部读入内存并处理可能会导致内存溢出。此时,我们可以采用迭代器`Iterator`和生成器`Generator`的方法,逐个地处理数据,从而避免内存溢出的问题。迭代器是一个可以逐个访问元素的对象,它实现了`python`的迭代协议,即实现了`__iter__()`和`__next__()`方法。通过调用`__next__()`方法,我们可以逐个访问迭代

4.6 C++ Boost 函数绑定回调库

Boost库中提供了函数对象库,可以轻松地把函数的参数和返回值进行绑定,并用于回调函数。这个库的核心就是bind函数和function类。bind函数可以将一个函数或函数对象和其参数进行绑定,返回一个新的函数对象。通过这个新的函数对象,我们就可以将原有的函数或函数对象当做参数传来传去,并可以传递附加的参数,方便实现参数绑定和回调函数。function类用于表示一种特定的函数签名,可以在不知道具体函

4.9 C++ Boost 命令行解析库

命令行解析库是一种用于简化处理命令行参数的工具,它可以帮助开发者更方便地解析命令行参数并提供适当的帮助信息。C++语言中,常用的命令行解析库有许多,通过本文的学习,读者可以了解不同的命令行解析库和它们在C++项目中的应用,从而更加灵活和高效地处理命令行参数。

C++ LibCurl 库的使用方法

LibCurl是一个开源的免费的多协议数据传输开源库,该框架具备跨平台性,开源免费,并提供了包括`HTTP`、`FTP`、`SMTP`、`POP3`等协议的功能,使用`libcurl`可以方便地进行网络数据传输操作,如发送`HTTP`请求、下载文件、发送电子邮件等。它被广泛应用于各种网络应用开发中,特别是涉及到数据传输的场景。

1.7 完善自定位ShellCode

在之前的文章中,我们实现了一个正向的匿名管道`ShellCode`后门,为了保证文章的简洁易懂并没有增加针对调用函数的动态定位功能,此类方法在更换系统后则由于地址变化导致我们的后门无法正常使用,接下来将实现通过PEB获取`GetProcAddrees`函数地址,并根据该函数实现所需其他函数的地址自定位功能,通过枚举内存导出表的方式自动实现定位所需函数的动态地址,从而实现后门的通用性。

7.5 通过API判断进程状态

进程状态的判断包括验证进程是否存在,实现方法是通过枚举系统内的所有进程信息,并将该进程名通过`CharLowerBuff`转换为小写,当转换为小写模式后则就可以通过使用`strcmp`函数对比,如果发现继承存在则返回该进程的PID信息,否则返回-1。

Solution -「模拟赛」草莓蛋糕

\(\max(a_x + a_y, b_y + b_x)\) 的贡献形式不是独立的,并不好进行分析。考虑通过分类讨论将 \(\max\) 拆开。若令 \(h_i = a_i - b_i\),\(h'_i = b_i - a_i\),可以发现若 \(h_x \geqslant h'_y\) 取值则为

稳定支撑千万级月活,华为日历背后的英雄

摘要:华为日历月活高达数千万,这使其对支撑业务的数据库提出了巨大挑战:高并发场景下,数据库如何实现快速扩容?海量数据运行,如何确保业务稳定性? 本文分享自华为云社区《稳定支撑千万级月活,华为日历背后的英雄》,作者: GaussDB 数据库。 随着科技进步,手机日历早已融入我们的生活,不仅可以记录时间

过年回去,终于给老人讲清楚两台电脑是如何通信的

摘要:本文将从小白的角度,讲解两台计算机之间是如何精确的找到对方的位置并发送和接收消息的,以从宏观角度把握计算机网络的体系结构。 本文分享自华为云社区《两台计算机之间究竟是如何通信的?》,作者:龙哥手记。 计算机网络的知识点非常杂乱且琐碎,非常容易让人产生畏惧心理。其实计网通篇研究的核心就是不同计算

docker部署java项目

1、首先你需要提前准备好jar包或者war包,并想办法放入Linux环境(或虚拟机)中; 2、java项目的部署需要用到Tomcat或者Jetty,docker可以直接拉取他俩的镜像,这里以Tomcat为例: # : 后面需要加上war或者jar对应的Tomcat版本,最好加上, # 否则默认最新的

Docker Jenkins 安装配置

由于低版本的安装插件很麻烦,插件版本依赖很坑,所以选择了安装最新版 Jenkins,并使用 docker 安装

大数据-业务数据采集-FlinkCDC

CDC CDC 是 Change Data Capture(变更数据获取)的简称。核心思想是,监测并捕获数据库的变动(包括数据或数据表的插入、更新以及删除等),将这些变更按发生的顺序完整记录下来,写入到消息中间件中以供其他服务进行订阅及消费。 CDC 的种类 CDC 主要分为基于查询和基于 Binl