一、工具介绍

charlotte是一款Python编写的自动化免杀工具,用来生成免杀的dll文件,在线查杀是1/26报毒,总的来说免杀效果还可以



下载地址:https://github.com/9emin1/charlotte,需要mingw-w64环境,直接使用以下命令安装即可

apt-get install mingw-w64*

二、代码分析

利用动态导出以及xor编码实现了对杀软的绕过。通过python操作cpp,然后使用mingw去编译为dll文件,最后删除生成的cpp文件。

注释python代码第195行,即可看到生成的代码

BOOL (WINAPI * pVirtualProtect)(LPVOID lpAddress, SIZE_T dwSize, DWORD flNewProtect, PDWORD lpflOldProtect);
XOR((char *) virtual_alloc, va_len, va_key, sizeof(va_key));
pVirtualAlloc = GetProcAddress(GetModuleHandle("kernel32.dll"), virtual_alloc);
rvba = pVirtualProtect(exec_mem, calc_len, PAGE_EXECUTE_READ, &oldprotect);

具体是由python实现,获取随机字符串

xor异或函数

替换,最后生成dll

三、测试效果

使用CS生成raw格式的shellcode



使用python脚本生成dll,获取dll和key

总的来说效果还可以,可以直接过掉360全家桶和火绒,利用白名单rundll32加载

免杀生成器之Charlotte解析的更多相关文章

  1. [原创]IIS提权工具-VBS提权脚本免杀生成器

    [原创]添加系统用户 VBS提权脚本随机加密生成器[K.8] 2011-05-05 02:42:53|  分类: 原创工具 VBS提权脚本随机加密生成器[K.8]  Author: QQ吻 QQ:39 ...

  2. Python 迭代器之列表解析

     [TOC] 尽管while和for循环能够执行大多数重复性任务, 但是由于序列的迭代需求如此常见和广泛, 以至于Python提供了额外的工具以使其更简单和高效. 迭代器在Python中是以C语言的 ...

  3. 【Java TCP/IP Socket】应用程序协议中消息的成帧与解析(含代码)

    程序间达成的某种包含了信息交换的形式和意义的共识称为协议,用来实现特定应用程序的协议叫做应用程序协议.大部分应用程序协议是根据由字段序列组成的离散信息定义的,其中每个字段中都包含了一段以位序列编码(即 ...

  4. Python 迭代器之列表解析与生成器

     [TOC] 1. 列表解析 1.1 列表解析基础 列表解析把任意一个表达式应用到一个迭代对象中的元素 Python内置ord函数会返回一个字符的ASCII整数编码(chr函数是它的逆过程, 它将A ...

  5. [ java 工具类] xml字符串解析成Map(DOM解析)

    package com.tencent.jungle.wechat.util; import com.google.inject.Singleton; import org.w3c.dom.Docum ...

  6. okhttp拦截器之CallServerInterceptor解析

    今天来学习OkHttp的最后一个拦截器,如下: 看一下它的javadoc说明: 其作用有两个:发起网络请求和接收服务器响应,下面具体来看一下它的intercept(): 下面具体来看一下: 接着就是读 ...

  7. okhttp拦截器之ConnectInterceptor解析

    主流程分析: 继续分析okhttp的拦截器,继上次分析了CacheInterceptor缓存拦截器之后,接下来到连接拦截器啦,如下: 打开看一下它的javadoc: 而整个它的实现不长,如下: 也就是 ...

  8. okhttp拦截器之CacheInterceptor解析

    在上一次[https://www.cnblogs.com/webor2006/p/9150658.html]了解了缓存的存与取的细节之后,接下来就可以分析一下OkHttp的缓存拦截器啦: OkHttp ...

  9. js 将XML字符串解析成XML文档 --- attribute construct error--- 空白字符与空格问题

    最近在做xml在线编辑器,遇到一个字符串解析成xml文档的问题,记录一下. 原始xml内容读取自xml文档 <label class="test" id="labe ...

随机推荐

  1. springMVC-5-视图解析器

    视图和视图解析器工作流程 第一步:获取到ModelAndView对象 请求处理方法执行完成后,无论返回是String,View 还是 ModeMap 类型,Spring MVC 也会在内部将它们装配成 ...

  2. Java 获取Word中指定图片的坐标位置

    本文介绍通过Java程序获取Word文档中指定图片的坐标位置. 程序运行环境: Word测试文档:.docx 2013 Free Spire.doc.jar 3.9.0 IntelliJ IDEA J ...

  3. CentOS7下 PHP怎么安装redis扩展

    当前系统是centos7,当初使用yum install php 命令进行的默认安装,不过版本是5.4的. 安装过程参考:简单快速安装Apache+PHP+MySql服务环境(一) 后来为了适应其他框 ...

  4. 使用Elastic Job的分片配置加速任务执行和提高资源利用率

    上一篇,我们介绍了如何使用Elastic Job实现定时任务.解决了使用@Scheduled来实现时候存在的竞争问题,同时也实现了定时任务的高可用执行. 然而,还有一类问题是我们在做定时任务时候容易出 ...

  5. Vue框架主要内容学习总结

    Vue框架体系主要内容: 1. vue核心语法和用法: 2. vue-router--路由.路由相当于访问路径,将访问路径与vue组件映射起来.传统方式常采用超链接实现路径或页面之间的切换, 而在vu ...

  6. 第十二篇 -- QMainWindow与QAction(剪切-复制-粘贴)

    效果图: 按照上一节的方法,将剪切-复制-粘贴图标放置到工具栏后,为其指定槽函数.这些功能无需自己编写代码来实现,QPlainTextEdit提供了实现这些编辑功能的槽函数,如cut().copy() ...

  7. 第九篇 -- cpu的学习

    CPU的核数关系: 总核数 = 物理CPU个数 X 每颗物理CPU的核数 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 Linux中查看CPU数: # 查看物理CPU个数 ...

  8. intouch 开发源程序加密方法

    在先前项目中,因为同行竞争被拷贝走了源程序代码,以至于被上司责备,故而亡羊补牢对intouch(10.1老版本进行源代码加密探索)整理方法如下. 1.intouch wondermarker打开源程序 ...

  9. JBoss 4.x JBossMQ JMS 反序列化漏洞(CVE-2017-7504)

    检测漏洞 工具 下载地址:https://github.com/joaomatosf/JavaDeserH2HC javac -cp .:commons-collections-3.2.1.jar E ...

  10. friend靶机

    仅供个人娱乐 靶机信息 https://www.vulnhub.com/entry/me-and-my-girlfriend-1,409/ 一.主机探测 二.信息收集 访问一下web站点,提示只能从本 ...