linux下64位汇编的系统调用(5)
来源:互联网 发布:易娱网络 编辑:程序博客网 时间:2024/06/04 19:15
看到这里大家都基本知道了如何进行linux下的汇编系统调用;不过有些童鞋可能会问:那些C库中函数里为我们解决的额外汇编代码你是怎么知道的?
好吧,我承认:我是通过逆向知道的,这貌似有点犯规的嫌疑…
比如举个例子,那上一篇里的mmap C库函数来说,首先写一个C代码:
#include <stdlib.h>#include <stdio.h>#include <stdbool.h>#include <sys/mman.h>#include <sys/types.h>#include <fcntl.h>#include <errno.h>#include <string.h>#include <math.h>#include <unistd.h>int main(void){ int size = 4096; printf("anonymous is %08x\n",MAP_ANONYMOUS); printf("err test is %s\n",strerror(22)); //in linux with -D_BSD_SOURCE char *buf = mmap(NULL,size,PROT_READ|PROT_WRITE,MAP_ANONYMOUS,-1,0); printf("buf is %p\n",buf); if(buf == MAP_FAILED){ //if(buf < 0){ printf("mmap failed(%s)\n",strerror(errno)); return 1; } return 0;}
前面介绍过几个linux下的集成调试环境,这里我们还是用codelite而不用codeblocks,原因很简单,后者需要C库函数的源代码才能在调试中查看C库中汇编指令,而我们一般没法找到这些源代码。
不过codeblocks里面可以设置汇编的语法,比如可以设置为intel类型:
而codelite貌似没找到设置的地方,只有用大脑在at&t和intel之间转换鸟。
0 0
- linux下64位汇编的系统调用(5)
- linux下64位汇编的系统调用(1)
- linux下64位汇编的系统调用(2)
- linux下64位汇编的系统调用(3)
- linux下64位汇编的系统调用(4)
- 64位汇编之linux系统调用
- linux系统调用64位汇编与32位汇编不同及兼容
- Linux 下的64位汇编
- linux下32位汇编调用规则
- Mac OS X下64位汇编与Linux下64位汇编的一些不同
- linux 64位系统调用
- Window7的64位系统下配置32位的汇编环境的心得
- Linux汇编教程14:系统调用和文件处理下
- Windows下的64位汇编(1)
- 64位linux 汇编
- 64位Linux汇编
- 64位Linux汇编
- 64位cmd下调用32位系统下的操作指令
- LeetCode Maximal Rectangle
- 第六周上机实践项目1——深复制体验(1)
- Android 程序框架设计
- Redis学习备忘 Jedis
- 在枚举类型的值和字符串之间相互转换
- linux下64位汇编的系统调用(5)
- 数据库调优教程(十二) 优化sql语句
- 第5周项目2 对象作为数据成员
- 对组态王OPC服务器值的读取c#版本
- 在 SQL Server 2008 中新建用户登录并指定该用户的数据库
- Android组件间通信机解耦——Android EventBus和Otto框架一、前言 传统的事件传递方式包括:Handler、BroadCastReceiver、Interface 回调,相比之
- MATLAB关于文件操作的一些基本用法
- 0~9数字问题
- Smali语法基础知识