|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rloginrcp、finger、mail、nslookup
1.开启假造机,假造机运转到kgdb:Waitingforconnectionfromremotegdb
2.在Host机上运转:socattcp-listen:8888/tmp/vbox2,个中/tmp/vbox2为管道文件,它是方针机串口的重定向目标文件,socat将这个管道文件又重定向到tcpsocket的8888端口。
3.开启一个新的假造终端,cdpath/to/kernel/source/tree,然后实行gdb./vmlinux
输入
GNUgdb6.8-debian
Copyright(C)2008FreeSoftwareFoundation,Inc.
LicenseGPLv3+:GNUGPLversion3orlater<http://gnu.org/licenses/gpl.html>
Thisisfreesoftware:youarefreetochangeandredistributeit.
ThereisNOWARRANTY,totheextentpermittedbylaw.Type"showcopying"
and"showwarranty"fordetails.
ThisGDBwasconfiguredas"i486-linux-gnu"...
(gdb)set-remote
setremotebaudrateto115200c/s
setremotetargettolocaltcpsocket
kgdb_breakpoint()atkernel/kgdb.c:1721
1721wmb();/*Syncpointafterbreakpoint*/
(gdb)c
Continuing.
方针时机一向启动,直到提醒输出用户名暗码。
4.进进方针机,输出用户名暗码(保举利用字符界面下的root用户),输出g命令,方针机被断下,把持移交到Host机中的gdb中。(方针机root的用户目次中的.bashrc中增加一行aliasg=echog>/proc/sysrq-trigger)
5.在Host机中的gdb中
(gdb)set-mod-break
setbreakpointinsystemmoduleinitfunction
Breakpoint1at0xc014bac5:filekernel/module.c,line2288.
(gdb)c
Continuing.
6.在方针机中
insmodklogger2.ko
方针机再次断下,把持权移交Host机中的gdb
7.在Host机中的gdb中
[NewThread4693]
[SwitchingtoThread4693]
Breakpoint1,sys_init_module(umod=0x0,len=0,uargs=0x0)
atkernel/module.c:2288
2288if(mod->init!=NULL)
(gdb)print-mod-segment
Name:.note.gnu.build-idAddress:0xdf977058
Name:.textAddress:0xdf975000
Name:.rodataAddress:0xdf977080
Name:.rodata.str1.4Address:0xdf9774b4
Name:.rodata.str1.1Address:0xdf977522
Name:.parainstructionsAddress:0xdf977a00
Name:.dataAddress:0xdf978440
Name:.gnu.linkonce.this_moduleAddress:0xdf978480
Name:.bssAddress:0xdf978a00
Name:.symtabAddress:0xdf977a08
Name:.strtabAddress:0xdf978078
(gdb)add-symbol-file/home/done/programs/linux-kernel/vlogger/klogger2.ko0xdf975000-s.data0xdf978440-s.bss0xdf978a00
addsymboltablefromfile"/home/done/programs/linux-kernel/vlogger/klogger2.ko"at
.text_addr=0xdf975000
.data_addr=0xdf978440
.bss_addr=0xdf978a00
(yorn)y
Readingsymbolsfrom/home/done/programs/linux-kernel/vlogger/klogger2.ko...done.
(gdb)bhook_init
Breakpoint2at0xdf976d19:file/home/done/programs/linux-kernel/vlogger/hook.c,line255.
(gdb)
你能够调试本人些的LKM模块了
附gdb的初始化设置文件~/.gdbinit
</p>12下一页
但不会命令而成为高手也是不可能的.这就好比学英语,什么语法都不懂,只捧着单词手册背单词是学不会英语的,但是没有单词词汇量英语水平也提不高的。 |
|