shellCode 公式

动态定位API函数之shellcode编写 通用shellcode编写动态定位API 背景: 如果编写的 ShellCode 采用了硬编址的方式来调用相应的API函数,这会存在操作系统的版本不一样,调用函数在内存中的地址不同而出现失败的现象。如下图在win10中就不能正常运行 这时需要通过编写一些定位程序,让 ShellCode 能够动态定位所需要的API函数地址,从中解决ShellCode 的通用性问题。 1.上述弹窗程序中最重要的函数MessageBox,它是位于 User32.dll 这个动态链接库里,默认情况下是无法直接调用的,为了能够调用 阅读详情

 

E8  E9后的地址公式如下:

X = 真正要跳转的地址 - E8这一条指令的下一行指令
等价于
X = 真正要跳转的地址 - (eip + 5)

E8 X
E9 X

BYTE ShellCode[]={0x6A,0x00,0x6A,0x00,0x6A,0x00,0x6A,0x00,0xE8,0x00,0x00,0x00,0x00,0xE9,0x00,0x00,0x00,0x00};

//pImageBuf 我们在堆上分配的,首地址, 即为内存的首地址
//ImageBase 为内存中运行时的首地址
void *pAddAddress = (void *)((DWORD)pImageBuf + pISH->VirtualAddress + pISH->Misc.VirtualSize);
memcpy(pAddAddress,pShellCode,dwShellCodeSize);
//进行地址修正
HMODULE  hMod = LoadLibrary("User32.dll");
//我们要执行的函数
*(DWORD *)((BYTE*)pAddAddress + 9) = (DWORD)GetProcAddress(hMod,"MessageBoxA") -     
((DWORD)ImageBase+pISH->VirtualAddress + pISH->Misc.VirtualSize+8) - 5;
//跳到原来程序要执行的位置
*(DWORD *)((BYTE*)pAddAddress + 14) = ImageBase+AddressOfEntryPoint - ((DWORD)ImageBase+pISH->VirtualAddress + pISH->Misc.VirtualSize+13) - 5;
//重新修改入口地址, 首先让程序去执行我们的函数;
 pINGS->OptionalHeader.AddressOfEntryPoint = pISH->VirtualAddress + pISH->Misc.VirtualSize;

   注意:ShellCode  是放在pImagebuff中的, 但是E8  E9后面的地址是imagebase中的地址

 

shellcode帮助工具,直接把exe转shellcode Shellcode Helper v1.62 Coded by TeLeMan (c) 2008-2013 Usage: schelper.exe [options] Options: -i [input file] input file (Default: stdin) -o [output file] output file (Default: stdout) -s input file format (Default: Auto-Detection) -sb input file format is Binary -sp the input file format's parameters -d output file format (Default: C format) -db output file format is Binary -dp the output file format's parameters -search get the start offset by the pattern: e.g. PK\x03\x04 -soff fix the match offset after searching (Default: 0) -off convert the input file from the offset (Default: 0) -len convert the input file with the length (Default: 0 - MAX) -en [encoder] encode shellcode (Default: XorDword) -de [encoder] decode shellcode (Default: Auto-Detection) -ex exclude characters: e.g. 0x00,0x01-0x1F,0xFF (Default: 0x00) -in incude characters only -ep the encoder's parameters -t [pid] execute or inject shellcode into process for testing -td [pid] execute or inject shellcode into process for debugging -stack put shellcode into stack and execute it (ESP is the shellcode start) -noinfo display no normal messages except error messages Available formats: 0 - C 1 - C(HexArray) 2 - Perl 3 - Python 4 - Ruby 5 - JavaScript(Escape) 6 - VBScript(Escape) 7 - Pascal 8 - MASM(Data) 9 - HexDump 10 - BitString 11 - HexString 12 - HexArray(C like) 13 - Base64 14 - Binary 15 - HexString(C like) 16 - HexString(Escape) 17 - HexString(JavaScript,UNICODE) 18 - URI(ISO-8859-1) 19 - XML(PCDATA) 20 - BigNumber 21 - BigNumber(Hex) 22 - BigNumber(BaseX) 23 - FloatPoint 24 - UnixTimestamp 25 - GUID 26 - MASM(ASM) 27 - NASM 28 - YASM(ASM) 29 - FASM(ASM) 30 - JWASM(ASM) 31 - POASM(ASM) 32 - GOASM(ASM) 33 - GNU ASM Available encoders: 立即下载

