Chinaunix首页 | 论坛 | 博客
  • 博客访问: 17918
  • 博文数量: 2
  • 博客积分: 15
  • 博客等级: 民兵
  • 技术积分: 30
  • 用 户 组: 普通用户
  • 注册时间: 2011-07-17 02:00
个人简介

.........................

文章分类

全部博文(2)

文章存档

2016年(1)

2015年(1)

我的朋友

分类: LINUX

2016-06-19 18:48:50


点击(此处)折叠或打开

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <unistd.h>
  5. #include <pthread.h>

  6. void *thread0(void *param)
  7. {
  8.     char buf[100]={0};
  9.     *((int*)buf+1)=0x2d;
  10.     void *buf0,*buf1,*buf2,*ptr;
  11.     buf0=malloc(32);
  12.     buf1=malloc(32);
  13.     free(buf1);
  14.     free(buf0);
  15.     buf0 = malloc(32);
  16.     ptr=(void*)((*(int*)buf0)+8);
  17.     
  18.     *(int*)ptr=(int)&buf[0];
  19.     buf1 = malloc(32);
  20.     buf2 = malloc(32); //buf2为&buf[0]地址
  21.     memset(buf2,0xff,40);
  22.     printf("kkkkkk\n");
  23.     pthread_exit((void*)0);
  24. }
  25. /*
  26.  *
  27.  */
  28. int main(int argc, char** argv) {
  29.     pthread_t tid;
  30.     pthread_attr_t attr;
  31.     pthread_attr_init(&attr);
  32.     pthread_attr_setdetachstate(&attr,PTHREAD_CREATE_DETACHED);
  33.     pthread_create(&tid,&attr,thread0,(void*)0);
  34.     pthread_attr_destroy(&attr);
  35.     sleep(60000);

  36. /*
  37.     char buf[100]={0};
  38.     *((int*)buf+1)=0x29;
  39.     int *pppp=&buf[0];
  40.     void *buf0,*buf1,*buf2;
  41.     buf0=malloc(32);
  42.     buf1=malloc(32);
  43.     free(buf1);
  44.     free(buf0);
  45.     buf0 = malloc(32);
  46.     memset(buf0,1,32);
  47.     int *ptr=0x0804a030;
  48.     *ptr=0xbffff588;
  49.     buf1 = malloc(32);
  50.     memset(buf1,2,32);
  51.     buf2 = malloc(32);
  52.     memset(buf2,4,40);
  53.     printf("kkkkkk\n");
  54. */
  55.     return (EXIT_SUCCESS);
  56. }


阅读(1805) | 评论(0) | 转发(0) |
0

上一篇:linux利用PLT延迟绑定

下一篇:没有了

给主人留下些什么吧!~~