linux简单之美(三)

在linux简单之美(二)中我们尝试使用了C库的函数完成功能,那么能不能用syscall方式

来搞呢?显然可以!

section .data
	ft db "now is X",10

section .text
global _start

_start:
	mov edi,10
again:
	dec edi
	mov eax,edi
	add eax,0x30
	mov byte [ft+7],al

	mov eax,4
	mov ebx,1
	mov ecx,ft
	mov edx,9
	int 0x80

	mov eax,162
	push 0
	push 1
	mov ebx,esp
	mov ecx,0
	int 0x80

	cmp edi,0
	jnz again

	mov eax,4
	mov ebx,1
	mov ecx,msg
	mov edx,15
	int 0x80

	mov eax,1
	mov ebx,0
	int 0x80

msg:
 db "happy xxx day!",10

    nasm -f elf main.asm

    ld -m elf_i386 -o main main.o

    在代码中延时使用的是nanosleep,其他和第一篇一致,只不过做了一个bin->ascii的小转换.

时间: 2024-10-22 10:22:55

linux简单之美(三)的相关文章

linux简单之美

linux简单之美 (一) 话说windows也有syscall,这是必须的.但是win的syscall可以直接call吗?可以是 可以但是破费周折,搞成SDT之类的复杂概念.下面看看linux是如何做的吧. section .data msg db "hello hopy!",0x0a   section .text global _start   _start: mov eax,4 mov ebx,1 mov ecx,msg mov edx,12 int 0x80 mov eax,

linux简单之美(一)

    话说windows也有syscall,这是必须的.但是win的syscall可以直接call吗?可以是 可以但是破费周折,搞成SDT之类的复杂概念.下面看看linux是如何做的吧. section .data msg db "hello hopy!",0x0a section .text global _start _start: mov eax,4 mov ebx,1 mov ecx,msg mov edx,12 int 0x80 mov eax,1 mov ebx,0 in

linux简单之美(二)

    我们在前一章中看到了如何仅仅用syscall做一些简单的事,现在我们看能不能直接调用 C标准库中的函数快速做一些"复杂"的事: section .data ft db "now is %d",10 section .text extern puts extern exit extern sleep extern printf global main main: mov edi,11 again: dec edi push edi push ft call p

VMware虚拟机修改Linux MAC地址的三种方法

  MAC地址为网卡的物理地址,在Windows系统下非常容易修改,在linux模式下则有些复杂, 我们看看VMware虚拟机中修改Linux MAC地址的方法 方法一: 这个方法最直接简单有效,修改Linux系统里相关rc.local文件MAC值即可. 方法二: 修改虚拟机的*.vmx文件,这种方法最值得推荐,因为这样就类似于重新"烧录"了VMware虚拟机的"物理网卡ROM".方法是: 分两种情况: 第一种: ethernet0.addressType=&quo

十天学Linux内核之第三天---内存管理方式

原文:十天学Linux内核之第三天---内存管理方式 昨天分析的进程的代码让自己还在头昏目眩,脑子中这几天都是关于Linux内核的,对于自己出现的一些问题我会继续改正,希望和大家好好分享,共同进步.今天将会讲诉Linux如何追踪和管理用户空间进程的可用内存和内核的可用内存,还会讲到内核对内存分类的方式以及如何决定分配和释放内存,内存管理是应用程序通过软硬件协助来访问内存的一种方式,这里我们主要是介绍操作系统正常运行对内存的管理.插个话题,刚才和姐姐聊天,她快结婚了,说起了自己的初恋,可能是一句很

Linux内核分析(三)----初识linux内存管理子系统

原文:Linux内核分析(三)----初识linux内存管理子系统 Linux内核分析(三) 昨天我们对内核模块进行了简单的分析,今天为了让我们今后的分析没有太多障碍,我们今天先简单的分析一下linux的内存管理子系统,linux的内存管理子系统相当的庞大,所以我们今天只是初识,只要对其进行简单的了解就好了,不会去追究代码,但是在后面我们还会对内存管理子系统进行一次深度的分析. 在分析今天的内容之前,我们先来看出自http://bbs.chinaunix.net/thread-2018659-2

【OGG】OGG简单配置双向复制(三)

[OGG]OGG简单配置双向复制(三) 一.1  BLOG文档结构图       一.2  前言部分   一.2.1  导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① OGG的双向实时复制功能     注意:本篇BLOG中代码部分需要特别关注的地方我都用黄色背景和红色字体来表示,比如下边的例子中,thread 1的最大归档日志号为33,thread 2的最大归档日志号为43是需要特别关注的地方.   List of Archi

9条Linux简单又实用的指令介绍

  9条Linux简单又实用的指令介绍          今天,与大家分享的是学习Linux过程中的心得体会,写下来与大家分享. 1.指令:ls 说明:ls常常用于在Console界面下,查看当前目录下文件,其中包括文档.脚本.软件包等.类似于Windows资源管理器,可以快速便捷查看. 2.指令:cd 说明:在Linux系统下,常需要切换不同路径,查看.添加或者是运行脚本等.借助cd命令可以快速切换当前工作目录. 如下所示,借助cd,路径切换到 /Desktop目录下,借助ls可以查看Desk

简单粗暴的三种方法打造照片朦胧感

  简单粗暴的三种方法打造照片朦胧感,适用于小清新.森女系.梦境.复古等风格,非常有意思的摄影及后期,值得借鉴学习 分类: PS图片处理