相关推荐

最短shellcode提取方法和测试【原创】

这是一个windows弹出对话框的shellcode,38个字节 在windows xp sp3下测试 已在vc++6,mingw,cygwin下编译测试

零基础逆向工程19_PE结构03_代码节空白区添加代码_shellcode

1.获取MessageBox地址,构造ShellCode代码 三种获取方法,参考文章末的一篇帖子。 E8 E9计算公式 call 的硬编码:E8 00 00 00 00 jmp 的硬编码:E9 00 00 00 00 计算方法1:E8后面的值 = 真正要跳转的地址 - E8这条指令的下一行地址 计算方法2:E8后面的值 = 要跳转的地址 - (E8的地址 + 5) 2.在代码区手动添加代码 3....

weixin_30776863的博客 310

JsLoader:js免杀shellcode,绕过杀毒添加自启

JsLoader 文章:

linux手写x64的shellcode

编写汇编代码 下面的代码实现的是执行 execve("/bin/sh") 命令,rax寄存器存放execve的系统调用编号,rdi存放的是execve的参数: section .text global _start _start: push rax xor rdx, rdx xor rsi, rsi mov rbx,'/bin//sh' push rbx push rsp pop rdi mov al, 59 syscall 关于x64的系统调用表可参考如下博文: https://blog.csdn.ne

小小鱼的博客 1556

shellcode转换工具

shellcode转换工具

使用运放构建电压跟随器

运放,是运算放大器的简称 运算放大器是用模拟电子器件(如晶体管,场效应管,二极管等)构成的模拟集成电路,其特点是有很高的放大倍数和抗干扰能力,因此可以被设计成各种用途的派生电路,如电压比较器、窗口电路、波形发生电路等等,其中也有电压跟随器。 电压跟随器是一种具有100%电压负反馈的放大器电路,其特点是输出电压的幅度和极性都与输入电压相同,所以叫跟随器。典型线路如图所示: 运放跟随器有输入阻抗高,而输出阻抗低的特性,一般来说,输入阻抗可以达到几兆欧姆,而输出阻抗低,通常只有几欧姆,甚至更低。 在电

Code for Coffee 5万+

shellcode助手

因为最近在做插件编程,用到了部分shellcode,包括博主以后也会写一些关于shellcode方面的代码。 所以临时写了一个shellcode转换工具: 没有做优化,只是临时写的dui界面,上篇文章里有教如何实现这样的功能,这篇文章只是对其进行了简单的界面封装! 正所谓身为一个软件工程师,一切功能理应自己写软件实现~ 源码下载地址:链接: https://pan.baidu.com...

17岁boy的博客 717

机械臂视觉抓取避坑指南:如何正确计算手眼标定矩阵(附Numpy代码)

本文详细解析了机械臂视觉抓取中手眼标定矩阵的计算方法,特别针对'眼在手上'配置下的常见错误提供了解决方案。通过Numpy代码示例和坐标转换原理,帮助开发者避免矩阵计算错误和坐标转换偏差,提升工业自动化系统的精度和效率。

weixin_29081703的博客 243

c语言中1%3c%3ci,Shellcode Helper v1.51

Shellcode Helper v1.51 Coded by TeLeMan (c) 2008-2011Usage: schelper [options]Options:-i [input file] input file (Default: stdin)-o [output file] output file (Default: stdout)-s input file f...

weixin_30197529的博客 1069

别再硬啃C代码了!用Simulink的Matlab Function模块手把手教你搭建CRC8校验模型(附完整M脚本)

本文详细介绍了如何利用Simulink的Matlab Function模块轻松实现CRC8校验模型,替代传统的C代码编写。通过可视化建模和即时验证,开发者可以高效完成算法设计,并自动生成嵌入式代码。文章包含完整的M脚本示例和工程实践技巧,特别适合嵌入式系统开发人员提升工作效率。

