当前位置: 首页 > news >正文

deepseek的模型经过训练 ai写出了linux 64位加壳软件

 

1. 加壳程序的设计目标

  • 目标:保护64位Linux下的可执行文件,使其难以被反编译或调试。
  • 核心功能
    • 在运行时加载原始可执行文件并解密。
    • 隐藏壳代码和原程序的真正入口点。
    • 提供一定的反调试机制。

2. 思路

  1. 加壳流程

    • 加载器(Loader):负责将壳代码和被保护的程序加载到内存中。
    • 解密引擎:解密原始可执行文件的加密部分,并将其注入到内存中。
    • 原始程序入口点:实际程序在解密后运行。
  2. 核心模块

    • API Hooking:捕获关键系统调用,防止调试工具(如GDB)附加到进程。
    • Anti-Debugging:检测是否在调试环境下运行。
    • 加密机制:对原始程序代码进行加密,并通过解密引擎在内存中还原。

3. 示例代码框架

以下是一个基于C语言和x86_64汇编语言的示例加壳程序。这个示例假设你已经有一个需要保护的可执行文件(target.exe),并将生成一个带壳的新文件(protected.exe)。

加载器代码(loader.c
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <elf.h>#define SHELL_CODE_SIZE 1024int main(int argc, char *argv[]) {if (argc != 3) {printf("Usage: %s <target_executable> <protected_executable>\n", argv[0]);return 1;}// 加载目标文件int fd = open(argv[1], O_RDONLY);if (fd == -1) {perror("Failed to open target executable");return 1;}struct stat st;fstat(fd, &st);off_t file_size = st.st_size;void *mem = malloc(file_size + SHELL_CODE_SIZE);if (!mem) {perror("Failed to allocate memory");return 1;}// 复制目标文件内容到内存read(fd, mem, file_size);close(fd);Elf64_Ehdr *ehdr = (Elf64_Ehdr *)mem;// 生成随机盐值用于加密unsigned char salt[16];// (注:实际需要实现一个加密算法,如AES)// 编写Shell代码并注入到内存中void *shell_code = mem + file_size;*(unsigned long long *)shell_code = ...; // shellcode入口int protect_fd = open(argv[2], O_WRONLY | O_CREAT, 0755);if (protect_fd == -1) {perror("Failed to create protected executable");return 1;}// 将壳程序写入文件write(protect_fd, shell_code, SHELL_CODE_SIZE);close(protect_fd);free(mem);return 0;
}

壳代码示例(x86_64汇编)
section .textglobal _start_start:; 检查是否在调试器下运行mov rax, 0x7d /* syscall gettid */syscallmov [ThreadId], eax; 检测 GDB 是否附加xor rbx, rbxlea rcx, [rbx + 1]sysret:inc rbxcmp rbx, 100d  ; 设置一个阈值,防止无限循环jge exit      ; 如果超过阈值,退出nopint3            ; 碰到断点的话,会停止在调试器中

相关文章:

deepseek的模型经过训练 ai写出了linux 64位加壳软件

1. 加壳程序的设计目标 目标&#xff1a;保护64位Linux下的可执行文件&#xff0c;使其难以被反编译或调试。核心功能&#xff1a; 在运行时加载原始可执行文件并解密。隐藏壳代码和原程序的真正入口点。提供一定的反调试机制。 2. 思路 加壳流程&#xff1a; 加载器&#xf…...

解锁音频新境界:LALAL.AI 与 Audo Studio 深度解析

在音频处理的世界里&#xff0c;噪音常常是困扰我们的一大难题。无论是专业的音频工作者&#xff0c;还是普通的音频爱好者&#xff0c;都渴望拥有一款强大的工具来解决这个问题。今天&#xff0c;就为大家介绍两款来自 AI 工具导航&#xff08;AIDH.NET&#xff09;的 AI 语音…...

Kubernetes 使用 Kube-Prometheus 构建指标监控 +飞书告警

1 介绍 Prometheus Operator 为 Kubernetes 提供了对 Prometheus 机器相关监控组件的本地部署和管理方案&#xff0c;该项目的目的是为了简化和自动化基于 Prometheus 的监控栈配置&#xff0c;主要包括以下几个功能&#xff1a; Kubernetes 自定义资源&#xff1a;使用 Kube…...

