随笔分类 -  Linux

摘要:/* * quick'n'dirty poc for CVE-2013-1763 SOCK_DIAG bug in kernel 3.3-3.8* bug found by Spender* poc by SynQ* * hard-coded for 3.5.0-17-generic #28-Ubuntu SMP Tue Oct 9 19:32:08 UTC 2012 i686 i686 i686 GNU/Linux* using nl_table->hash.rehash_time, index 81* * Fedora 18 support added* * 2/20 阅读全文
posted @ 2013-08-14 09:21 jeremyatchina 阅读(419) 评论(0) 推荐(0)
摘要:core dump的除錯Basic Perl等語言處理的可以說是User的資料, C可以說在那邊把資料在記憶體移來移去, 組語可說把資料在暫存器搬來搬去, 越低階的處理表示握有的資源越少所以C處理不好的話很容易記憶體跨出範圍, 或者系統毀了(panic), 這時都會產生一個core dump, 就是毀掉的瞬間記憶體內部的內容會搬到一個檔案core, core file 包含了程式的read/write的memory部份, 也就是程式躺在記憶體時的狀態, executable只是一個可執行檔也就是程式躺在硬碟時。 gdb可以根據這個檔來除錯,只是這時的target是core 或exec 不是re 阅读全文
posted @ 2013-08-12 12:41 jeremyatchina 阅读(10980) 评论(0) 推荐(0)
摘要:在 x86 上,regparm 属性会传递一个数值给编译器,这个数值会告诉编译器要用多少个寄存器来传递函数参数(EAX, EDX 或 ECX,最多 3 个寄存器),通常情况下函数是用堆栈来传递参数的。如果参数比较多,那么其余的参数仍然通过堆栈来传递。比如我们指定 __attribute__((regparm(0))) ,则表示不用寄存器来传递参数,所有参数都通过堆栈来传递;如果我们指定 __attribute__((regparm(3))),那么就是说会用 3 个寄存器来传递参数(EAX, EDX, ECX),其余的参数通过堆栈来传递。下面先看不用寄存器来传递参数的情况: 1 #include 阅读全文
posted @ 2013-08-08 20:29 jeremyatchina 阅读(1393) 评论(0) 推荐(0)
摘要:# uname -a查看Kernel版本# cat /etc/redhat-release查看 linux版本(以RedHat為例)1.核心查詢:uname -a結果:Linux 2.x.x-x.x.x.el5xen #1cat /proc/version結果:Linux version 2.x.x-x.x.x.el5xen 2.現在使用套裝系統版本查詢cat /etc/issue結果:CentOS release 5.4 (Final)Kernel \r on an \mlsb_release -a結果:LSB Version: :core-x.x-ia32:core-x.x-noarch. 阅读全文
posted @ 2013-07-25 17:07 jeremyatchina 阅读(324) 评论(0) 推荐(0)
摘要:需要测试OpenSuSE11 x64上mysql性能,发现很多东西与centos以及红帽有差别。其中最切身的就是sshd服务的开启。 安装好OpenSuSE 11后,发现ssh连接不上去,可以ping通,telnet不行。查看服务后,发现ssh服务没有开启。开启步骤:1.修改/etc/ssh/ssh 阅读全文
posted @ 2013-07-12 19:43 jeremyatchina 阅读(539) 评论(0) 推荐(0)
摘要:简介进程无法启动,软件运行速度突然变慢,程序的"Segment Fault"等等都是让每个Unix系统用户头痛的问题,本文通过三个实际案例演示如何使用truss、strace和ltrace这三个常用的调试工具来快速诊断软件的"疑难杂症"。truss和strace用来跟踪一个进程的系统调用或信号产生的情况,而 ltrace用来跟踪进程调用库函数的情况。truss是早期为System V R4开发的调试程序,包括Aix、FreeBSD在内的大部分Unix系统都自带了这个工具;而strace最初是为SunOS系统编写的,ltrace最早出现在GNU/Debia 阅读全文
posted @ 2013-07-10 23:10 jeremyatchina 阅读(404) 评论(0) 推荐(0)
摘要:Linux利器 stracestrace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。strace使用参数-p 跟踪指定的进程-f 跟踪由fork子进程系统调用-F 尝试跟踪vfork子进程系统调吸入,与-f同时出现时, vfork不被跟踪-o filename 默认strace将结果输出到stdout。通过-o可以将输出写入到filename文件 阅读全文
posted @ 2013-07-10 23:09 jeremyatchina 阅读(849) 评论(0) 推荐(0)
摘要:/etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE='eth0' eth0后面千万不能加空格之类的 阅读全文
posted @ 2013-07-05 01:44 jeremyatchina 阅读(275) 评论(0) 推荐(0)
摘要:vmstat是一个十分有用的Linux系统监控工具,使用vmstat命令可以得到关于进程、内存、内存分页、堵塞IO、traps及CPU活动的信息。可用以下命令查看:#vmstat 2直接查看系统当前各项占用情况,每2秒输出一次数据。字段说明:Procs(进程):r: 运行队列中进程数量b: 等待IO的进程数量Memory(内存):swpd: 使用虚拟内存大小free: 可用内存大小buff: 用作缓冲的内存大小cache: 用作缓存的内存大小Swap:si: 每秒从交换区写到内存的大小so: 每秒写入交换区的内存大小IO:(现在的Linux版本块的大小为1024bytes)bi: 每秒读取的块 阅读全文
posted @ 2013-07-05 00:08 jeremyatchina 阅读(770) 评论(0) 推荐(0)
摘要:Problem1 : root@jeremy-VirtualBox:/etc/bind# /etc/init.d/bind9 restart * Stopping domain name service... bind9 rndc: connect failed: 127.0.0.1#953: connection refused [ OK ] * Starting doma... 阅读全文
posted @ 2013-06-21 17:51 jeremyatchina 阅读(2704) 评论(0) 推荐(0)
摘要:hexdumphexdump命令一般用来查看”二进制“文件的十六进制编码,但实际上它的用途不止如此,手册页上的说法是“ascii, decimal, hexadecimal, octal dump“,而且它能查看任何文件,而不只限于二进制文件了。规范的十六进制和ASCII码显示(Canonical hex+ASCII display)root@new55 ~]# echo /etc/passwd | hexdump -C00000000 2f 65 74 63 2f 70 61 73 73 77 64 0a |/etc/passwd.|0000000c单字节八进制... 阅读全文
posted @ 2013-06-14 14:48 jeremyatchina 阅读(536) 评论(0) 推荐(0)
摘要:dmesg cat /var/log/messages more /proc/kmsg 修改proc/sys/kernel/printk在kernel 中模組如果要列印出訊息,由於不能連結一般函式庫,只能與核心的函式庫連結。因此printf() 就不能使用了,只能使用printk()。EX:printk(KERN_DEBUG "Here I am: %s:%i\n", __FILE__, __LINE__);printk(KERN_CRIT "I'm trashed; giving up on %p\n", ptr); 38#define KER 阅读全文
posted @ 2013-01-06 20:33 jeremyatchina 阅读(400) 评论(2) 推荐(0)
摘要:vi 是 unix 家族下最功能強大的文字編輯器,讓用戶只要使用一個鍵盤就可以完成所有的編輯。而vim則是 vi 的加強版,甚至在Windows上也找得到 vim 的芳蹤。但 vi/vim 眾多的指令卻經常令初學者卻步,以下就是我所整理出來那些令人卻步的指令:編輯模式指令說明*i在游標位置進入編輯模式I在游標行的第一個非空白字元進入編輯模式*a在游標位置後進入編輯模式*A在游標行的最後一個字元進入編輯模式*o向下新增一行,並進入編輯模式O向上新增一行,並進入編輯模式cc刪除游標行,並進入編輯模式*[ESC]取消指令或退出編輯模式游標移動指令說明*gg移到第一行*G移到最後一行*行數→ G移動到 阅读全文
posted @ 2013-01-03 22:46 jeremyatchina 阅读(260) 评论(0) 推荐(0)
摘要:warning: ISO C90 forbids mixed declarations and code通常會出現這種warning message是因為變數的宣告太後面在宣告變數的前面不可以有其他的執行運作。但是有執行所用到的變數要距離越近,執行的效率越好的觀點但個人覺得在Interpreter Language而言會比較有作用,因為對C來說,Code Optimization後,應該不會有這個議題存在。 阅读全文
posted @ 2013-01-02 15:55 jeremyatchina 阅读(418) 评论(0) 推荐(0)
摘要:#include <stdio.h>#include <errno.h> int main (){ FILE * file; file=fopen ("exist.not","rb"); if (file==NULL) { perror("perror"); printf("strerror(errno)=%s\n", strerror(errno)); } else fclose (file); return 0;} 当linux中的C api函数发生异常时,一般会将errno变量(需in 阅读全文
posted @ 2013-01-02 00:09 jeremyatchina 阅读(535) 评论(0) 推荐(0)
摘要:在下載 linux kernel 時http://www.kernel.org/pub/linux/kernel/v2.6/看到有分成兩種壓縮格式本來想看看到底這兩種壓縮格式有什麼不同先把指令打上免得到時候又忘記了解壓縮 tar.gztar -zxvf filename.tar.gz壓縮 tar.gztar -zcvf filename.tar.gz /folder解壓縮 tar.bz2tar -jxvf filename.tar.bz2壓縮 tar.bz2tar -jcvf filename.tar.bz2 /folder解開 .tartar -xvf filename.tar打包 .tar 阅读全文
posted @ 2012-12-24 03:08 jeremyatchina 阅读(145) 评论(0) 推荐(0)
摘要:[Linux] 使用 SCP 指令,讓您傳送檔案至遠端、下載檔案當我們使用 Linux 系統時,可能需要一些傳送檔案的動作,此時就可以使用 SCP 這個指令,即可不須透過隨身碟等方式,幫你將檔案傳送至另一端 Linux 電腦~接著我們看看如何使用~~假設我們有兩台電腦…..A電腦 IP : 1.1.1.1B電腦 IP : 1.1.1.2[上傳]若目前使用A電腦,我們要將 A電腦 某個檔案,傳送至 B電腦 中,可以這麼輸入scp[-P Port][-pr] [-l 速度] [傳送至遠端的檔案] [遠端帳號@IP:放置的路徑]ex. scp -P 1234 -pr/home/user/temp/ 阅读全文
posted @ 2012-10-26 20:31 jeremyatchina 阅读(348) 评论(0) 推荐(0)
摘要:// victim.c#include <stdio.h>int main(int argc,char *argv[]){char little_array[512]; strcpy(little_array,argv[1]); printf("Your enter:\n%s\n",little_array); return 0;}gcc -fno-stack-protector -z execstack -mpreferred-stack-boundary=2 -o victim -g victim.c./victim `perl -e 'pr... 阅读全文
posted @ 2012-10-08 21:51 jeremyatchina 阅读(159) 评论(0) 推荐(0)
摘要:turn off ASLR in linuxQ: I want to turn off ASLR on my own PC. But each time I type "sudo echo 0 > /proc/sys/kernel/randomize_va_space", the system shows that "Permission denied". How can I make it work? By the way, my OS kernel is 2.6.30.A:This is a common problem with sudo a 阅读全文
posted @ 2012-10-03 17:39 jeremyatchina 阅读(234) 评论(0) 推荐(0)