
linux 编程
gudujianjsk
这个作者很懒,什么都没留下…
展开
-
测试ioctl函数
在linux设备驱动开发详解中源码:http://blog.youkuaiyun.com/gudujianjsk/article/details/7656042makefile 脚本:KVERS = $(shell uname -r)obj-m += globalmem.oEXTRA_CFLAGS=-g -O0build:kernel_moduleskernel_modules原创 2012-06-19 21:04:22 · 1087 阅读 · 0 评论 -
kernel module 禁止ping
以下模块相当于禁止ping某一个IP地址相当于命令:iptables -A OUTPUT -p ICMP -d 220.181.111.147 -j DROP代码:#include #include #include #include #include #include #include #include #include #include #inclu原创 2012-11-02 09:50:26 · 658 阅读 · 0 评论 -
busybox无法ping域名的解决办法
$ ping www.google.comping : bad address 'www.google.com现在各个版本的busybox都一样, 网上有人讲需要libnss_dns* ...文件, 拷贝过去还是不能用,手编2.6.21内核+手编1.5.1busybox+一堆deb包解压缩出gcc, 一个自定义的linux基本完成了,就差这么一个东西, hack源代码... 最转载 2012-11-22 19:40:55 · 3677 阅读 · 0 评论 -
拷贝机器码的一种inline hook方式
将需要inline hook的函数机器码先拷贝到一块内存中, 然后动态修正这块内存的call,jmp对应的offset(相对值), 然后给原始函数做个inline hook, 跳到新函数去执行, 新函数做一些过滤判断后, 调用新分配的内存保存的机器码, 想当于调用原始函数。这种技术在实战中没什么用, 拓展下思路还是不错的。#include #include #include #inc转载 2012-10-30 21:08:14 · 1244 阅读 · 0 评论 -
Linux下串口编程
老板让我研究一下UPS的控制,貌似在Linux下面没有相应的监控软件,UPS和电脑通信时候使用的是串口(RS232),所以先对Linux串口编程了解一下。因为只是设计串口传输数据,而不需要串口来处理,那么使用原始模式(Raw Mode)方式来通讯。串口操作需要的头文件:#include /*标准输入输出定义*/ #include /*标准函数库定义*/转载 2012-12-12 10:35:24 · 722 阅读 · 0 评论 -
Linux下minicom的配置和使用方法
安装配置minicom# lsmod | grep usbserial (如果直接使用串口线,而没有用到USB转串口设备,此步可以跳过) 如果有usbserial,说明系统支持USB转串口。 安装minicom apt-get install minicom apt-get install lrzsz配置minicom # minicom转载 2012-12-21 09:22:48 · 618 阅读 · 0 评论 -
task_struct 进程描述符为何要这样分配?
进程描述符: struct_task,定义于,进程的task_struct存放在进程内核栈的尾端. 把task_struct结构与内核栈放在一起的好处:内核中大部分处理进程的代码都是通过进程描述符进行的。 因而current宏查找到当前进程的描述符的速度就尤为重要。对于寄存器不富裕的体系结构来说,通过预先分配和重复使用task_struct可以避免动态分配和释放所带来的资源消耗,UN转载 2012-11-25 20:28:13 · 1131 阅读 · 0 评论 -
禁止http访问
禁止浏览器访问80端口:deiptables -I OUTPUT -p tcp -m string --string HTTP --algo kmp --dport 80 -j DROP代码:#include #include #include #include #include #include #include #include #include原创 2012-11-02 09:51:44 · 1066 阅读 · 0 评论 -
在ubuntu上安装 pygame
Start by installing all necessary dependencies, and mercurial and checkinstall for the installation:sudo apt-get install python3-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev libsdl1转载 2012-11-26 18:22:07 · 858 阅读 · 0 评论 -
书写 2.6 内核后门程序 -1 (软中断int 0x80)
Unix世界中一切皆文件的思想将socket通信变的简单的多, 通常我们直接可以用read,write等api函数作为socket通信的方法,这些api函数最终都会调用kernel提供的sys_XXX系列函数。平时用到的read等函数早以在c库中封装好了。其实我们可以自己直接向系统发送软中断int 0x80来执行sys_read函数,如: int my_read(int fd, ch转载 2012-10-30 12:03:43 · 1187 阅读 · 0 评论 -
有关likely和unlikely
在linux中判断语句经常会看到likely和unlikely,例如:if(likely(value)){ }else{} 简单从表面上看 if(likely(value)) == if(value),if(unlikely(value)) == if(value)。也就是likely和unlikely是一样的,但是实际上执行是不同的,加lik转载 2012-07-31 10:02:28 · 500 阅读 · 0 评论 -
CONFIG_HOTPLUG_PCI: Support for PCI Hotplug
General informationsThe Linux kernel configuration item CONFIG_HOTPLUG_PCI has multiple definitions:Support for PCI Hotplug (EXPERIMENTAL) found in drivers/pci/hotplug/KconfigThe configuration i转载 2012-08-22 19:56:59 · 1766 阅读 · 0 评论 -
修改内核页表问题
以前一直以为内核代码段的保护属性是 可执行|只读的最近才发现内核代码段竟然是可写的现在我想把内核代码段设置成为不可写的,做了个实验,修改了3G+1M ~ 3G+4M这段地址对应的页表项但是这个模块一加载就死机,/var/log/messages也没有任何出错信息这是哪里的问题呢?内核是i386,没有PAE。#include #include #define转载 2012-09-04 10:56:42 · 1397 阅读 · 0 评论 -
分布式编译
在两台服务器 以及客户机 ubuntu 上安装distcc:sudo apt-get install distcc ccache (1)服务器端以普通用户执行“distccd --daemon --allow 10.217.12.0/8”。这使得distccd接受来自10.217.12.0网段的所有TCP连接。注意:distcc文档中说"--allow 0.0.0.0"是接原创 2012-09-29 16:58:43 · 613 阅读 · 0 评论 -
Ubuntu 11.10 正式版下载地址大全
ubuntu11.10终于出来了大家可以下载了。来源:http://www.ownlinux.cn/2011/10/1 ... final-released.html下载:http://cdimage.ubuntu.com/releases/11.10/release/中国科技大学的源已经完成Ubuntu 11.10的同步了,在官方镜像服务器上下载速度慢的朋友,转载 2012-09-18 19:10:06 · 859 阅读 · 0 评论 -
wubi安装ubuntu老是下载amd64
解压ubuntu11.10之后用wubi安装,可是老是要下载amd64 文件。在网上搜索发现只要把 wubi那个执行文件 放到跟 压缩包 一个目录下后 再点击wubi安装 此时则不用下载amd64了。原创 2012-09-18 20:15:26 · 1039 阅读 · 0 评论 -
linux中生成内核模块时部分函数undefined的应对方法
在生成内核模块时出现下面这种警告: WARNING: "symbol_name" [xxxx/xxx.ko] undefined!其中" "里是函数名称,[]里是所生成的模块位置。出现这种警告是由于 欲在模块A中调用模块B里的函数,这个函数必须要用 EXPORT_SYMBOL(函数名)的形式给导出,不然就会发出这样的警告。EXPORT_SYMBOL(函数转载 2012-10-29 16:10:49 · 1740 阅读 · 0 评论 -
书写 2.6 内核后门程序 -2 (调用内核程序)
在内核态通过int 0x80调用系统内核函数,虽然方便但是效率比较低。可以尝试直接调用内核函数,在wzt的原文中直接调用 sys_bind,sys_socket 等函数的实现,比如 sys_bind 函数SYSCALL_DEFINE3(bind, int, fd, struct sockaddr __user *, umyaddr, int, addrlen){ s转载 2012-10-30 18:27:27 · 776 阅读 · 0 评论