3.6 shellcode编码技术
来源:http://www.tudoupe.com时间:2022-08-04
目录
为什么您需要编码壳牌代码?
二、实验环境
三、实验步骤
为什么您需要编码壳牌代码?
主要原因有:
(1)所有的字符串函数都会对NULL字节进行限制,为此,我们需要使用特殊的指令来避免在shellcode中直接出现NULL字节或者字;
(2)有些函数还要求shellcode为可视字符的ASCII值或Unicode值;
(3)基于特征的IDS系统也经常截获常见的shellcode。
最终,它是如何绕过各种规则,从程序接口安全地从壳牌代码进入堆栈!
方法: 用编码技术编码壳代码,使它符合限度的要求,再构造解码程序,将它放在shellcode开始执行的地方。当探险成功时,首先运行shellcode顶部的解码程序,它将恢复壳牌代码到原来的状态。示意图如下:
二、实验环境
windows XP、VC6.0、Ollydbg
需要的shellcode代码:
三、实验步骤
1.编码shell代码。 实验是基于不同的编码器或计算的编码器,具体编码如下:
在V.C.6中,直接编译并在0中执行,得到编码的shellcode。
编码的shell代码如下:
2. 用于 解码, 可 执行 下列 代码 :
注意:解码器不能单独运行,需要在VC6中运行。 在0中,编译、执行、生成PE文件,然后用Ollydbg提取二进制机器代码。
机器代码 | 汇编指令 | 说明 |
x83xC0x14 | add eax,0x14 | 在解码器代码区域上 |
x33xC9 | xor ecx,ecx | ECX被认为是循环变量 |
x8Ax1Cx08 | mov bl,[eax+ecx] | |
x80xF3x44 | xor bl,0x44 | key=0x44 |
x88x1Cx08 | mov [eax+ecx],bl | |
x41 | inc ecx | |
x80xFBx90 | cmp bl,0x90 | 0x90标识符以shellcode结束 |
x75xF1 | jne |
3.将解码指令放在编码的壳代码前面,并把它们一起发送到装载器测试中。
运行效果:
相关新闻
- 2023-05-06 微pe怎么初始化U盘(微pe怎么恢复初
- 2023-05-06 Xp系统boot 进入pe(boot manager 怎么进入
- 2023-05-06 win pe修复bcdboot(pe修复系统)
- 2023-05-06 win7更新失败 pe(win7更新失败还原更
- 2023-05-06 u盘装了pe读取不了(u盘能进pe读取不
- 2023-05-06 u盘pe 发热(u盘发热烫手)
- 2023-05-06 u盘pe下看不到硬盘(u盘启动pe看不到
- 2023-05-06 pe盘 ntfs(u盘ntfs格式)
- 2023-05-06 sony笔记本进入pe模式(联想笔记本怎
- 2023-05-06 pe启动盘进不去(pe启动盘进不去系统
|
|
|
|
|
|
|
|
|
|