驱动开发:内核LoadLibrary实现DLL注入

远程线程注入是最常用的一种注入技术,在应用层注入是通过`CreateRemoteThread`这个函数实现的,通过该函数通过创建线程并调用 `LoadLibrary` 动态载入指定的DLL来实现注入,而在内核层同样存在一个类似的内核函数`RtlCreateUserThread`,但需要注意的是此函数未被公开,`RtlCreateUserThread`其实是对`NtCreateThreadEx`的包

1.6 编写双管道ShellCode后门

本文将介绍如何将`CMD`绑定到双向管道上,这是一种常用的黑客反弹技巧,可以让用户在命令行界面下与其他程序进行交互,我们将从创建管道、启动进程、传输数据等方面对这个功能进行详细讲解。此外,本文还将通过使用汇编语言一步步来实现这个可被注入的`ShellCode`后门,并以此提高代码通用性。最终,我们将通过一个实际的漏洞攻击场景来展示如何利用这个后门实现内存注入攻击。

4.8 x64dbg 学会扫描应用堆栈

LyScript 插件中提供了针对堆栈的操作函数,对于堆的开辟与释放通常可使用`create_alloc()`及`delete_alloc()`在之前的文章中我们已经使用了堆创建函数,本章我们将重点学习针对栈的操作函数,栈操作函数有三种,其中`push_stack`用于入栈,`pop_stack`用于出栈,而最有用的还属`peek_stack`函数,该函数可用于检查指定堆栈位置处的内存参数,利用这

7.4 C/C++ 实现链表栈

