【2021.9.7】记一次exe手动添加shellcode
【2021.9.7】记一次exe手动添加shellcode
文章目录
- 【2021.9.7】记一次exe手动添加shellcode
- 0.大致思路
- 1.获取MessageBox的真实地址VA
- 2.通过OD在代码段添加shellcode
- 3.dump出数据,设置程序OEP
- 4.测试dump出来的exe
- 5.方法总结
测试的exe和添加了shellcode的exe:
链接:https://pan.baidu.com/s/1QJ02pb0_YxIgQCNY15LBAA
提取码:aura
0.大致思路
先在exe内部添加一段shellcode(这里只是简单弹出一个 MessageBox框的字节码),再修改exe的pe格式中的OEP,执行完shellcode之后,再跳回原本OEP
说明:修改的这个exe原本功能是弹出一个MessageBox,我做的是在他的MessageBox之前再弹出一个MessageBox,因为原本存在MessageBoxbox函数,所以方便我们获取MessageBox的真实地址。

1.获取MessageBox的真实地址VA
OD调试测试exe,逻辑比较简单。

双击地址0x40101a可以看到汇编指令为jmp dword ptr [402008],就是在IAT表里取地址,说明该exe的虚拟地址VA:402008,存储的是MessageBox函数的地址。
2.通过OD在代码段添加shellcode
其实任意节区都可以,但要执行代码,该节区头属性(Characteristics)字段必须包含可读可执行的权限,直接添加到代码段(节区)可以省去更改节区头属性的步骤
这里代码段空的地方比较多,我们直接在原有代码下方靠近的位置选一片区域添加shellcode(内存对应一般为1000,应该不会超出代码段)。

记住我们添加代码段的地方,为0x401030
3.dump出数据,设置程序OEP

4.测试dump出来的exe
已经在执行我们的shellcode了

