Linux web-conference.aiou.edu.pk 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64
Apache/2.4.41 (Ubuntu)
: 172.16.50.247 | : 3.15.138.214
Cant Read [ /etc/named.conf ]
7.4.3-4ubuntu2.28
appadmin
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
BLACK DEFEND!
README
+ Create Folder
+ Create File
/
usr /
src /
linux-headers-5.4.0-204-generic /
scripts /
[ HOME SHELL ]
Name
Size
Permission
Action
atomic
[ DIR ]
drwxr-xr-x
basic
[ DIR ]
drwxr-xr-x
coccinelle
[ DIR ]
drwxr-xr-x
dtc
[ DIR ]
drwxr-xr-x
gcc-plugins
[ DIR ]
drwxr-xr-x
gdb
[ DIR ]
drwxr-xr-x
genksyms
[ DIR ]
drwxr-xr-x
kconfig
[ DIR ]
drwxr-xr-x
ksymoops
[ DIR ]
drwxr-xr-x
mod
[ DIR ]
drwxr-xr-x
package
[ DIR ]
drwxr-xr-x
selinux
[ DIR ]
drwxr-xr-x
tracing
[ DIR ]
drwxr-xr-x
.asn1_compiler.cmd
4.62
KB
-rw-r--r--
.bin2c.cmd
1.62
KB
-rw-r--r--
.conmakehash.cmd
3.6
KB
-rw-r--r--
.extract-cert.cmd
6.59
KB
-rw-r--r--
.insert-sys-cert.cmd
6.47
KB
-rw-r--r--
.kallsyms.cmd
3.86
KB
-rw-r--r--
.recordmcount.cmd
4.83
KB
-rw-r--r--
.sign-file.cmd
7.98
KB
-rw-r--r--
.sortextable.cmd
5.12
KB
-rw-r--r--
Kbuild.include
13.08
KB
-rw-r--r--
Kconfig.include
1.64
KB
-rw-r--r--
Lindent
502
B
-rwxr-xr-x
Makefile
1.75
KB
-rw-r--r--
Makefile.asm-generic
1.8
KB
-rw-r--r--
Makefile.build
17.78
KB
-rw-r--r--
Makefile.clean
2.15
KB
-rw-r--r--
Makefile.dtbinst
1.09
KB
-rw-r--r--
Makefile.extrawarn
2.89
KB
-rw-r--r--
Makefile.gcc-plugins
2.61
KB
-rw-r--r--
Makefile.headersinst
2.87
KB
-rw-r--r--
Makefile.host
6.86
KB
-rw-r--r--
Makefile.kasan
1.44
KB
-rw-r--r--
Makefile.kcov
359
B
-rw-r--r--
Makefile.lib
14.67
KB
-rw-r--r--
Makefile.modbuiltin
1.67
KB
-rw-r--r--
Makefile.modfinal
1.79
KB
-rw-r--r--
Makefile.modinst
1.31
KB
-rw-r--r--
Makefile.modpost
3.37
KB
-rw-r--r--
Makefile.modsign
791
B
-rw-r--r--
Makefile.package
6.5
KB
-rw-r--r--
Makefile.ubsan
864
B
-rw-r--r--
adjust_autoksyms.sh
2.62
KB
-rwxr-xr-x
asn1_compiler
35.11
KB
-rwxr-xr-x
asn1_compiler.c
35.33
KB
-rw-r--r--
bin2c
16.44
KB
-rwxr-xr-x
bin2c.c
743
B
-rw-r--r--
bloat-o-meter
3.29
KB
-rwxr-xr-x
bootgraph.pl
5.64
KB
-rwxr-xr-x
bpf_helpers_doc.py
20.12
KB
-rwxr-xr-x
cc-can-link.sh
166
B
-rwxr-xr-x
check_extable.sh
4.93
KB
-rwxr-xr-x
checkincludes.pl
1.94
KB
-rwxr-xr-x
checkkconfigsymbols.py
15.5
KB
-rwxr-xr-x
checkpatch.pl
199.44
KB
-rwxr-xr-x
checkstack.pl
5.27
KB
-rwxr-xr-x
checksyscalls.sh
7.27
KB
-rwxr-xr-x
checkversion.pl
1.9
KB
-rwxr-xr-x
clang-version.sh
527
B
-rwxr-xr-x
cleanfile
3.46
KB
-rwxr-xr-x
cleanpatch
5.06
KB
-rwxr-xr-x
coccicheck
7.25
KB
-rwxr-xr-x
config
4.64
KB
-rwxr-xr-x
conmakehash
17.02
KB
-rwxr-xr-x
conmakehash.c
5.85
KB
-rw-r--r--
const_structs.checkpatch
964
B
-rw-r--r--
decode_stacktrace.sh
3.95
KB
-rwxr-xr-x
decodecode
2.57
KB
-rwxr-xr-x
depmod.sh
1.41
KB
-rwxr-xr-x
diffconfig
3.72
KB
-rwxr-xr-x
documentation-file-ref-check
5.43
KB
-rwxr-xr-x
export_report.pl
4.5
KB
-rwxr-xr-x
extract-cert
17.89
KB
-rwxr-xr-x
extract-cert.c
3.63
KB
-rw-r--r--
extract-ikconfig
1.69
KB
-rwxr-xr-x
extract-module-sig.pl
3.66
KB
-rwxr-xr-x
extract-sys-certs.pl
3.75
KB
-rwxr-xr-x
extract-vmlinux
1.66
KB
-rwxr-xr-x
extract_xc3028.pl
44.62
KB
-rwxr-xr-x
faddr2line
8.17
KB
-rwxr-xr-x
file-size.sh
86
B
-rwxr-xr-x
find-unused-docs.sh
1.27
KB
-rwxr-xr-x
gcc-goto.sh
511
B
-rwxr-xr-x
gcc-ld
711
B
-rwxr-xr-x
gcc-plugin.sh
1.06
KB
-rwxr-xr-x
gcc-version.sh
588
B
-rwxr-xr-x
gcc-x86_32-has-stack-protector...
170
B
-rwxr-xr-x
gcc-x86_64-has-stack-protector...
195
B
-rwxr-xr-x
gen_compile_commands.py
5.56
KB
-rwxr-xr-x
gen_ksymdeps.sh
610
B
-rwxr-xr-x
get_abi.pl
10.1
KB
-rwxr-xr-x
get_dvb_firmware
24.54
KB
-rwxr-xr-x
get_maintainer.pl
66.04
KB
-rwxr-xr-x
gfp-translate
1.69
KB
-rwxr-xr-x
headerdep.pl
3.5
KB
-rwxr-xr-x
headers_check.pl
3.73
KB
-rwxr-xr-x
headers_install.sh
3.59
KB
-rwxr-xr-x
insert-sys-cert
22.21
KB
-rwxr-xr-x
insert-sys-cert.c
13.08
KB
-rw-r--r--
kallsyms
22.3
KB
-rwxr-xr-x
kallsyms.c
18.02
KB
-rw-r--r--
kernel-doc
60.88
KB
-rwxr-xr-x
kmsg-doc
12.13
KB
-rwxr-xr-x
ld-version.sh
269
B
-rwxr-xr-x
leaking_addresses.pl
12.8
KB
-rwxr-xr-x
link-vmlinux.sh
8.14
KB
-rwxr-xr-x
makelst
808
B
-rwxr-xr-x
markup_oops.pl
7.92
KB
-rwxr-xr-x
mkcompile_h
2.83
KB
-rwxr-xr-x
mkmakefile
426
B
-rwxr-xr-x
mksysmap
1.34
KB
-rwxr-xr-x
mkuboot.sh
414
B
-rwxr-xr-x
module-common.lds
901
B
-rw-r--r--
modules-check.sh
303
B
-rwxr-xr-x
namespace.pl
13.18
KB
-rwxr-xr-x
nsdeps
1.95
KB
-rw-r--r--
objdiff
2.84
KB
-rwxr-xr-x
parse-maintainers.pl
3.72
KB
-rwxr-xr-x
patch-kernel
9.95
KB
-rwxr-xr-x
pnmtologo.c
11.91
KB
-rw-r--r--
profile2linkerlist.pl
414
B
-rwxr-xr-x
prune-kernel
708
B
-rwxr-xr-x
recordmcount
32.27
KB
-rwxr-xr-x
recordmcount.c
16.75
KB
-rw-r--r--
recordmcount.h
19.37
KB
-rw-r--r--
recordmcount.pl
18.91
KB
-rwxr-xr-x
setlocalversion
4.72
KB
-rwxr-xr-x
show_delta
3.01
KB
-rwxr-xr-x
sign-file
26.52
KB
-rwxr-xr-x
sign-file.c
9.93
KB
-rw-r--r--
sortextable
21.81
KB
-rwxr-xr-x
sortextable.c
8.32
KB
-rw-r--r--
sortextable.h
5.45
KB
-rw-r--r--
spdxcheck-test.sh
323
B
-rw-r--r--
spdxcheck.py
9.92
KB
-rwxr-xr-x
spelling.txt
28.76
KB
-rw-r--r--
sphinx-pre-install
17.59
KB
-rwxr-xr-x
split-man.pl
604
B
-rwxr-xr-x
stackdelta
1.84
KB
-rwxr-xr-x
stackusage
794
B
-rwxr-xr-x
subarch.include
641
B
-rw-r--r--
tags.sh
9.56
KB
-rwxr-xr-x
tools-support-relr.sh
546
B
-rwxr-xr-x
ubuntu-retpoline-extract-one
7.26
KB
-rw-r--r--
unifdef.c
34.8
KB
-rw-r--r--
ver_linux
2.69
KB
-rwxr-xr-x
xen-hypercalls.sh
386
B
-rw-r--r--
xz_wrap.sh
563
B
-rwxr-xr-x
Delete
Unzip
Zip
${this.title}
Close
Code Editor : markup_oops.pl
#!/usr/bin/env perl # SPDX-License-Identifier: GPL-2.0-only use File::Basename; use Math::BigInt; use Getopt::Long; # Copyright 2008, Intel Corporation # # This file is part of the Linux kernel # # Authors: # Arjan van de Ven <arjan@linux.intel.com> my $cross_compile = ""; my $vmlinux_name = ""; my $modulefile = ""; # Get options Getopt::Long::GetOptions( 'cross-compile|c=s' => \$cross_compile, 'module|m=s' => \$modulefile, 'help|h' => \&usage, ) || usage (); my $vmlinux_name = $ARGV[0]; if (!defined($vmlinux_name)) { my $kerver = `uname -r`; chomp($kerver); $vmlinux_name = "/lib/modules/$kerver/build/vmlinux"; print "No vmlinux specified, assuming $vmlinux_name\n"; } my $filename = $vmlinux_name; # Parse the oops to find the EIP value my $target = "0"; my $function; my $module = ""; my $func_offset = 0; my $vmaoffset = 0; my %regs; sub parse_x86_regs { my ($line) = @_; if ($line =~ /EAX: ([0-9a-f]+) EBX: ([0-9a-f]+) ECX: ([0-9a-f]+) EDX: ([0-9a-f]+)/) { $regs{"%eax"} = $1; $regs{"%ebx"} = $2; $regs{"%ecx"} = $3; $regs{"%edx"} = $4; } if ($line =~ /ESI: ([0-9a-f]+) EDI: ([0-9a-f]+) EBP: ([0-9a-f]+) ESP: ([0-9a-f]+)/) { $regs{"%esi"} = $1; $regs{"%edi"} = $2; $regs{"%esp"} = $4; } if ($line =~ /RAX: ([0-9a-f]+) RBX: ([0-9a-f]+) RCX: ([0-9a-f]+)/) { $regs{"%eax"} = $1; $regs{"%ebx"} = $2; $regs{"%ecx"} = $3; } if ($line =~ /RDX: ([0-9a-f]+) RSI: ([0-9a-f]+) RDI: ([0-9a-f]+)/) { $regs{"%edx"} = $1; $regs{"%esi"} = $2; $regs{"%edi"} = $3; } if ($line =~ /RBP: ([0-9a-f]+) R08: ([0-9a-f]+) R09: ([0-9a-f]+)/) { $regs{"%r08"} = $2; $regs{"%r09"} = $3; } if ($line =~ /R10: ([0-9a-f]+) R11: ([0-9a-f]+) R12: ([0-9a-f]+)/) { $regs{"%r10"} = $1; $regs{"%r11"} = $2; $regs{"%r12"} = $3; } if ($line =~ /R13: ([0-9a-f]+) R14: ([0-9a-f]+) R15: ([0-9a-f]+)/) { $regs{"%r13"} = $1; $regs{"%r14"} = $2; $regs{"%r15"} = $3; } } sub reg_name { my ($reg) = @_; $reg =~ s/r(.)x/e\1x/; $reg =~ s/r(.)i/e\1i/; $reg =~ s/r(.)p/e\1p/; return $reg; } sub process_x86_regs { my ($line, $cntr) = @_; my $str = ""; if (length($line) < 40) { return ""; # not an asm istruction } # find the arguments to the instruction if ($line =~ /([0-9a-zA-Z\,\%\(\)\-\+]+)$/) { $lastword = $1; } else { return ""; } # we need to find the registers that get clobbered, # since their value is no longer relevant for previous # instructions in the stream. $clobber = $lastword; # first, remove all memory operands, they're read only $clobber =~ s/\([a-z0-9\%\,]+\)//g; # then, remove everything before the comma, thats the read part $clobber =~ s/.*\,//g; # if this is the instruction that faulted, we haven't actually done # the write yet... nothing is clobbered. if ($cntr == 0) { $clobber = ""; } foreach $reg (keys(%regs)) { my $clobberprime = reg_name($clobber); my $lastwordprime = reg_name($lastword); my $val = $regs{$reg}; if ($val =~ /^[0]+$/) { $val = "0"; } else { $val =~ s/^0*//; } # first check if we're clobbering this register; if we do # we print it with a =>, and then delete its value if ($clobber =~ /$reg/ || $clobberprime =~ /$reg/) { if (length($val) > 0) { $str = $str . " $reg => $val "; } $regs{$reg} = ""; $val = ""; } # now check if we're reading this register if ($lastword =~ /$reg/ || $lastwordprime =~ /$reg/) { if (length($val) > 0) { $str = $str . " $reg = $val "; } } } return $str; } # parse the oops while (<STDIN>) { my $line = $_; if ($line =~ /EIP: 0060:\[\<([a-z0-9]+)\>\]/) { $target = $1; } if ($line =~ /RIP: 0010:\[\<([a-z0-9]+)\>\]/) { $target = $1; } if ($line =~ /EIP is at ([a-zA-Z0-9\_]+)\+0x([0-9a-f]+)\/0x[a-f0-9]/) { $function = $1; $func_offset = $2; } if ($line =~ /RIP: 0010:\[\<[0-9a-f]+\>\] \[\<[0-9a-f]+\>\] ([a-zA-Z0-9\_]+)\+0x([0-9a-f]+)\/0x[a-f0-9]/) { $function = $1; $func_offset = $2; } # check if it's a module if ($line =~ /EIP is at ([a-zA-Z0-9\_]+)\+(0x[0-9a-f]+)\/0x[a-f0-9]+\W\[([a-zA-Z0-9\_\-]+)\]/) { $module = $3; } if ($line =~ /RIP: 0010:\[\<[0-9a-f]+\>\] \[\<[0-9a-f]+\>\] ([a-zA-Z0-9\_]+)\+(0x[0-9a-f]+)\/0x[a-f0-9]+\W\[([a-zA-Z0-9\_\-]+)\]/) { $module = $3; } parse_x86_regs($line); } my $decodestart = Math::BigInt->from_hex("0x$target") - Math::BigInt->from_hex("0x$func_offset"); my $decodestop = Math::BigInt->from_hex("0x$target") + 8192; if ($target eq "0") { print "No oops found!\n"; usage(); } # if it's a module, we need to find the .ko file and calculate a load offset if ($module ne "") { if ($modulefile eq "") { $modulefile = `modinfo -F filename $module`; chomp($modulefile); } $filename = $modulefile; if ($filename eq "") { print "Module .ko file for $module not found. Aborting\n"; exit; } # ok so we found the module, now we need to calculate the vma offset open(FILE, $cross_compile."objdump -dS $filename |") || die "Cannot start objdump"; while (<FILE>) { if ($_ =~ /^([0-9a-f]+) \<$function\>\:/) { my $fu = $1; $vmaoffset = Math::BigInt->from_hex("0x$target") - Math::BigInt->from_hex("0x$fu") - Math::BigInt->from_hex("0x$func_offset"); } } close(FILE); } my $counter = 0; my $state = 0; my $center = -1; my @lines; my @reglines; sub InRange { my ($address, $target) = @_; my $ad = "0x".$address; my $ta = "0x".$target; my $delta = Math::BigInt->from_hex($ad) - Math::BigInt->from_hex($ta); if (($delta > -4096) && ($delta < 4096)) { return 1; } return 0; } # first, parse the input into the lines array, but to keep size down, # we only do this for 4Kb around the sweet spot open(FILE, $cross_compile."objdump -dS --adjust-vma=$vmaoffset --start-address=$decodestart --stop-address=$decodestop $filename |") || die "Cannot start objdump"; while (<FILE>) { my $line = $_; chomp($line); if ($state == 0) { if ($line =~ /^([a-f0-9]+)\:/) { if (InRange($1, $target)) { $state = 1; } } } if ($state == 1) { if ($line =~ /^([a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9]+)\:/) { my $val = $1; if (!InRange($val, $target)) { last; } if ($val eq $target) { $center = $counter; } } $lines[$counter] = $line; $counter = $counter + 1; } } close(FILE); if ($counter == 0) { print "No matching code found \n"; exit; } if ($center == -1) { print "No matching code found \n"; exit; } my $start; my $finish; my $codelines = 0; my $binarylines = 0; # now we go up and down in the array to find how much we want to print $start = $center; while ($start > 1) { $start = $start - 1; my $line = $lines[$start]; if ($line =~ /^([a-f0-9]+)\:/) { $binarylines = $binarylines + 1; } else { $codelines = $codelines + 1; } if ($codelines > 10) { last; } if ($binarylines > 20) { last; } } $finish = $center; $codelines = 0; $binarylines = 0; while ($finish < $counter) { $finish = $finish + 1; my $line = $lines[$finish]; if ($line =~ /^([a-f0-9]+)\:/) { $binarylines = $binarylines + 1; } else { $codelines = $codelines + 1; } if ($codelines > 10) { last; } if ($binarylines > 20) { last; } } my $i; # start annotating the registers in the asm. # this goes from the oopsing point back, so that the annotator # can track (opportunistically) which registers got written and # whos value no longer is relevant. $i = $center; while ($i >= $start) { $reglines[$i] = process_x86_regs($lines[$i], $center - $i); $i = $i - 1; } $i = $start; while ($i < $finish) { my $line; if ($i == $center) { $line = "*$lines[$i] "; } else { $line = " $lines[$i] "; } print $line; if (defined($reglines[$i]) && length($reglines[$i]) > 0) { my $c = 60 - length($line); while ($c > 0) { print " "; $c = $c - 1; }; print "| $reglines[$i]"; } if ($i == $center) { print "<--- faulting instruction"; } print "\n"; $i = $i +1; } sub usage { print <<EOT; Usage: dmesg | perl $0 [OPTION] [VMLINUX] OPTION: -c, --cross-compile CROSS_COMPILE Specify the prefix used for toolchain. -m, --module MODULE_DIRNAME Specify the module filename. -h, --help Help. EOT exit; }
Close