20250221 NLP

1.向量和嵌入 https://zhuanlan.zhihu.com/p/634237861 encoder的输入就是向量&#xff0c;提前嵌入为向量 二.多模态文本嵌入向量过程 1.文本预处理 文本tokenizer之前需要预处理吗&#xff1f; 是的&#xff0c;文本tokenizer之前通常需要对文本进行预处理。预处理步骤可…...

【C++】const关键字的作用及常见应用场景

一、核心作用 用于定义“常量”&#xff0c;限制程序对变量的修改&#xff0c;提升代码安全性和可读性。其核心作用包括&#xff1a; 避免误修改&#xff1a;明确标识不可变数据。编译器优化&#xff1a;常量可被放入符号表&#xff0c;减少内存访问&#xff0c;优化执行效率…...

04控制流

一、二路分支 逻辑&#xff1a;程序中某段代码需要在满足某个条件时才能运行形式&#xff1a; if 语句&#xff1a;表达一种 如果-则 的条件执行关系if-else 语句&#xff1a;表达一种 如果-否则 的互斥分支关系 流程图&#xff1a; 注意&#xff1a; if 语句可以单独使用&…...

【Leetcode 每日一题】2506. 统计相似字符串对的数目

问题背景 给你一个下标从 0 0 0 开始的字符串数组 w o r d s words words。 如果两个字符串由相同的字符组成&#xff0c;则认为这两个字符串 相似 。 例如&#xff0c;“abca” 和 “cba” 相似&#xff0c;因为它们都由字符 ‘a’、‘b’、‘c’ 组成。然而&#xff0c;“…...

【Shell编程 / 9】脚本实战项目:从基础到进阶的自动化管理方案

文章目录 Shell脚本实战项目自动化部署脚本系统监控脚本文件备份脚本定时任务管理脚本文件传输自动化脚本自动化日志清理脚本用户管理脚本 Shell脚本实战项目 在掌握了 Shell 脚本的基本语法和高级技巧后&#xff0c;实践是进一步提升脚本编写能力的关键。通过参与一些实际的项…...

在PyTorch中使用插值法来优化卷积神经网络(CNN)所需硬件资源

插值法其实就是在已知数据点之间估计未知点的值。通过已知的离散数据点,构造一个连续的曲线函数,预测数据点之间的空缺值是什么并且自动填补上去。 适用场景: 在卷积神经网络(CNN)中的应用场景中,经常遇到计算资源有限,比如显存不够或者处理速度慢,需要用插值来降低计…...

黄金市场现状与驱动因素分析

一、当前市场现状&#xff1a;挤兑、运力与供应链危机 全球金库告急与运输瓶颈 伦敦商业银行金库的黄金存量告急&#xff0c;纽约和伦敦市场出现“史诗级挤兑”。提取英格兰银行金库的黄金需等待4-8周&#xff0c;远高于常规的几天时间[citation:用户描述]。专业运输车辆超负荷…...

Linux arm64 IOMMU总结

一、DMA的引入 Non-DMA&#xff1a;CPU直接与设备进行数据交互&#xff0c;CPU的负载会随着数据的读写而增加&#xff1b; DMA&#xff1a;CPU不参与数据的直接传输&#xff0c;DMA Controller负责Device与Memory之间的数据搬运&#xff0c;并以中断信号的形式通知CPU&#xf…...

服务器通过 ollama 运行deepseek r1

1、服务器环境简介 56核 CPU64G 内存无显卡已安装 Ollama 2、下载模型与配置 正常可以通过 ollama pull 或 ollama run 命令直接下载&#xff0c;但通常会遇到连接超时、找不到网址等总理。因此&#xff0c;可以使用国内的模型站进行下载&#xff0c;在这里使用魔塔查找模型…...

MYSQL学习笔记(九):MYSQL表的“增删改查”