相对于顺序栈,链表栈的内存使用更加灵活,因为链表栈的内存空间是通过动态分配获得的,它不需要在创建时确定其大小,而是根据需要逐个分配节点。当需要压入一个新的元素时,只需要分配一个新的节点,并将其插入到链表的头部;当需要弹出栈顶元素时,只需要删除链表头部的节点,并释放其所占用的内存空间即可。由于链表栈的空间利用率更高,因此在实际应用中,链表栈通常比顺序栈更受欢迎。在实现上,链表栈通过使用`malloc

1.6 编写双管道ShellCode

本文将介绍如何将`CMD`绑定到双向管道上,这是一种常用的黑客反弹技巧,可以让用户在命令行界面下与其他程序进行交互,我们将从创建管道、启动进程、传输数据等方面对这个功能进行详细讲解。此外,本文还将通过使用汇编语言一步步来实现这个可被注入的`ShellCode`后门,并以此提高代码通用性。最终,我们将通过一个实际的漏洞攻击场景来展示如何利用这个后门实现内存注入攻击。

2.11 PE结构:添加新的节区

在可执行PE文件中,节(section)是文件的组成部分之一,用于存储特定类型的数据。每个节都具有特定的作用和属性,通常来说一个正常的程序在被编译器创建后会生成一些固定的节,通过将数据组织在不同的节中,可执行文件可以更好地管理和区分不同类型的数据,并为运行时提供必要的信息和功能。节的作用是对可执行文件进行有效的分段和管理,以便操作系统和加载器可以正确加载和执行程序。

3.2 DLL注入:远程APC异步注入

APC(Asynchronous Procedure Call)异步过程调用是一种`Windows`操作系统的核心机制,它允许在进程上下文中执行用户定义的函数,而无需创建线程或等待OS执行完成。该机制适用于一些频繁的、短暂的或非常细微的操作,例如改变线程优先级或通知线程处理任务。在`APC机制`中,当某些事件发生时(例如文件IO,网络IO或定时器触发),这些事件将被操作系统添加到一个`APC队列`

14.4 Socket 双向数据通信

所谓双向数据传输指的是客户端与服务端之间可以无差异的实现数据交互,此类功能实现的核心原理是通过创建`CreateThread()`函数多线程分别接收和发送数据包,这样一旦套接字被建立则两者都可以异步发送消息,本章将实现简单的双向交互功能。首先我们需要封装两个函数,这里`RecvFunction`函数用于接收数据,`SendFunction`函数则用于发送数据,这两段代码在服务端与客户端之间是一致的

基于U-Net网络的图像分割的MindStudio实践

摘要:本实践是基于Windows版MindStudio 5.0.RC3,远程连接ECS服务器使用,ECS是基于官方分享的CANN6.0.RC1_MindX_Vision3.0.RC3镜像创建的。 本文分享自华为云社区《【MindStudio训练营第一季】基于U-Net网络的图像分割的MindStud

5步带你入门GaussDB(DWS)的GDS导入导出

摘要:本篇文档为使用GDS导入示例的具体简单步骤和示例。 本文分享自华为云社区《带你快速入门GDS导入导出,玩转PB级数仓GaussDB(DWS)》,作者: yd_220527686。 1、创建导入目标表 CREATE TABLE tpcds_reasons ( r_reason_sk intege

Kubernetes(K8S) 配置管理 Secret 介绍

Secret 作用:加密数据(base64)存在 etcd 里面,让 Pod 容器以挂载 Volume 方式进行访问 场景:凭证 [root@k8smaster ~]# echo -n 'admin' | base64 # 创建 secret [root@k8smaster ~]# kubectl

Axure 辅助线--栅格化布局

全局辅助线 在所有页面都会显示,比如主页面是框架、子页面通过【内联框架】去加载,为了子页面的元件不偏移,可以创建创建全局辅助线 页面辅助线

ElasticSearch 实现分词全文检索 - delete-by-query

delete-by-query 根据 term、match 等查询方式去删除大量的文档 > 如果需要删除的内容,是index下的大部分数据,不建议使用,因为去匹配文档时还是一个一个的拿到文档ID,去删除 推荐创建一个全新的index,将保留的文档内容,添加到全新的索引中

Java BasePooledObjectFactory 对象池化技术

Java GenericObjectPool 对象池化技术--SpringBoot sftp 连接池工具类 一个对象池包含一组已经初始化过且可以使用的对象,而可以在有需求时创建和销毁对象。池的用户可以从池子中取得对象,对其进行操作处理,并在不需要时归还给池子而非直接销毁它。这是一种特殊的工厂对象。

Mac 常用软件、快捷健、常用操作 和 Windows 对比

### 常用快捷健 | Mac | Windows | 说明 | | -- | | | |活动监视器 | 任务管理器 | | 制作替身 | 创建快捷方式 | | Command + I | 右击属性 | 显示简介 | | Command + Option + I | | 开启信息检查器 + 鼠标选文

Python 搭建 FastAPI 项目

一般网上的文章都是以脚本的方式写Demor的,没找到自己想要的那种项目结构型的示例(类似Java SpringBoot 创建 Model,通过 pom 进行关联配置的那种) 看了一些源码,再结合自己的想法,建了一个简单的示例, 用 Python 做接口服务的项目搭建,仅供参考 代码结构说明 VipQ

项目中统计SQL执行缓慢的方案-数据预处理

使用场景: 由于表数据量巨大,导致一些统计相关的sql执行非常慢,使用户有非常不好的体验,并且sql和数据库已经没有优化空间了。(并且该统计信息数据实时性要求不高的前提下) 解决方案: 整体思路:创建预处理表——通过定时任务将数据插入到结果表——统计信息时直接通过结果表进行查询——大大提高响应速度

制作Jdk镜像

本文介绍用Dockerfile的方式构建Jdk镜像,请保证安装了Docker环境。 1. 首先创建/opt/jdk目录,后续步骤都在该目录下进行操作。 2. 准备好Jdk安装文件,放到/opt/jdk目录下。 3. 编写Dockerfile,内容如下: ```Dockerfile FROM cent

制作tomcat镜像

本篇文章介绍用Dockerfile的方式构建Tomcat镜像,请保证安装了Docker环境。 1. 首先创建/opt/tomcat目录,后续步骤都在该目录下进行操作。 2. 准备好Jdk和Tomcat安装文件,放到/opt/tomcat目录下。 3. 编写Dockerfile,内容如下: ```Do

docker制作springboot镜像

以下步骤在具有Docker环境的Linux机器上操作。 把springboot-1.0.0.jar放到/usr/local/springboot目录下,并在该目录下创建Dockerfile文件,内容为: FROM openjdk:8-jdk-alpine ADD springboot-1.0.0.j