能力值:
( LV12,RANK:530 )
|
-
-
2 楼
请问象0xEB这样的字符怎么样用键盘敲进去
|
能力值:
(RANK:520 )
|
-
-
3 楼
我一般这样:
1 用程序
printf("%c",0xeb);
打印出来后复制
2 用记事本写几个字符
再用16进制编辑软件打开 在里面写0xeb保存 ,
打开记事本 复制
|
能力值:
( LV9,RANK:1170 )
|
-
-
4 楼
精彩!
|
能力值:
( LV12,RANK:530 )
|
-
-
5 楼
复制是可以,但是粘贴呢..不会搞.那个是命令行模式的程序
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
cmd.exe 有右键粘贴菜单
可以在 cmd 下运行overflowme
也可以建一个bat文件运行overflowme
|
能力值:
(RANK:520 )
|
-
-
7 楼
在dos框 顶部蓝色标题 栏 右键 选编辑 有粘贴 功能
|
能力值:
( LV12,RANK:530 )
|
-
-
8 楼
谢谢拉,我试下
|
能力值:
(RANK:50 )
|
-
-
9 楼
好,终于用砖把玉引出来了。
|
能力值:
(RANK:50 )
|
-
-
10 楼
虽然程序退出之前有报错,
但是暇不掩玉,才思敏捷,厉害厉害。
|
能力值:
( LV12,RANK:530 )
|
-
-
11 楼
还有一个问题,是不是SEH程序的地址不可以是NTDLL内的地址啊,因为我把地址覆盖为0x61616161,他会CALL,但是我用地址如0x7c921d65之类的就不能被执行了,请问这个地址的有效范围是哪些?
刚学习了,让他执行到POP POP RET指令序列就可以执行到我们的SHELLCODE了.能执行shellcode就搞定了呵呵.
|
能力值:
(RANK:520 )
|
-
-
12 楼
这个问题我也感觉奇怪,如果程序加载了这个库应该可以的
你也可以找kernl32.dll里的地址,尝试下。
另外我发现在2000系统下无论password输入多长都不会触发异常
对于溢出我感觉最好先在2000下测试。
第一个溢出点覆盖seh的方式不大好利用, 通常利用jmp esp ,jmp ebx,jmp ebp 等方式跳转
如果能直接或间接跳到success区域 就达到目的了
如果能跳到被我们输入的字符串覆盖的区域,我们可以把将被覆盖的区域用shellcode填充。执行我们的恶意代码。
我当时调试时用覆盖seh的方法没有找到一种能跳转到我们希望的地方的方式。
有空了我会再看看的。
|
能力值:
( LV4,RANK:50 )
|
-
-
13 楼
精彩 收藏下来慢慢消化
|
能力值:
( LV12,RANK:530 )
|
-
-
14 楼
今天看了XFOCUS的网络渗透技术,里面有这么一句
在SEH调用前,地址会与已注册的异常处理函数进行比较.如果它在任何已加载的模块范围之外,此异常处理函数就能被调用...
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
进来学习一下
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
好东西收下。
|
能力值:
( LV5,RANK:60 )
|
-
-
17 楼
晕, 还以为完美解决了, 枉费我花时间和精力从头看到尾.
竟然弄个退出时报错的出来. 都没有达到发布OlverflowMe的帖子中解决的好.
|
能力值:
(RANK:520 )
|
-
-
18 楼
真是抱歉,思想和方法我想我都尽自己的能力提出来了
思想应该是重要的.
完美与否只是个时间的问题.
你在覆盖完eip后,再用原来这个地方的地址覆盖在eip后面,这样执行完后就按程序原来的流程退出.
后者你覆盖完eip后,在后面用exitprocess的地址覆盖在后面,这样执行完后就退出.
不好意思,抱歉.
|
能力值:
(RANK:520 )
|
-
-
19 楼
这是前段时间给别人回帖里写的几个exploit测试的程序:
这里覆盖完后用原来地址或exitprocess写在eip后面
使程序正常退出.
#include <stdio.h>
#include <string.h>
int n;
int fun(){
printf("You are hacked!!!\n ");
return 0;
}
int main(int argc,char **argv){
int *ret;
ret=(int *)&ret+2;
n=*ret;
*ret=(int)fun;
ret=(int *)&ret+3;
*ret=n;
printf("ret: 0x%8x \n",ret);
printf("fun at: 0x%8x \n",fun);
return 0;
}
#include <stdio.h>
#include <string.h>
int n;
int fun(){
printf("You are hacked!!!\n ");
return 0;
}
int main(int argc,char **argv){
char buf[1];
strcpy(buf,"aaaabbbb");
char *p;
p=buf;
p+=strlen("aaaabbbb");
memcpy(p,"\x0f\x10\x40",4);
memcpy(p+4,"\x93\x13\x40",4); //这个是exit的地址.
printf("ret: 0x%8x \n",buf);
printf("fun at: 0x%8x \n",fun);
return 0;
}
#include <stdio.h>
#include <string.h>
void fun(){
printf("You are hacked!!! ");
}
int main(int argc,char **argv){
char buf[1];
strcpy(buf,"aaaabbbb" "\x05\x10\x40");
printf("buf: 0x%8x ",&buf);
printf("fun at: 0x%8x ",fun);//\x05\x10\x40
return 0;
}
本人也是初学,只能说抱歉,耽误你时间了.
|
|
|