免杀对抗-成品EXE免杀-反特征码-通用跳转

一、exe程序生成

1.使用如下shellcode加载器,生成c/c++语言的exe程序

加载器:1.c

#include <Windows.h>
#include <stdio.h>#pragma comment(linker,"/section:.data,RWE")unsigned char shellcode[] =生成的shellcode;int main()
{
__asm{
mov eax, offset shellcode
_emit 0xFF
_emit 0xE0
}
}

使用visual studio将加载器编译为exe程序

2.将生成的exe上传到目标系统,直接被火绒杀死

3.接下来将对exe程序实施免杀手段

二、成品EXE-反特征码-通用跳转

通用跳转

因为目标使用的是火绒,所以我们自己搭建一个火绒环境,使用VirTest工具检测出exe程序的什么地方被火绒杀了。

1.将工具和exe程序放到环境中,启动程序,点击制作测试文件---选择exe程序,点击ok后会在工具目录下生成一个virtest.vir文件

2.点击载入测试文件——选择工具目录下生成的文件

3.在保证火绒开启检测的情况下,点击定位特征代码——自动确定——确定。等待完成。

4.检测完成后,工具成功定位到exe程序中被火绒检测的特征码。

5.退出火绒,启动C32反汇编工具,将exe程序拖入工具中,选择16进制打开。修改特征码,看火绒是否还会杀。

下载:https://www.onlinedown.net/soft/10012039.htm

6.找到特征码位置,选中特征码---右键点击填充,填充为00。保存

7.启动火绒,看看是否还会查杀修改后的exe程序。

成功免杀:说明特征码查找正确。如果不能免杀,就是特征码没找对,可以改名重新检测一次试试。

8.关闭火绒,还原或者重新上传exe程序,将程序拖入OllyDbg工具中。点击下图按钮,搜索特征码处

Ollydbg下载:http://www.tugaga.com/soft/bc/945.html#down   

安装:记得先执行根目录下路径修复工具.exe

9.定位到特征码处,向下滑动一下,然后选中复制,将特征码的汇编地址保存起来

在将特征码下一行也复制保存

10.重新导入exe程序,往下滑找到00区间,选中几个00区间——右键选择二进制-----用nop填充

11.双击一个nop,将第九步复制的特征码写进去。右键复制,将汇编地址保存起来

在下一行也双击写入特征码的下一行的汇编地址

12.复制00区间的特征码汇编地址,保存起来

13.ctrl+G 写入特征码地址,定位到特征码处,将其填充

14.然后双击填充的特征码,写入(jmp 00区间的特征码汇编地址)

以上操作简单来说就是:在代码执行到原来的特征码处时,跳转到00区间处去执行。其实就是将特征码换了一个地方执行。执行了00区间的特征码后,还要跳转回原来特征码的下一行继续执行代码。

17.选中00区间做修改的地方,右键选择保存

点击全部复制

跳转到下图,右键保存文件

18.保存出来的exe文件还是不能免杀,因为只保存了00区间的修改。

为什么只保存了00区间的修改:00区间特征码处和原来特征码处的修改无法同时选中保存。

所以需要再次修改特征码处:将保存了00区间修改的exe程序拖入ollydbg工具中,搜索定位特征码汇编地址后四位

19.选中特征码,右键进行填充

20.然后双击填充的特征码,写入(jmp 00区间的特征码汇编地址)

注意00区间的特征码汇编地址:再次导入exe,前几个数字改变了,写入时注意

21.选中修改的特征码,右键

跳转到如下,右键——保存文件

22.开启火绒检测,只保存了00区间修改的半成品被杀了。但是完全品成功绕过火绒检测,执行exe,msf成功上线。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/124615.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

怎么通过docker/portainer部署vue项目

这篇文章分享一下如何通过docker将vue项目打包成镜像文件&#xff0c;并使用打包的镜像在docker/portainer上部署运行&#xff0c;写这篇文章参考了vue-cli和docker的官方文档。 首先&#xff0c;阅读vue-cli关于docker部署的说明&#xff0c;上面提供了关键的几个步骤。 从上面…

