Skip to content

Commit 1a28a84

Browse files
committed
docs: almost complete.
1 parent 91bf654 commit 1a28a84

32 files changed

+762
-228
lines changed

README.md

+7-67
Original file line numberDiff line numberDiff line change
@@ -2,77 +2,17 @@
22

33
This repository regenerates debug information (like PDB) from LeviLamina's public data.
44

5-
## Background
5+
## Usage
66

7-
- After 1.21.3.01, Mojang removed debug information from BDS.
8-
- Mojang no longer provides any debugging information (both server and client) to the community.
9-
- Mojang has an agreement with LiteLDev to provide them with debug data.
10-
- LiteLDev generates header files and obfuscated symbol to RVA lookup tables from debug data and provides them to the community.
7+
It's all [here](https://bedrockdebug.info/). (for PDB generation, see the **Tutorial**)
118

12-
### Problems caused by Mojang's collaboration with LiteLDev
13-
14-
- Mojang's collaboration with LiteLDev is opaque and we have no idea what they do.
15-
- LiteLDev has completed its monopoly, and there will no longer be a second mod loader in the community.
16-
- Due to the obfuscated format, the community can no longer reverse engineer BDS.
17-
18-
### Header files, obfuscation format and security
19-
20-
- LeviLamina's design necessitates that they publish header files.
21-
- The header file contains all the declaration information so that symbols can be generated.
22-
- The RVA of the corresponding symbol can be extracted from the obfuscated format at runtime.
23-
- The obfuscated format is actually a carrier of the complete "symbol table", which used to be PDB/DWARF.
24-
25-
## Tool for restoring original DebugInfo from obfuscated format
26-
27-
> [!NOTE]
28-
> LiteLDev has not yet released bedrock_runtime_data/magicblob for the Linux server.
29-
30-
They are dethunk, dumpsym, askrva and makepdb. Each tool is in a directory with the same name as it, and also has a README to help you use it.
31-
In short, the PDB is generated by the following steps:
32-
33-
- Preprocess the header files published by LiteLDev by dethunk.
34-
35-
```
36-
python main.py {HEADER_PROJECT_DIR}/src
37-
```
38-
39-
- Compile the header file and load the dumpsym plugin in the compilation parameters.
40-
41-
```
42-
xmake f -c -p windows -a x64 -m release --sdk=/opt/msvc --cxflags="-fplugin=/path/to/libdumpsym.so -fplugin-arg-dumpsym-record-decl-name" --toolchain=clang
43-
xmake -v
44-
```
45-
46-
- Find the generated symbols file.
47-
48-
```
49-
{HEADER_PROJECT_DIR}/build/.objs/bdsheader/windows/x64/release/test/__cpp_main.cpp.cpp.symbols
50-
```
51-
52-
- Generate symbol table using askrva.
53-
54-
```
55-
./askrva __cpp_main.cpp.cpp.symbols --output succeed.json --output-failed failed.txt --output-format=makepdb
56-
```
57-
58-
- Generate PDB using makepdb.
59-
60-
```
61-
./makepdb --program bedrock_server.exe --symbol-data succeed.json --output bedrock_server.pdb
62-
```
63-
64-
## TODO
65-
66-
- [ ] Tap into more available symbols.
67-
- [ ] Fully open source HeaderGen.
68-
- [ ] Bootstrap.
69-
70-
## Be with us
9+
## Community
7110

7211
Our vision is to build an open and inclusive Minecraft: Bedrock Edition ecosystem.
7312

