lwss / cartographer Goto Github PK
View Code? Open in Web Editor NEWLinux Kernel Module to spoof /proc maps
Linux Kernel Module to spoof /proc maps
[telans@desktop Cartographer]$ make
make -C /lib/modules/5.1.7-arch1-1-ARCH/build M=/home/telans/Documents/coding/Cartographer modules
make[1]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule.
make[1]: Entering directory '/usr/lib/modules/5.1.7-arch1-1-ARCH/build'
Building modules, stage 2.
MODPOST 1 modules
make[1]: Leaving directory '/usr/lib/modules/5.1.7-arch1-1-ARCH/build'
[telans@desktop Cartographer]$ sudo insmod cartographer.ko
[sudo] password for telans:
insmod: ERROR: could not insert module cartographer.ko: Invalid module format
[telans@desktop Cartographer]$ uname -r
5.1.7-arch1-1-ARCH
journald output from insmod:
cartographer: version magic '5.1.6-arch1-1-ARCH SMP preempt mod_unload ' should be '5.1.7-arch1-1-ARCH SMP preempt mod_unload '
There are a few places online which mention other kernel configurations, but it seems I have all of them active within the arch kernel anyways.
https://devtalk.nvidia.com/default/topic/921545/jetson-tx1/version-magic-does-not-match-in-kernel-module/post/5279374/#5279374
https://stackoverflow.com/a/55937906
linux-headers are up to date with kernel.
To be clear, the previous kernel/headers worked perfectly, it just seems to be some version number stuck somewhere and I'm not too sure how to fix it.
Cheers
What is the best way to contact you? Any chance do you have Discord?
Thanks
insmod: ERROR: could not insert module cartographer.ko: Invalid parameters
[ 1270.335828] cartographer: ftrace_set_filter_ip() failed: -22
I'd like to put this in the AUR, if that's alright.
It would be good to get a basic license in the repo or permission from you, if you wouldn't mind. Cheers
linux mint 19.3
kernel 5.5.7-050507-generic
./arch/x86/include/asm/page_64.h: In function ‘clear_page’: ././include/linux/compiler_types.h:210:24: error: expected ‘(’ before ‘__inline’ #define asm_inline asm __inline
it worked after this:
sudo add-apt-repository ppa:jonathonf/gcc-9.0
sudo apt update
sudo apt install gcc-9
sudo apt install g++-9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 60 --slave /usr/bin/g++ g++ /usr/bin/g++-9
Add it to system requirements pls
Hello, I wanted to check this out and firstly I tried to install from AUR but it kept failing with [code block 1]
So I tried to compile it myself and the same errors occured. I swapped FTRACE_OPS_FL_RECURSION_SAFE with FTRACE_OPS_FL_RECURSION, changed ftrace_thunk's last parameters type from pt_regs regs
to ftrace_regs fregs
and added struct pt_regs *regs = ftrace_get_regs(fregs);
(solution from) and lastly I changed h33p's kallsyms thing from livepatch to kprobes.
It compiled successfully but when I tried to insmod it, I got invalid module format
I can successfully compile and insmod h33p's kallsyms-mod.
:: Proceed with installation? [Y/n]
(1/1) checking keys in keyring [----------------------------------------------------------------------------------------] 100%
(1/1) checking package integrity [----------------------------------------------------------------------------------------] 100%
(1/1) loading package files [----------------------------------------------------------------------------------------] 100%
(1/1) checking for file conflicts [----------------------------------------------------------------------------------------] 100%
(1/1) checking available disk space [----------------------------------------------------------------------------------------] 100%
:: Running pre-transaction hooks...
(1/1) Remove upgraded DKMS modules
==> Unable to remove module cartographer-dkms-git/r16.78a704a for kernel 5.11.11-arch1-1: Not found in dkms status output.
:: Processing package changes...
(1/1) reinstalling cartographer-dkms-git [----------------------------------------------------------------------------------------] 100%
:: Running post-transaction hooks...
(1/3) Triggering wallpaper regeneration...
(2/3) Arming ConditionNeedsUpdate...
(3/3) Install DKMS modules
==> dkms install --no-depmod -m cartographer-dkms-git -v r16.78a704a -k 5.11.11-arch1-1
Error! Bad return status for module build on kernel: 5.11.11-arch1-1 (x86_64)
Consult /var/lib/dkms/cartographer-dkms-git/r16.78a704a/build/make.log for more information.
==> Warning, `dkms install --no-depmod -m cartographer-dkms-git -v r16.78a704a -k 5.11.11-arch1-1' returned 10
==> depmod 5.11.11-arch1-1
The build error at /var/lib is:
DKMS make.log for cartographer-dkms-git-r16.78a704a for kernel 5.11.11-arch1-1 (x86_64)
Fri Apr 9 10:42:32 PM +03 2021
make: Entering directory '/usr/lib/modules/5.11.11-arch1-1/build'
CC [M] /var/lib/dkms/cartographer-dkms-git/r16.78a704a/build/cartographer.o
CC [M] /var/lib/dkms/cartographer-dkms-git/r16.78a704a/build/kallsyms.o
/var/lib/dkms/cartographer-dkms-git/r16.78a704a/build/kallsyms.c:5:24: error: array type has incomplete element type ‘struct klp_func’
5 | static struct klp_func funcs[] = {
| ^~~~~
/var/lib/dkms/cartographer-dkms-git/r16.78a704a/build/kallsyms.c:12:24: error: array type has incomplete element type ‘struct klp_func’
12 | static struct klp_func failfuncs[] = {
| ^~~~~~~~~
/var/lib/dkms/cartographer-dkms-git/r16.78a704a/build/kallsyms.c:18:26: error: array type has incomplete element type ‘struct klp_object’
18 | static struct klp_object objs[] = {
| ^~~~
/var/lib/dkms/cartographer-dkms-git/r16.78a704a/build/kallsyms.c:28:15: error: variable ‘patch’ has initializer but incomplete type
28 | static struct klp_patch patch = {
| ^~~~~~~~~
/var/lib/dkms/cartographer-dkms-git/r16.78a704a/build/kallsyms.c:29:3: error: ‘struct klp_patch’ has no member named ‘mod’
29 | .mod = THIS_MODULE,
| ^~~
In file included from ./include/linux/linkage.h:7,
from ./include/linux/kernel.h:7,
from ./include/linux/list.h:9,
from ./include/linux/module.h:12,
from ./include/linux/livepatch.h:12,
from /var/lib/dkms/cartographer-dkms-git/r16.78a704a/build/kallsyms.c:3:
./include/linux/export.h:17:21: warning: excess elements in struct initializer
17 | #define THIS_MODULE (&__this_module)
| ^
/var/lib/dkms/cartographer-dkms-git/r16.78a704a/build/kallsyms.c:29:9: note: in expansion of macro ‘THIS_MODULE’
29 | .mod = THIS_MODULE,
| ^~~~~~~~~~~
./include/linux/export.h:17:21: note: (near initialization for ‘patch’)
17 | #define THIS_MODULE (&__this_module)
| ^
/var/lib/dkms/cartographer-dkms-git/r16.78a704a/build/kallsyms.c:29:9: note: in expansion of macro ‘THIS_MODULE’
29 | .mod = THIS_MODULE,
| ^~~~~~~~~~~
/var/lib/dkms/cartographer-dkms-git/r16.78a704a/build/kallsyms.c:30:3: error: ‘struct klp_patch’ has no member named ‘objs’
30 | .objs = objs,
| ^~~~
/var/lib/dkms/cartographer-dkms-git/r16.78a704a/build/kallsyms.c:30:10: warning: excess elements in struct initializer
30 | .objs = objs,
| ^~~~
/var/lib/dkms/cartographer-dkms-git/r16.78a704a/build/kallsyms.c:30:10: note: (near initialization for ‘patch’)
/var/lib/dkms/cartographer-dkms-git/r16.78a704a/build/cartographer.c: In function ‘cart_startup’:
/var/lib/dkms/cartographer-dkms-git/r16.78a704a/build/cartographer.c:291:32: error: assignment to ‘ftrace_func_t’ {aka ‘void (*)(long unsigned int, long unsigned int, struct ftrace_ops *, struct ftrace_regs *)’} from incompatible pointer type ‘void (*)(long unsigned int, long unsigned int, struct ftrace_ops *, struct pt_regs *)’ [-Werror=incompatible-pointer-types]
291 | show_map_vma_hook.ops.func = ftrace_thunk;
| ^
/var/lib/dkms/cartographer-dkms-git/r16.78a704a/build/kallsyms.c: In function ‘init_kallsyms’:
/var/lib/dkms/cartographer-dkms-git/r16.78a704a/build/kallsyms.c:40:10: error: implicit declaration of function ‘klp_enable_patch’ [-Werror=implicit-function-declaration]
40 | int r = klp_enable_patch(&patch);
| ^~~~~~~~~~~~~~~~
/var/lib/dkms/cartographer-dkms-git/r16.78a704a/build/kallsyms.c: At top level:
/var/lib/dkms/cartographer-dkms-git/r16.78a704a/build/kallsyms.c:28:25: error: storage size of ‘patch’ isn’t known
28 | static struct klp_patch patch = {
| ^~~~~
/var/lib/dkms/cartographer-dkms-git/r16.78a704a/build/kallsyms.c: In function ‘kallsyms_lookup_name’:
/var/lib/dkms/cartographer-dkms-git/r16.78a704a/build/kallsyms.c:36:1: error: control reaches end of non-void function [-Werror=return-type]
36 | }
| ^
At top level:
/var/lib/dkms/cartographer-dkms-git/r16.78a704a/build/kallsyms.c:18:26: warning: ‘objs’ defined but not used [-Wunused-variable]
18 | static struct klp_object objs[] = {
| ^~~~
/var/lib/dkms/cartographer-dkms-git/r16.78a704a/build/kallsyms.c:12:24: warning: ‘failfuncs’ defined but not used [-Wunused-variable]
12 | static struct klp_func failfuncs[] = {
| ^~~~~~~~~
/var/lib/dkms/cartographer-dkms-git/r16.78a704a/build/kallsyms.c:5:24: warning: ‘funcs’ defined but not used [-Wunused-variable]
5 | static struct klp_func funcs[] = {
| ^~~~~
cc1: some warnings being treated as errors
/var/lib/dkms/cartographer-dkms-git/r16.78a704a/build/cartographer.c:293:37: error: ‘FTRACE_OPS_FL_RECURSION_SAFE’ undeclared (first use in this function); did you mean ‘FTRACE_OPS_FL_RECURSION’?
293 | | FTRACE_OPS_FL_RECURSION_SAFE
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
| FTRACE_OPS_FL_RECURSION
/var/lib/dkms/cartographer-dkms-git/r16.78a704a/build/cartographer.c:293:37: note: each undeclared identifier is reported only once for each function it appears in
make[1]: *** [scripts/Makefile.build:279: /var/lib/dkms/cartographer-dkms-git/r16.78a704a/build/kallsyms.o] Error 1
make[1]: *** Waiting for unfinished jobs....
cc1: some warnings being treated as errors
make[1]: *** [scripts/Makefile.build:279: /var/lib/dkms/cartographer-dkms-git/r16.78a704a/build/cartographer.o] Error 1
make: *** [Makefile:1809: /var/lib/dkms/cartographer-dkms-git/r16.78a704a/build] Error 2
make: Leaving directory '/usr/lib/modules/5.11.11-arch1-1/build'`
It fails with compilation error.
error: passing argument 4 of ‘proc_create’ from incompatible pointer type [-Werror=incompatible-pointer-types]
299 | struct proc_dir_entry *entry = proc_create(PROC_FILENAME, 0, NULL, &file_ops);
| ^~~~~~~~~
| |
| struct file_operations
My kernel is Linux kolay-arch 5.6.2-1-MANJARO #1 SMP PREEMPT Thu Apr 2 11:32:09 UTC 2020 x86_64 GNU/Linux
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.