leetcode做题笔记160. 相交链表

给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交&#xff1a; 题目数据 保证 整个链式结构中不存在环。 注意&#xff0c;函数返回结果后&…

9.3 链表从指定节点插入新节点

一、从指定节点后方插入 插入逻辑如图&#xff1a; 插入前&#xff1a;A指向B&#xff0c;B指向C 插入后&#xff1a;B为插入点&#xff0c;当要插入D时就要让B指向D&#xff0c;D再指向C&#xff08;插入前B的指向&#xff09; #include <stdio.h>struct Test {int d…

Day-05 CentOS7.5 安装docker

参考 &#xff1a; Install Docker Engine on CentOS | Docker DocsLearn how to install Docker Engine on CentOS. These instructions cover the different installation methods, how to uninstall, and next steps.https://docs.docker.com/engine/install/centos/ Doc…

ES6中对象的扩展

1. 属性的简洁表示法 可以直接写入变量和函数作为对象的属性和方法。在对象中只写属性名&#xff0c;不写属性值&#xff0c;代表属性值等于和属性名相同的的变量的值。 属性的简写 let foo bar; let baz {foo}; // { foo: bar } // 等同于 let baz { foo: foo}方法的简写…

将3D MAX设计模型导入NX1988

将3D MAX设计模型导入NX1988 概述导入流程导出喜欢的模型对模型进行修改模型贴图 概述 一般家装设计都不会用NX之类的产品设计软件&#xff0c;也没有通用的文件格式可以互相转换&#xff0c;本文的目的是将从网上下载的一些设计较好的3D MAX模型导入到NX软件中借用&#xff0…

Ultralytics(YoloV8)开发环境配置,训练,模型转换,部署全流程测试记录

关键词&#xff1a;windows docker tensorRT Ultralytics YoloV8 配置开发环境的方法&#xff1a; 1.Windows的虚拟机上配置&#xff1a; Python3.10 使用Ultralytics 可以得到pt onnx&#xff0c;但无法转为engine&#xff0c;找不到GPU&#xff0c;手动转也不行&#xff0…

5.Vectors Transformation Rules

在上节&#xff0c;有个问题&#xff1a;向量分量的转换方式 与 新旧基底的转换方式相反 用例子来感受一下&#xff0c; 空间中一向量V&#xff0c;即该空间的一个基底&#xff1a;e1、e2 v e1 e2 现把基底 e1 、 e2 放大两倍。变成 基向量放大了两倍&#xff0c; 但对于…

微信小程序template界面模板导入

我们有些时候 会有一些比较大但并不复杂的界面结构 这个时候 你可以试试这种导入模板的形式 我们在根目录创建一个 template 目录 然后下面创建一个 text文件夹下面创建一个 test.wxml 参考代码如下 <template name"textIndex"><text class "testw&…

深度学习笔记之微积分及绘图

深度学习笔记之微积分及绘图 学习资料来源&#xff1a;微积分 %matplotlib inline from matplotlib_inline import backend_inline from mxnet import np, npx from d2l import mxnet as d2lnpx.set_np()def f(x):return 3 * x ** 2 - 4 * xdef numerical_lim(f, x, h):retur…

React18入门(第一篇)——JSX、TSX语法详解

文章目录 一、JSX 语法简介二、和 HTML 标签的几点不同三、JSX 属性四、JSX 事件4.1 简单点击事件4.2 类型限制4.3 带参数&#xff0c;箭头函数 五、插入 JS 变量六、JSX 中使用条件判断七、循环 一、JSX 语法简介 JSX - 是 JS 的扩展&#xff0c;写在 JS 代码里面&#xff0c…

云安全之HTTP协议介绍

HTTP的基本概念 什么是网络协议 网络协议是计算机之间为了实现网络通信而达成的一种“约定”或者”规则“&#xff0c;有了这种”约定不同厂商生产的设备&#xff0c;以及不同操作系统组成的计算机之间&#xff0c;就可以实现通信。 网络协议由三个要素构成&#xff1a;1、语…