74-
- [https://t.me/bdsplugins](https://t.me/s/bdsplugins)
13+
- [Discord](https://discord.gg/fPKVZScPT7)
14+
- [Telegram (Channel)](https://t.me/s/bdsplugins)
7515

76-
## LICENSE
16+
## License
7717

78-
All tools are open source under the MIT license.
18+
This project is open source under the MIT license.

docs/CODE_OF_CONDUCT.md

+132
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
---
2+
icon: octicons/code-of-conduct-16
3+
---
4+
5+
# Contributor Covenant Code of Conduct
6+
7+
## Our Pledge
8+
9+
We as members, contributors, and leaders pledge to make participation in our
10+
community a harassment-free experience for everyone, regardless of age, body
11+
size, visible or invisible disability, ethnicity, sex characteristics, gender
12+
identity and expression, level of experience, education, socio-economic status,
13+
nationality, personal appearance, race, religion, or sexual identity
14+
and orientation.
15+
16+
We pledge to act and interact in ways that contribute to an open, welcoming,
17+
diverse, inclusive, and healthy community.
18+
19+
## Our Standards
20+
21+
Examples of behavior that contributes to a positive environment for our
22+
community include:
23+
24+
- Demonstrating empathy and kindness toward other people
25+
- Being respectful of differing opinions, viewpoints, and experiences
26+
- Giving and gracefully accepting constructive feedback
27+
- Accepting responsibility and apologizing to those affected by our mistakes,
28+
and learning from the experience
29+
- Focusing on what is best not just for us as individuals, but for the
30+
overall community
31+
32+
Examples of unacceptable behavior include:
33+
34+
- The use of sexualized language or imagery, and sexual attention or
35+
advances of any kind
36+
- Trolling, insulting or derogatory comments, and personal or political attacks
37+
- Public or private harassment
38+
- Publishing others' private information, such as a physical or email
39+
address, without their explicit permission
40+
- Other conduct which could reasonably be considered inappropriate in a
41+
professional setting
42+
43+
## Enforcement Responsibilities
44+
45+
Community leaders are responsible for clarifying and enforcing our standards of
46+
acceptable behavior and will take appropriate and fair corrective action in
47+
response to any behavior that they deem inappropriate, threatening, offensive,
48+
or harmful.
49+
50+
Community leaders have the right and responsibility to remove, edit, or reject
51+
comments, commits, code, wiki edits, issues, and other contributions that are
52+
not aligned to this Code of Conduct, and will communicate reasons for moderation
53+
decisions when appropriate.
54+
55+
## Scope
56+
57+
This Code of Conduct applies within all community spaces, and also applies when
58+
an individual is officially representing the community in public spaces.
59+
Examples of representing our community include using an official e-mail address,
60+
posting via an official social media account, or acting as an appointed
61+
representative at an online or offline event.
62+
63+
## Enforcement
64+
65+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
66+
reported to the community leaders responsible for enforcement at
67+
68+
All complaints will be reviewed and investigated promptly and fairly.
69+
70+
All community leaders are obligated to respect the privacy and security of the
71+
reporter of any incident.
72+
73+
## Enforcement Guidelines
74+
75+
Community leaders will follow these Community Impact Guidelines in determining
76+
the consequences for any action they deem in violation of this Code of Conduct:
77+
78+
### 1. Correction
79+
80+
**Community Impact**: Use of inappropriate language or other behavior deemed
81+
unprofessional or unwelcome in the community.
82+
83+
**Consequence**: A private, written warning from community leaders, providing
84+
clarity around the nature of the violation and an explanation of why the
85+
behavior was inappropriate. A public apology may be requested.
86+
87+
### 2. Warning
88+
89+
**Community Impact**: A violation through a single incident or series
90+
of actions.
91+
92+
**Consequence**: A warning with consequences for continued behavior. No
93+
interaction with the people involved, including unsolicited interaction with
94+
those enforcing the Code of Conduct, for a specified period of time. This
95+
includes avoiding interactions in community spaces as well as external channels
96+
like social media. Violating these terms may lead to a temporary or
97+
permanent ban.
98+
99+
### 3. Temporary Ban
100+
101+
**Community Impact**: A serious violation of community standards, including
102+
sustained inappropriate behavior.
103+
104+
**Consequence**: A temporary ban from any sort of interaction or public
105+
communication with the community for a specified period of time. No public or
106+
private interaction with the people involved, including unsolicited interaction
107+
with those enforcing the Code of Conduct, is allowed during this period.
108+
Violating these terms may lead to a permanent ban.
109+
110+
### 4. Permanent Ban
111+
112+
**Community Impact**: Demonstrating a pattern of violation of community
113+
standards, including sustained inappropriate behavior, harassment of an
114+
individual, or aggression toward or disparagement of classes of individuals.
115+
116+
**Consequence**: A permanent ban from any sort of public interaction within
117+
the community.
118+
119+
## Attribution
120+
121+
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
122+
version 2.0, available at
123+
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
124+
125+
Community Impact Guidelines were inspired by [Mozilla's code of conduct
126+
enforcement ladder](https://github.com/mozilla/diversity).
127+
128+
[homepage]: https://www.contributor-covenant.org
129+
130+
For answers to common questions about this code of conduct, see the FAQ at
131+
https://www.contributor-covenant.org/faq. Translations are available at
132+
https://www.contributor-covenant.org/translations.

docs/CONTRIBUTING.md

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
---
2+
icon: octicons/repo-push-16
3+
---
4+
5+
# Contributing Guide
6+
7+
We welcome contributions of any kind, including but not limited to
8+
9+
- Open a new issue and tell us what you think.
10+
- Contribute directly to the _DebugInfo_ toolchain.
11+
- Correct documentation errors, including translation errors.
12+
- Write a new tutorial.
13+
- Any others may not be listed.
14+
15+
## Coding style
16+
17+
- All code must be formatted before submission (follow `ruff.toml` and `.clang-format`)
18+
- Except for the class name which uses CamelCase, all others use snake_style.
19+
- Private member names begin with `m_` (C++ code only).
20+
21+
## Interface Stability
22+
23+
- Great, you don't need to make ABI stability guarantees!
24+
- Tool usage should not be significantly modified (as appropriate)

docs/ask-rva.md

-41
This file was deleted.

docs/assets/landscape.png

2.94 MB
Loading

docs/blob-extractor.md

-1
This file was deleted.

docs/bootstrap.md

-2
This file was deleted.

docs/community/index.md

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Community
2+
3+
<div class="grid cards" markdown>
4+
5+
- :fontawesome-brands-discord:{ .lg .middle } __Discord__
6+
7+
---
8+
9+
The best place to communicate together.
10+
11+
[:octicons-arrow-right-24: Join the group](https://discord.gg/fPKVZScPT7)
12+
13+
- :fontawesome-brands-telegram:{ .lg .middle } __Telegram__
14+
15+
---
16+
17+
If you just want to receive notifications.
18+
19+
[:octicons-arrow-right-24: Subscribe to channel](https://t.me/bdsplugins)
20+
21+
</div>

docs/de-thunk.md

-37
This file was deleted.

docs/dump-sym.md

-38
This file was deleted.

docs/extract-sym.md

-1
This file was deleted.

0 commit comments

Comments
 (0)