前言&#xff1a; 学习和使用数据库可以说是程序员必须具备能力&#xff0c;这里将更新关于MYSQL的使用讲解&#xff0c;大概应该会更新30篇&#xff0c;涵盖入门、进阶、高级(一些原理分析);这一篇讲述一些在MYSQL的数据类型&#xff0c;和表的“增删改查”基本操作;虽然MYSQ…...

Oracle JDK、Open JDK zulu下载地址

一、Oracle JDK https://www.oracle.com/java/technologies/downloads/ 刚进去是最新的版本&#xff0c;往下滑可以看到老版本 二、Open JDK的 Azul Zulu https://www.azul.com/downloads/ 直接可以选版本等选项卡...

分类解析决策模型

一、按理性程度划分的决策模型 1. 完全理性模型(古典决策理论) 核心假设:决策者拥有完全信息,能计算所有选项的效用并选择最优解。数学模型: 期望效用理论(Expected Utility Theory, EU): E U = ∑ ( p i...

【SPIE出版,见刊快速,EI检索稳定,浙江水利水电学院主办】2025年物理学与量子计算国际学术会议(ICPQC 2025)

2025年物理学与量子计算国际学术会议&#xff08;ICPQC 2025&#xff09;将于2025年4月18-20日在中国杭州举行。本次会议旨在汇聚全球的研究人员、学者和业界专家&#xff0c;共同探讨物理学与量子计算领域的最新进展与前沿挑战。随着量子技术的快速发展&#xff0c;其在信息处…...

【网络】高级IO——Reactor版TCP服务器

1.什么是Reactor Reactor 是一种应用在服务器端的开发模式&#xff08;也有说法称 Reactor 是一种 IO 模式&#xff09;&#xff0c;目的是提高服务端程序的并发能力 它要解决什么问题呢&#xff1f; 传统的 thread per connection 用法中&#xff0c;线程在真正处理请求之前首…...

3.Docker常用命令

1.Docker启动类命令 1.启动Docker systemctl start docker 2.停止Docker systemctl stop docker 3.重启Docker systemctl restart docker 4.查看Docker状态 systemctl status docker 5.设置开机自启(执行此命令后每次Linux重启后将自启动Docker) systemctl enable do…...

【uni-app】对齐胶囊容器组件

代码碎片 <template><div><view :style"{ height: ${statusBarHeight}px }"></view><viewclass"":style"{height: ${menuButtonHeight menuButtonPadding * 2}px,width: ${menuButtonInfo.left}px,}"><slot …...

JUC并发—10.锁优化与锁故障

大纲 1.标志位修改场景优先使用volatile(服务优雅停机) 2.数值递增场景优先使用Atomic类(心跳计数器) 3.共享变量仅对当前线程可见的场景优先使用ThreadLocal(edits log的处理) 4.读多写少需要加锁的场景优先使用读写锁(服务注册表的并发读写) 5.尽量减少线程对锁占用时间…...

PHP和Node.js哪个更爽?

先说结论&#xff0c;rust完胜。 php&#xff1a;laravel&#xff0c;swoole&#xff0c;webman&#xff0c;最开始在苏宁的时候写了几年php&#xff0c;当时觉得php真的是世界上最好的语言&#xff0c;因为当初活在舒适圈里&#xff0c;不愿意跳出来&#xff0c;就好比当初活在…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南

精益数据分析&#xff08;97/126&#xff09;&#xff1a;邮件营销与用户参与度的关键指标优化指南 在数字化营销时代&#xff0c;邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天&#xff0c;我们将深入解析邮件打开率、网站可用性、页面参与时…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天&#xff0c;数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具&#xff0c;在大规模数据获取中发挥着关键作用。然而&#xff0c;传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时&#xff0c;常出现数据质…...

Android第十三次面试总结(四大 组件基础)

Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成&#xff0c;用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机&#xff1a; ​onCreate()​​ ​调用时机​&#xff1a;Activity 首次创建时调用。​…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程&#xff0c;代码下载&#xff1a;这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中&#xff0c;**知识蒸馏&#xff08;Knowledge Distillation&#xff09;**被广泛应用&#xff0c;作为提升模型…...

Python Ovito统计金刚石结构数量

大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...