weixin_42520661的博客 183

利用Python脚本在ADS2024 Update2中动态绘制与验证LPDDR5眼图模板

本文详细介绍了如何在ADS2024 Update2中,利用Python脚本动态绘制与验证LPDDR5眼图模板。通过调用DDS Python接口,工程师可在仿真后无需重新运行,即可灵活添加、修改矩形或六边形眼图模板,并实现批量自动化处理,从而极大提升高速信号(如LPDDR5)的调试与验证效率。

raspberrypi5的博客 603

分享一段可以全系统通用的ShellCode

unsigned char bShellCode[] = { 0x33, 0xC9, 0x64, 0x8B, 0x71, 0x30, 0x8B, 0x76, 0x0C, 0x8B, 0x76, 0x1C, 0x8B, 0x46, 0x08, 0x8B, 0x7E, 0x20, 0x8B, 0x36, 0x38, 0x4F, 0x18, 0x75, 0xF3, 0x55, 0x8B,...

Yalneh的博客 685

Win11系统下Notepad++右键菜单失效?3种修复方法实测有效(附注册表备份指南)

本文针对Windows 11系统中Notepad++右键菜单失效的常见问题,提供了三种经过实测有效的修复方法。核心解决方案包括使用官方NppShell.dll重新注册、手动修复注册表项以及系统级问题排查,并详细说明了操作前的注册表备份指南,确保修复过程安全可靠。

m2n3b4v5c6的博客 328

UJCMS日志管理完整指南:登录、操作与审计日志快速上手教程

UJCMS 日志管理是这款 Java 开源内容管理系统(CMS)中帮助管理员追踪安全事件、排查内容操作问题的核心能力。它内置了**登录日志、操作日志、短信日志和 AI 日志**四大模块,并支持 HMAC-SM3 签名校验、防删改与留存期设置等审计能力,即使是新手也能快速定位"谁在什么时间做了什么操作"。 [![UJCMS日志管理:记录每一次操作的完整审计轨迹](https://raw.gitco

gitblog_00051的博客 665

【机器人技术基础】MATLAB Robotics Toolbox PUMA560 运动学正逆解

机器人技术基础实验2报告 1. 实验目的和要求 2. 实验手段 2.1 实验原理 2.2 函数详解 3. 实验主要内容 4. 实验结果和分析 4.1 正运动学求解 例1 例2 4.2 逆运动学求解 例1 例2 1. 实验目的和要求 掌握常见形式的机器人的D-H坐标系建立方法、运动学建模; 正逆运动学分析与求解; 使用Robotics Toolbox对直角坐标机器人、圆柱坐标机器人、球坐标机器人、PUMA560其中之一建立运动学模型,正逆求解和仿真。 2. 实验手段 2.1

【人工智障 | 计算鸡视觉 | 机器孩】 1万+

ArXiv 2026 即插即用 | Transformer篇 | WeightFormer:告别二次复杂度!无注意力的线性时间 Transformer,泛化能力拉满

WeightFormer是一种创新的动态Transformer架构,其核心创新在于通过双动态算子(空间自适应动态卷积和双边激活动态线性)实现输入自适应的特征提取。该模块采用静态-动态权重融合机制和低秩预测技术,在仅增加5%参数量的情况下显著提升模型泛化能力。相比传统Transformer,WeightFormer在ImageNet-1K上提升2.3%精度,小样本任务提升12%,同时保持线性计算复杂度。模块可直接替换标准Transformer块,特别适合轻量级视觉任务,实现了精度与效率的平衡。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 132

CVE-2017-11882漏洞分析

1. 软件简介 Office 是一套由微软公司开发的办公软件,为Windows和AppleMacintosh操作系统而开发。与办公室应用程序一样,它包括联合的服务器和基于互联网的服务。 Eqnedt32.exe为各版本的微软Office公式编辑器组件 2. 漏洞成因 CVE-2017-11882属于缓冲区溢出类型漏洞,产生漏洞原因于EQNEDT32.EXE(微软office自带公式编辑器)进程在读入包含MathType的ole数据时,在拷贝公式字体名称(Font Name数据)时没有对名称长度进行校

datouyu0824的博客 1898

详解Pytorch求导

本文主要详解Pytorch求导,希望能对学习Pytorch的同学有所帮助。 文章目录 1. pytorch求导问题 2. pytorch三大类求导代码示例 2.1 标量求导 2.2 向量求导&矩阵求导

weixin_43178406的博客 3074

CVE-2018-0798_微软公式编辑器漏洞分析

微软公式编辑器(EQNEDT32)漏洞样本分析 CVE-2018-0798漏洞分析 公式编辑器存在多个漏洞CVE-2017-11882和CVE-2018-0802 该样本利用的漏洞为CVE-2018-0798 出现漏洞的函数为sub_443F6C(无随机基址),该函数内部并没有对参数 v12 的长度做限制 从而导致栈溢出 在OD里面比较直观,...

子曰小玖的博客 1458

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

几种跳转指令和对应的机器码

为什么80%的码农都做不了架构师?>>> ...

weixin_34221073的博客 631

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

PE 病毒与 msf 奇遇记

0x01 PE 病毒简介 通俗的讲,PE 病毒就是感染 PE 文件的病毒,通过修改可执行文件的代码中程序入口地址,变为恶意代码的的入口,导致程序运行时执行恶意代码。 我们学习 PE 病毒的目的是为了深入了解 32 位的 PE 结构。 git 链接(上一期的也上传了): https://github.com/x-encounter/C-code 网盘链接(附带两张图,一个描述各字段偏移的 word 文档): https://pan.baidu.com/s/1BCDpctJ_EDBdZC7rL

hl1293348082的专栏 384

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Shellcode学习之编写变形的shellcode[实战篇]

上次花了很多笔墨来说明一个变形的shellcode到底是什么原理,这一次的实战篇我们就来做一个简单的变形shellcode。由于篇幅的限制,这个变形的东西还是比较幼稚,但是它已经能够逃脱几乎所有按照shellcode特征来杀 “毒”的各类软件,在shellcode不限长度的时候,你甚至可以反复的使用这个加密的头部来进行变形。具体的内容,我们在下面慢慢说。 切入正题之前还是按照老传统先科普一下。s

dongyewolong的专栏 1162

Shellcode学习之编写变形的shellcode[原理篇]

X'Con04据说轰轰烈烈的结束了,马上安焦就毫无保留地把所有的演讲用幻灯都放了出来。作为菜鸟,我也好事地下载了一份来看,首先看到的是Plan9 大虾的《高级shellcode设计技巧》。这篇文章似乎总结了一下当前Shellcode的各种技巧和设计思路,比较有意思的是当中提到的 ADMMutate,虽然在2001年就有见过这个工具,但是似乎一直都在*nix下而且这么多年来没见过升级。闲下来没有事情

dongyewolong的专栏 3886

漏洞分析之CVE-2018-0802

漏洞分析之 CVE-2017-0802 目录 漏洞分析之 CVE-2017-0802目录☛ 漏洞介绍☛ 漏洞分析☛ 1.漏洞分析环境与工具☛ 2.复现漏洞☛ 3.分析漏洞☛ 4.漏洞利用完成时间:2018-10-24 21:26:54 星期三 ☛ 漏洞介绍 在2017年11月14日,微软发布11月份安全补丁更新,其中更新了潜伏17年之久的Office远程代码执行漏洞(CV...

airuihuan5211的博客 416

手工给程序插入 ShellCode

PE格式是 Windows下最常用的可执行文件格式,理解PE文件格式不仅可以了解操作系统的加载流程,还可以更好的理解操作系统对进程和内存相关的管理知识,而有些技术必须建立在了解PE文件格式的基础上,如文件加密与解密,病毒分析,外挂技术等,本次实验的目标是手工修改或增加节区,并给特定可执行程序插入一段ShellCode代码,实现程序运行自动反弹一个Shell会话。 VA地址与FOA地址互转 首先我...

微软技术分享 1万+
上一篇: PE结构
下一篇: 值得推荐的C/C++框架和库
__网瘾少年
博客等级 码龄11年 122粉丝 103原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值