5.方法总结
这种直接在OD里通过书写汇编指令添加shellcode方式不用手动计算跳转地址,和构造字节码,直接在OD里相应位置写汇编指令,他会自动计算地址并生成字节码,比较简洁易上手。
我这里测试exe和添加的shellcode都比较短小,没有测试过更大的exe和shellcode,可能会以偏概全了,但是通过在OD里写汇编,OD可以给我们自动计算跳转指令的地址和生成字节码,省去我们手动构造,并且不用管FOA和RVA的转换。
给我们自动计算跳转指令的地址和生成字节码,省去我们手动构造,并且不用管FOA和RVA的转换。
如果Dump方法不行,可以先在OD书写shellcode的汇编指令,然后拷贝其生成的字节码,再手动在exe二进制文件相应位置添加即可(注意FOA和RVA的转换)。
相关文章:
【2021.9.7】记一次exe手动添加shellcode
【2021.9.7】记一次exe手动添加shellcode 文章目录【2021.9.7】记一次exe手动添加shellcode0.大致思路1.获取MessageBox的真实地址VA2.通过OD在代码段添加shellcode3.dump出数据,设置程序OEP4.测试dump出来的exe5.方法总结测试的exe和添加了shellcode的exe:链接&…...
常用训练tricks,提升你模型的鲁棒性
目录一、对抗训练FGM(Fast Gradient Method): ICLR2017代码实现二、权值平均1.指数移动平均(Exponential Moving Average,EMA)为什么EMA会有效?代码实现2. 随机权值平均(Stochastic Weight Averaging,SWA&a…...
具有精密内部基准的 DACx0502 简介及驱动应用示例
DACx0502 说明 16 位 DAC80502、14 位 DAC70502 和 12 位DAC60502 (DACx0502) 数模转换器 (DAC) 均为具有电压输出的高精度、低功耗器件。 DACx0502 线性度小于 1LSB。凭借高精度和微型封装特性,DACx0502 非常适合以下 应用: 增益和失调电压校准、电流…...
C语言函数:字符串函数及模拟实现strncpy()、strncat()、strncmp()
C语言函数:字符串函数及模拟实现strncpy()、strncat()、strncmp() 在了解strncpy、strncat()、前,需要先了解strcpy()、strncat(): C语言函数:字符串函数及模拟实现strlen() 、strcpy()、 strcat()_srhqwe的博客-CSDN博客 strncp…...
学术论文插图要求简介
1. 类型 位图和矢量图是两种不同的图像类型,它们在存储和处理图像时使用不同的方法。以下是它们之间的详细区别: 图像构成方式:位图使用像素(或图像的最小单元)来构建图像,每个像素都有自己的颜色和亮度值。…...
【独家】华为OD机试 - 斗地主 2(C 语言解题)
最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南)华为od机试,独家整理 已参加机试人员的实战技巧文章目录 最近更新的博客使用说明本期…...
力扣-计算特殊奖金
大家好,我是空空star,本篇带大家了解一道简单的力扣sql练习题。 文章目录前言一、题目:1873. 计算特殊奖金二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.正确示范④提交SQL运行结果5.其他总…...
华为校招机试真题目录
专栏介绍 本专栏将逐步收集历年华为校招算法真题 专栏权益 每篇博客都包含: 算法考点解析(文字+画图)算法源码(支持 Java / JS / Python)每晚9:00 ~ 11:00 在线答疑 真题目录 时间题目考点 or 实现2022.11.27...
EdgeYOLO学习笔记
EdgeYOLO学习笔记 EdgeYOLO: An Edge-Real-Time Object Detector Abstract 本文基于最先进的YOLO框架,提出了一种高效、低复杂度、无锚的目标检测器,该检测器可以在边缘计算平台上实时实现。为了有效抑制训练过程中的过拟合,我们开发了一种…...
【分布式】什么是分布式锁?正文揭晓
分布式锁的概念 分布式锁其实可以理解为:控制分布式系统有序的去对共享资源进行操作,通过互斥来保持一致性。 举个例子:假设共享的资源就是一个房子,里面有各种书,分布式系统就是要进屋看书的人, 分布式锁…...
超详细JDK1.8所有版本下载地址
JDK1.8即为JDK8,JDK8是目前是最成熟最稳定的版本,本文将详细介绍JDK1.8历史版本的下载方式。 在此附上JDK1.8安装与配置教程 超详细JDK1.8安装与配置 一、JDK官网 首先打开oracle官网,官网首页地址为 JDK官网首页地址 点击Products 点击…...
论文解析[11] CAT: Cross Attention in Vision Transformer
发表时间:2021 论文地址:https://arxiv.org/abs/2106.05786v1 文章目录摘要3 方法3.1 总体结构3.1.1 Inner-Patch Self-Attention Block3.1.2 Cross-Patch Self-Attention Block3.1.3 Cross Attention based Transformer结论摘要 使用图像patch来替换tr…...
嵌入式和Python(一):python环境搭建的详细步骤
目录 ● 安装python ① 更新软件列表 ② 安装编译python需要用到的环境 ③ 下载python源码 ④ 解压源码包 ⑤ 配置 ⑥ 编译 ⑦ 安装 ● 建立软连接 说明 ① 删除原来的软连接 ② 在/usr/bin/目录创建软连接python,定向/usr/local/bin/python3.9 ③ 检查…...
嵌入式学习笔记——STM32硬件基础知识
STM32开发硬件知识前言单片机参数主频位数STM32最小系统电源电路晶振电路复位电路BOOT选择电路调试接口电路其他电路本文重点本文参考博客链接前言 上一篇中我们重点是讲了一下怎么搭建开发环境以及怎么下载烧录的过程,这都是解决的电脑端的开发环境问题࿰…...
Mybatis插件开发及执行原理
mybatis源码下载 https://github.com/mybatis/mybatis-3,本文分析源码版本3.4.5 mybatis启动大致流程 在看这篇文章前,建议查看我另一篇文章,以了解框架启动的流程和框架中一些重要对象:https://blog.csdn.net/Aqu415/article/…...
vue父子组件通信,兄弟组件通信
目录 一、父子组件通信 1、子组件通过 props 获取父组件变量和父组件调用子组件中的方法(这两个都是父传子的思想) a:子组件通过 props 获取父组件变量 b:父组件调用子组件中的方法 2、父组件通过ref获取子组件变量和子组件调用父组件的方法(这两个都是子传父的…...
大数据技术之Hadoop集群配置
作者简介:大家好我是小唐同学(๑><๑),好久不见,为梦想而努力的小唐又回来了,让我们一起加油!!! 个人主页:小唐同学(๑><๑)的博客主页 目前…...
MicroBlaze系列教程(7):AXI_SPI的使用(M25P16)
文章目录 AXI_SPI简介MicroBlaze硬件配置常用函数使用示例波形实测参考资料工程下载本文是Xilinx MicroBlaze系列教程的第7篇文章。 AXI_SPI简介 Xilinx AXI-SPI IP共有两个:一个是标准的AXI_SPI,即4线制SPI,CS、SCLK、MOSI和MISO,另一个是AXI_Quad SPI,支持配置成标准SP…...
使用Python通过拉马努金公式快速求π
使用Python通过拉马努金公式快速求π 一、前言 π是一个数学常数,定义为:圆的周长与直径的比值。 π是一个无理数,也是一个超越数,它的小数部分无限不循环。 π可以用来精确计算圆周长、圆面积、球体积等几何形状的关键值。 有关…...
第六章 使用系统类提供国家语言支持 - 创建自定义语言环境
文章目录第六章 使用系统类提供国家语言支持 - 创建自定义语言环境创建自定义语言环境第六章 使用系统类提供国家语言支持 - 创建自定义语言环境 创建自定义语言环境 此示例将提供一个模板,用于使用自定义表创建自定义语言环境。自定义表将在 EBCDIC(美…...
3步打造个性化Windows任务栏:轻量级桌面美化工具TranslucentTB使用指南
3步打造个性化Windows任务栏:轻量级桌面美化工具TranslucentTB使用指南 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB 你是否…...
【Docker】在Ubuntu22.04上安装Docker
目录 一.Docker版本 二.在Ubuntu22.04上安装Docker-CE 2.1.卸载旧版本(如果有的话) 2.2.配置docker下载源 2.3.安装Docker-CE 2.4.实战经验 2.4.1.Docker镜像源修改 2.4.2.Docker 目录修改 一.Docker版本 在 Docker 的发展与演进过程中…...
Steam美区支付实战:巧用虚拟VISA与PayPal组合策略,解锁游戏购买与礼品卡赠送
1. Steam美区支付的核心痛点与解决方案 很多玩家都遇到过这样的问题:好不容易注册了美区Steam账号,却发现国内的信用卡根本无法完成支付。我自己刚开始折腾美区账号时,也在这个环节卡了整整两周。Steam的风控机制确实严格得令人头疼ÿ…...
GitHub协作开发AnythingtoRealCharacters2511项目指南
GitHub协作开发AnythingtoRealCharacters2511项目指南 1. 项目概述与协作价值 AnythingtoRealCharacters2511是一个专门将动漫角色转换为写实真人形象的AI模型项目。这个模型基于Lora技术,经过30900步训练,使用103组图组(合计206张图片&…...
Qwen3-8B快速入门指南:无需复杂配置,消费级GPU轻松运行你的第一个AI助手
Qwen3-8B快速入门指南:无需复杂配置,消费级GPU轻松运行你的第一个AI助手 1. 为什么选择Qwen3-8B 在AI模型领域,Qwen3-8B是一个在性能和资源消耗上取得绝佳平衡的选择。作为Qwen系列中的80亿参数模型,它专为个人开发者和小型项目…...
CATIA中Automotive BiW Fastening模块下焊点坐标高效导出与处理技巧
1. 为什么需要导出焊点坐标? 在汽车白车身(BiW)设计过程中,焊点坐标的精确获取是连接设计与制造的关键环节。我见过太多工程师在CATIA里一个个手动记录焊点位置,不仅效率低下还容易出错。其实Automotive BiW Fastening…...
OpenClaw浏览器自动化:Qwen3-4B驱动网页检索与内容抓取
OpenClaw浏览器自动化:Qwen3-4B驱动网页检索与内容抓取 1. 为什么选择OpenClaw做浏览器自动化? 去年我接手了一个市场调研项目,需要从30多个行业网站抓取最新动态。最初尝试用Python写爬虫,但每个网站的页面结构差异太大&#x…...
极简办公:OpenClaw+Qwen3.5-9B自动回复日常邮件模板
极简办公:OpenClawQwen3.5-9B自动回复日常邮件模板 1. 为什么需要邮件自动化助手 每天早晨打开邮箱,总能看到十几封格式雷同的咨询邮件——产品报价、技术支持、会议邀约……这些邮件80%的内容都可以用标准模板回复,但手动复制粘贴依然要耗…...
嵌入式开发代码比对工具实战指南
1. 单片机开发中的代码版本管理痛点 在嵌入式开发领域,代码版本管理是每个工程师的必修课。我经历过无数次深夜调试时,突然发现某个功能在上一版还能正常工作,最新修改后却出现了异常。这时候,快速定位两个版本间的代码差异就成了…...
SEO标题优化与内容营销的关系是什么
SEO标题优化与内容营销的关系:深度解析与实践指南 在数字营销的世界里,SEO标题优化与内容营销之间的关系日益紧密,两者共同塑造了网站的可见性和用户参与度。究竟SEO标题优化与内容营销的关系是什么呢?本文将深入解析这一关系&am…...
