linux
老肖79
这个作者很懒,什么都没留下…
展开
-
玩转ptrace
玩转ptrace原文链接在第一部分中我们已经看到ptrace怎么获取子进程的系统调用以及改变系统调用的参数。在这篇文章中,我们将要研究如何在子进程中设置断点和往运行中的程序里插入代码。实际上调试器就是用这种方法来设置断点和执行调试句柄。与前面一样,这里的所有代码都是针对i386平台的。 附着在进程上 在第一部分钟,我们使用ptrace(P转载 2012-07-24 18:28:57 · 769 阅读 · 0 评论 -
mprotect: 设置内存访问权限
mprotect: 设置内存访问权限mmap 的第三个参数指定对内存区域的保护,由标记读、写、执行权限的 PROT_READ、PROT_WRITE 和 PROT_EXEC 按位与操作获得,或者是限制没有访问权限的 PROT_NONE。如果程序尝试在不允许这些权限的本地内存上操作,它将被 SIGSEGV 信号(Segmentation fault,段错误)终止。在内存映射完成后,这些权限仍可转载 2012-11-01 17:52:03 · 1009 阅读 · 0 评论 -
Android下通过root实现对system_server中binder的ioctl调用拦截
Android下通过root实现对system_server中binder的ioctl调用拦截作者:passion2012-10-18关键字:Android, Hook, API, Binder, 注入, 拦截(转载请注明出处)======================================================================〇、转载 2012-10-26 17:20:46 · 1211 阅读 · 0 评论 -
Linux查看和结束进程命令详解
在ubuntu中,终止一个进程或终止一个正在运行的程序,一般是通过 kill 、killall、pkill、xkill 等进行。-------------------------------------------------------------------先看两个例子: 例子一:结束某个程序,如Firefox 键入命令:pkill firefox转载 2012-11-08 11:04:42 · 729 阅读 · 0 评论 -
linux如何查进程、杀进程,重启进程
1.查进程 ps命令查找与进程相关的PID号: ps a 显示现行终端机下的所有程序,包括其他用户的程序。 ps -A 显示所有程序。 ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。 ps -e 此参数的效果和指定"A"参数相同。 ps e 列出程序时,显示每个程序所使用的环境变量。转载 2012-11-08 11:10:07 · 885 阅读 · 0 评论 -
系统调用彻底理解
用户程序需要系统提供服务的时候,会通过系统调用产生一个int 0x80的软中断,就会进入到系统调用的入口函数,入口函数存放在以下文件当中:以下是系统调用的入口:ENTRY(system_call)RING0_INT_FRAME# cant unwind into user space anywaypushl %eax# save orig_eax ,将系统调转载 2012-11-27 10:45:30 · 661 阅读 · 0 评论 -
多进程同时访问文件并发问题解决方法 .
因为业务需求需要多个进程同时访问某个文件并进行读写操作的需求,因为文件并不是被同一个进程访问,而且极大可能会发生多进程争抢文件句柄的情况,如果在同一个进程里不同的线程访问,或许还能使用线程锁的方式控制,但是跨进程时就无法解决。网上询问解决方法基本上都类似Linux里日志文件服务一样,建立一个独立的文件操作服务,由文件操作服务来控制不同进程对同一个文件的访问。但是这样改动量就比较大,而且因为不同的程转载 2013-01-29 18:29:27 · 2405 阅读 · 0 评论 -
Linux 多进程读写文件 文件锁
目前遇到一个问题:多个进程对同一个文件进行写操作,如何避免冲突。研究了一下,做个小结。 对于多进程写文件,主要有以下两种处理方式:1.类似于Linux日志文件服务启动一个logger进程,其他进程向logger发消息,即把数据发送给logger,由logger来写文件,这种方法最安全,但是实现上相对复杂2.采用文件锁对当前读写文件进行加锁处理,简单说下两种加锁方式:fl转载 2013-01-29 18:33:57 · 2316 阅读 · 0 评论 -
Unix/Linux环境常用库简介
http://blog.csdn.net/lyjtynet/article/details/5297569 一个程序的开发离不开许多库函数的支持,可是库如此之多,有开源免费的也有收费的。很希望熟悉编程的前辈把自己的经验整理下,常用的库都包含哪些功能。下文是在网上找的一个类似的资料。期待更多更全的内容。-----------------------------------------转载 2013-02-25 15:23:29 · 605 阅读 · 0 评论 -
Ftp命令格式(rfc 959)
http://aijiekj.blog.163.com/blog/static/129866789201142511128695/ 本节主要讨论命令格式。命令对大小写不敏感。命令通常由命令码和相应的参数组成。中间由一个或几个空格分开。参数域由结束,服务器在未接收到行结束符时不会采取任何动作。下面描述的格式是以 NVT-ASCII 以准的,方括号代表可选的参数域,如果未选择可选的参数域则采用转载 2013-05-31 00:08:58 · 2946 阅读 · 0 评论 -
Linux环境下的Socket编程
什么是Socket Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。要学Internet上的TCP/IP网络编程,必须理解Socket接口。 Socket接口设计者最先是将接口放在Unix操作系统里面的。如果了解Unix系统的输入和输出的话,就很容易了解Socket了。网络的Socket数据传输转载 2013-05-31 00:09:59 · 545 阅读 · 0 评论 -
linux下c语言select函数用法
http://www.linuxdiyf.com/viewarticle.php?id=43658select(I/O多工机制) 表头文件 #i nclude#i nclude#i nclude定义函数 int select(int n,fd_set * readfds,fd_set * writefds,fd_set * exceptfds,struct timeval转载 2013-05-31 00:10:43 · 755 阅读 · 0 评论 -
linux Proc文件系统介绍及运用总结 .
http://blog.csdn.net/goldlevi/article/details/7705178 先说一个刚刚发现的问题:前两天打开测试机发现速度非常慢,top一看,发现java占用CPU 99% 查看对应pid,发现这个是新的话单采集程序gather:#ps -ef | grep javaRoot 5762 1 99 14:41 pts/0 00:00:01转载 2013-07-25 19:36:33 · 1978 阅读 · 0 评论 -
Linux smaps接口文件结构
在Linux内核 2.6.16中引入了一个系统内存接口特性,这个接口位于/proc/$pid/目录下的smaps文件中,一看内容发现是进程内存映像信息,比同一目录下的maps文件更详细些。 Java代码 400df000-4048c000 r--s 00000000 1f:05 286 /data/dalvik-cache/syste转载 2013-07-25 19:27:15 · 2260 阅读 · 0 评论 -
Linux Programmer's Manual
地址:http://www.linuxmanpages.com/man2/setuid.2.phpNAMEsetuid - set user identity SYNOPSIS#include sys/types.h> #include unistd.h>int setuid(uid_t uid); DESCRIPTIONsetuid sets the e转载 2012-10-22 21:04:25 · 3920 阅读 · 0 评论 -
Unix/Linux OS/real and effective user id
Expert: nix - 5/14/2004QuestionHi, I often confuse between real and effective user id of a process. Could you please clarify me what is the difference between them and give an example where w转载 2012-10-22 20:24:09 · 542 阅读 · 0 评论 -
ptrace的使用
1. 函数使用说明名字ptrace – 进程跟踪 形式#include int ptrace(int request, int pid, int addr, int data); 描述Ptrace 提供了一种父进程可以控制子进程运行,并可以检查和改变它的核心image。它主要用于实现断点调试。一个被跟踪的进程运行中,直到发生一个信号。则进程被中止,并且通转载 2012-07-24 18:26:57 · 11525 阅读 · 0 评论 -
proc(5) - Linux man page(中文翻译)
名字proc - process information pseudo-filesystem,进程信息伪文件系统描述proc是个作为内核数据结构接口的伪文件系统,他被挂载在/proc目录下。该目录下大多数文件是只读的,但某些文件也允许内核变量被修改。/proc/[number]/proc目录下用数字表示的子目录对应着系统中正在运行的一些进程,子目录名即为进程的PID。每个进转载 2012-08-21 17:52:41 · 1277 阅读 · 0 评论 -
linux 守护进程编写
linux编程-守护进程编写 守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待 处理某些发生的事件。守护进程是一种很有用的进程。 Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。 同时,守护进程完成许多系统任务。比如,作业规划进程crond,打转载 2012-08-22 18:05:34 · 633 阅读 · 0 评论 -
geteuid()和getuid()的区别
geteuid():返回有效用户的ID。getuid():返回实际用户的ID。有效用户ID(EUID)是你最初执行程序时所用的ID 表示该ID是程序的所有者 真实用户ID(UID)是程序执行过程中采用的ID 该ID表明当前运行位置程序的执行者 举个例子 程序myprogram的所有者为501/anna 以501运行该程转载 2012-08-22 17:31:53 · 1052 阅读 · 0 评论 -
Linux实用命令创建目录复制等
1. 创建目录 mkdir NO1. 在当前路径创建一级目录 [root@rehat root]# mkdir test NO2. 在当前路径创建多级目录 [root@rehat root]# mkdir -p mytest/test1/test1_1 NO3. 在创建目录的同时给新建的目录赋权限转载 2012-08-27 20:03:26 · 1159 阅读 · 0 评论 -
Linux C 创建目录函数mkdir相关
I.Linux C 创建目录函数mkdir的mode设置问题 函数原型: #include int mkdir(const char *path, mode_t mode); 参数: path是目录名 mode是目录权限 返回值: 返回0 表示成功, 返回 -1表示错误,并且会设置errno值。 mode模式位: m转载 2012-08-28 15:38:20 · 1243 阅读 · 0 评论 -
Linux mkdir 命令
用途创建一个或多个新的目录。语法mkdir [ -m Mode ] [ -p ] Directory ...描述mkdir 命令创建由 Directory 参数指定的一个或多个新的目录。每个新目录包含标准项.(点)和 ..(点-点)。您可以使用 -m Mode 标志为新的目录指定许可权。您可以使用 umask 子例程为 mkdir 命令设置缺省方式。将新转载 2012-08-28 15:39:06 · 3302 阅读 · 0 评论 -
linux中进程的用户管理
每个进程都拥有真实的用户、组(uid、gid),有效的用户、组(euid、egid),保存的设置用户、组(suid、sgid),还有linux中专门用于文件存储存取的用户、组id(fsuid、fsgid对于unix系统没有这两个fields)。现说明进程中每种类型用户的功能:(1)真实的用户、组(uid、gid):进程的真正所有者。每当用户在shell终端登录时,都会将登录用户作为登录进程的真转载 2012-09-07 14:55:29 · 1058 阅读 · 0 评论 -
open()参数宏的意义 O_TRUNC
C语言中一些基本函数 http://c.chinaitlab.com/basic/764984_23.htmlint _open(char *pathname,int access)为读或写打开一个文件, 按后按access来确定是读文件还是写文件,access值见下表 ┌──────┬────────────────────┐ │access值 │意义转载 2012-09-15 17:06:15 · 7897 阅读 · 0 评论 -
Linux 系统 putenv,setenv,unsetenv 使用
相关函数 putenv,setenv,unsetenv表头文件 #include定义函数 char * getenv(const char *name);函数说明 getenv()用来取得参数name环境变量的内容。参数name为环境变量的名称,如果该变量存在则会返回指向该内容的指针。环境变量的格式为name=valu转载 2012-10-18 15:13:03 · 1924 阅读 · 0 评论 -
[转]Linux C函数之文件及目录函数(2)
link: 建立文件硬连接 头文件: unistd.h 函数定义: int link(const char *oldpath, const char *newpath); 说明: link()以参数newpath指定的名称来建立一个新的连接(硬连接)到参数oldpath所指定的已存在文件. 如果参数newpath指定的名称为一已存在的文件则不会建立连接. 成功则返回0, 失败返回-1, 错误原因存转载 2012-10-29 20:48:31 · 664 阅读 · 0 评论 -
waitpid()
waitpid系统调用在Linux函数库中的原型是:#include #include pid_t waitpid(pid_t pid,int *status,int options) 从本质上讲,系统调用waitpid和wait的作用是完全相同的,但waitpid多出了两个可由用户控制的参数pid和options,从而为我们编程提供了另一种更灵活转载 2012-10-22 14:34:08 · 469 阅读 · 0 评论 -
Linux进程学习五 wait()和waitpid()(tigerjb)
等待进程结束wait()和waitpid()函数上一节最后我们说到若子进程先于父进程结束时,父进程调用wait()函数和不调用wait()函数会产生两种不同的结果:--如果父进程没有调用wait()和waitpid()函数,子进程就会进入僵死状态。--如果父进程调用了wait()和waitpid()函数,就不会使子进程变为僵尸进程。这是为什么呢?现在我们来深入学习wait()函数和转载 2012-10-22 14:43:06 · 679 阅读 · 0 评论 -
setuid()与setgid() -- 设置 UID 和 GID
用 setuid() 设置实际用户 UID 和有效用户 UID。用 setgid() 设置实际组 ID 和有效组 ID。两个函数声明如下:-- 设置 UID 和 GID" height="85" alt="setuid()与setgid() -- 设置 UID 和 GID" src="http://s6.sinaimg.cn/middle/70137129gadefa656c325&6转载 2012-10-22 16:36:42 · 2124 阅读 · 0 评论 -
为什么是“51-android.rules”?
http://www.cnblogs.com/frydsh/archive/2013/03/07/2949089.html 在Linux下进行Android开发,连接Android手机,可能会编辑到/etc/udev/rules.d/51-android.rules文件。 那么,为什么这个文件要命名成51-android.rules,而不是其它的名字呢? 详细的转载 2013-08-05 17:57:29 · 781 阅读 · 0 评论