mirror of
https://github.com/AuxXxilium/redpill-lkm5.git
synced 2024-11-23 23:11:02 +07:00
62 lines
3.0 KiB
Markdown
62 lines
3.0 KiB
Markdown
# 💊 RedPill LKM
|
|
|
|
---
|
|
|
|
## THIS IS WORK IN PROGRESS
|
|
There's nothing to run/see here (yet ;)).
|
|
|
|
---
|
|
|
|
## What is this?
|
|
This is a major part of a tool which will be able to run a DSM instance for research purposes without
|
|
engaging your real DS machine and risking your data in the process (ask me how I know...).
|
|
|
|
## Target audience
|
|
This repository is target towards **developers** willing to learn and help with implementation of peculiarities of
|
|
Synology's DSM Linux distribution.
|
|
|
|
Read about the quirk in a separate repo: https://github.com/RedPill-TTG/dsm-research/tree/master/quirks
|
|
|
|
## How to build with Linux sources?
|
|
1. You need Synology's GPL sources for the kernel. Check the [Makefile](Makefile) for details
|
|
2. `cd` to kernel sources
|
|
3. Depending on the version:
|
|
- **Linux v3**
|
|
- `cp synoconfigs/bromolow .config`
|
|
- **Linux v4**
|
|
- `cp synoconfigs/apollolake .config`
|
|
- `echo '+' > .scmversion` (otherwise it will error-out loading modules)
|
|
4. `make oldconfig ; make modules_prepare`
|
|
5. `cd` back to the module directory
|
|
6. `make LINUX_SRC=....` (path to linux sources, default: `../linux-3.10.x-bromolow-25426`)
|
|
7. You will get a `redpill.ko` module as the result, you can `insmod` it
|
|
|
|
|
|
## How to build with syno toolkit?
|
|
The procedure to build with the toolkit is **not recommended**. However, some versions lack the kernel sources
|
|
(e.g. v7 now) and thus can only use this method.
|
|
|
|
1. Get the appropriate toolkit from the [official SF repo](https://sourceforge.net/projects/dsgpl/files/toolkit/)
|
|
- You want to get the `.dev.txz` file for the corresponding platform (e.g. `ds.bromolow-7.0.dev.txz`)
|
|
- You only need to unpack a part of it: `tar -xvf ds.bromolow-7.0.dev.txz usr/local/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/sys-root/usr/lib/modules/DSM-7.0/build`
|
|
- If the path above changed you can use `tar -tvf ds.bromolow-7.0.dev.txz | grep kfifo.h` to find the correct one
|
|
2. `cd` to the module directory
|
|
3. `make LINUX_SRC=<toolkit-directory>/usr/local/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/sys-root/usr/lib/modules/DSM-7.0/build`
|
|
4. You will get a `redpill.ko` module as the result, you can `insmod` it
|
|
|
|
|
|
## Additional make options
|
|
While calling `make` you can also add these additional modifiers (e.g. `make FOO BAR`):
|
|
- `DBG_EXECVE=y`: enabled debugging of every `execve()` call with arguments
|
|
- `STEALTH_MODE=#`: controls the level of "stealthiness", see `STEALTH_MODE_*` in `internal/stealth.h`; it's
|
|
`STEALTH_MODE_BASIC` by default
|
|
- `LINUX_SRC=...`: path to the linux kernel sources (`./linux-3.10.x-bromolow-25426` by default)
|
|
|
|
On Debian-based systems you will need `build-essential` and `libssl-dev` packages at minimum.
|
|
|
|
## Documentation split
|
|
The documentation regarding actual quirks/mechanisms/discoveries regarding DSM is present in a dedicated research repo
|
|
at https://github.com/RedPill-TTG/dsm-research/. Documentation in this repository is solely aimed to explain
|
|
implementation details of the kernel module. It will mostly be available in forms of long(ish) doc blocks.
|
|
# redpill-lkm5
|