- 博客(19)
- 问答 (1)
- 收藏
- 关注
转载 汇编语言 call和ret指令 的具体执行
call和ret指令call和ret指令都是转移指令,它们都修改IP,或同时修改CS和IP。它们经常被共同用来实现子程序的设计。 ret和retfret指令用栈中的数据,修改IP的内容,从而实现近转移;retf指令用栈中的数据,修改CS和IP的内容,从而实现远转移。CPU执行ret指令时,进行下面的两步操作:(1)(IP) = ((ss)*16 +(sp))(2
2016-03-02 11:02:36
22178
转载 mips 寄存器解释
MIPS 有32个寄存器(0~31), 每个寄存器各有不同的用途。寄存器 zero ( 0): 0 常量。不能保存数据寄存器 at (1): 预留给 汇编编译器用寄存器 v0 (2) v1 (3) : 这两个寄存器用来保存函数的返回值寄存器 a0 (4) a1 (5)
2016-03-01 18:13:29
1301
原创 gdb commands命令用法
gdb commands命令用法基本原理: 设置断点,使用 command 命令设置断点的执行命令 例如:在断点 1 处,打印 ret 变量的值。 //设置断点(gdb) b rx_dataBreakpoint 1 at 0xffffffffa02cccf8: file drivers/target/iscsi/iscsi_target_util.c, line 1347.(gdb)
2016-02-25 17:24:59
10577
转载 INT 13中断介绍
直接磁盘服务(Direct Disk Service——INT 13H) 00H —磁盘系统复位 01H —读取磁盘系统状态 02H —读扇区 03H —写扇区 04H —检验扇区 05H —格式化磁道 06H —格式化坏磁道 07H —格式化驱动器 08H —读取驱动器参数 09H —初始化硬盘参数 0AH —读长扇区 0BH —写长扇区
2016-02-02 14:40:47
916
转载 Linux内核网络协议栈代码分析
一.linux内核网络栈代码的准备知识 1. linux内核ipv4网络部分分层结构: BSD socket层: 这一部分处理BSD socket相关操作,每个socket在内核中以struct socket结构体现。这一部分的文件 主要有:/net/socket.c /net/protocols.c etcINET socket层:BSD socket是个可以
2016-01-19 14:48:19
719
原创 如何使用gdb给某个模块(文件)的所有函数下断点
在这里提供一个原始的shell:#!/bin/bashnm module_name.ko | c++filt | grep -w -i T | awk '{print $3}' | sed 's/,/\\|/g'|sort|uniq|grep ^function.* |awk '{print "b " $1}' >/tmp/__make_break_point__解释: 这里有两步是按照自己需求
2016-01-12 11:38:36
1992
原创 linux gdb调试可加载内核模块
1.在虚拟机中找到模块的加载后的地址cat /sys/module/module_name/sections/.textcat /sys/module/module_name/sections/.datacat /sys/module/module_name/sections/.bss注释:module_name是相应模块的名称 可能返回的结果如下:0xffffffffa022a0000xf
2016-01-11 12:39:11
1120
翻译 ubuntu下安装kvm虚拟机
基本照搬自:http://article.yeeyan.org/bilingual/347306,做了一些修改,纯粹是为了记录步骤1.检查是否安装虚拟化egrep -c ‘(svm|vmx)’ /proc/cpuinfo2.安装虚拟机sudo apt-get install qemu-kvm libvirt-bin bridge-utils virt-manager3.添加用户组sudo addus
2016-01-11 10:46:40
482
原创 使用qemu进行内核kgdb调试(ubuntu)
参考文档:http://wiki.ubuntu.org.cn/Kvm%E6%95%99%E7%A8%8B安装虚拟机1.检查虚拟化配置:终端输入: egrep '(vmx|svm)' /proc/cpuinfo 返回的结果里有vmx或者svm即可2.安装kvm:注意:这里安装的并不是图形化界面,只是最简略的安装方法,因此会缺少很多东西。建议使用另外的方法安装,这里暂时不提 命令行下: sudo
2016-01-11 10:38:12
891
转载 逻辑地址、线性地址、物理地址和虚拟地址
本文为转载文章,原文地址:http://www.cnblogs.com/diyingyun/archive/2012/01/03/2311327.html一、概念物理地址(physical address)用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。——这个概念应该是这几个概念中最好理解的一个,但是值得一提的是,虽然可以直接把物理地址理解成插
2016-01-10 11:03:32
390
原创 Linux系统中System.map的解析
首先贴上一小段结果:#sudo cat /boot/System.map-4.2.0-23-generic |grep init_taskffffffff810b3290 T init_task_runnable_averageffffffff8113dc80 T ftrace_graph_init_taskffffffff8117a8a0 T perf_event_init_taskf
2016-01-09 21:05:24
1390
原创 win10+ubuntu14.04双系统有线网络问题
现象:ubuntu下无线可以访问网络,有线无法访问. windwos10下有线无线都可以访问处理过程按照网上查到的方法,发现是IP地址无法正常获取.1.shell中查看本地驱动版本lspci -v在最末尾部,可以看到关于网卡的信息,我的如下04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 P
2015-12-17 10:06:26
5473
原创 内核配置config失败需要的文件
现象:执行 make menuconfig时候如果出现以下错误:*** Unable to find the ncurses libraries or the*** required header files.*** 'make menuconfig' requires the ncurses libraries.*** *** Install ncurses (ncurses-devel)
2015-12-14 14:25:39
537
原创 sshfs挂载远程文件到本地
安装与使用1.安装命令:sudo apt-get install sshfs2.挂载:sshfs <username>@<ipaddr>:</remote path> </local path>对用<>尖括号括起来的内容做一下解释@username:用户名 @ipaddr:IP地址,如192.168.2.123之类的,非局域网IP也可用,跟ssh一样 @/remote path:远端的文件路径
2015-12-14 11:30:41
1397
原创 LINUX内核中编写procfs
procfs说明文档首先要明白,procfs终究还是fs,也就是属于filesystem的一种。因此可以在内核文档中找到相关资料。如果你手头上有一份内核源码,那么可以根据以下相对路径找到这份说明: ./Documentation/filesystems/proc.txt直接在网上也可以看到这份文档: http://lxr.oss.org.cn/source/Documentation/file
2015-12-09 13:59:56
820
原创 LINUX C语言 DNS
LINUX C语言 DNS本文使用的glibc版本是2.19资源下载地址1.GNU LIB C 手册[http://ftp.gnu.org/old-gnu/Manuals/glibc-2.2.3/pdf/libc.pdf]其实这算是LINUX下C语言的库函数手册,大部分函数的简单说明都能在里面查到。另外,如果你的环境是在liunux下,会有更简单的办法,就是man命令请看后面的内容。另外,这个版本的
2015-12-02 16:15:08
1261
空空如也
CPU启动时地址指针的问题
2016-01-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人