Linux内核之——C语言“徒手”写内存!

来源:互联网 发布:java 获取磁盘io 编辑:程序博客网 时间:2024/05/22 11:51

本文原创为freas_1990,转载请标明出处:http://blog.csdn.net/freas_1990/article/details/18990055

在application程序猿的眼中,C语言写内存的方法,千篇一律,如下:

struct mystr * ptr;ptr = malloc(sizeof(*ptr));ptr->fildA='abc';ptr->fildB=89;

但是,如果是系统程序,没有malloc,甚至需要你自己设计malloc, 如何来写内存呢 ? 

下边为大家展示一种技术,此技术比较血腥和暴力,少儿不宜。

满了18岁的小朋友可以继续观看。

1 #include <stdio.h>  2 #include <malloc.h>  3   4 struct str1 {  5         int i;  6         char j;  7 };  8   9 int main(){ 10         struct str1 * ptr1; 11         ptr1 = malloc(sizeof(*ptr1)); 12         *((int*)ptr1)=23; 13         *((char*)((int*)ptr1 + 1))='a'; 14  15         printf("now ptr1->i is:%d\n",ptr1->i); 16         printf("now ptr1->j is:%d\n",ptr1->j); 17  18         return 0; 19 }

胆子大一点的童鞋猜一猜呢,ptr1->i是多少呢?

没错,输出是这样的:

[root@localhost ~]# ./memwrite now ptr1->i is:23

那么,ptr1->j是多少呢?

如果知道答案,那么,他为什么会是这个结果呢?

如果你还没有看懂,加我的QQ号吧。

如果你理解了本hack的核心原理,再去阅读Linux内核的分页管理、swap技术什么的,就易如反掌了。 

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 陌陌看到信息不回怎么办 qq的文档看不了怎么办 怀孕了分手了怎么办啊 qq节日祝福关了怎么办 微信欠款不还怎么办 qq文件记录删除了怎么办 qq漫游记录删了怎么办 换了新手机微信怎么办 新手机了微信怎么办 微信收藏空间已满怎么办 微信收藏空间满了怎么办 qq步数上传不了怎么办 qq发送的文件失效了怎么办 苹果手机微信数据损坏怎么办 微信文件被清理怎么办 老婆与别人聊暧昧话题怎么办 微信不小心删了聊天记录怎么办 当聊天没话题了怎么办 老婆和别人频繁聊天老公怎么办 qq上把人屏蔽了怎么办 注册微信验证码发不出去怎么办 两个人在一起没有话题怎么办 两个人聊天没话题怎么办 qq邮箱限制信用卡账单怎么办 和朋友聊天没话题怎么办 跟朋友聊天没话题怎么办 和朋友聊天找不到话题怎么办 qq加好友忽略了怎么办 微信加好友收不到验证消息怎么办 陌陌距离乱了怎么办 qq不能点赞了怎么办 快递发货地址写错了怎么办 订的海鲜不发货怎么办 拉人进群频繁了怎么办 qq群邀请过于频繁怎么办 qq一直被拉进群怎么办 qq号被冻结解封不了怎么办 2018qq自动进群怎么办 手机视频传到电脑倒着怎么办 qq群图片过期了怎么办 q号加不了群怎么办