Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/actions/nuget-pack/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,6 @@ runs:
shell: bash
- name: Push to NuGet (Release)
run: if ${{ inputs.nuget_push == 'true' }}; then
dotnet nuget push *.nupkg --skip-duplicate --api-key ${{ inputs.nuget_key }} --source https://api.nuget.org/v3/index.json;
dotnet nuget push *.nupkg --api-key ${{ inputs.nuget_key }} --source https://api.nuget.org/v3/index.json;
fi
shell: bash
91 changes: 13 additions & 78 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,94 +85,29 @@ Read the **[docs][bitmono_docs]** to read protection, functionality, and more.
* AntiILdasm
* and you can integrate existing/make own feature ;)

## Usage

### Download

To download the latest release of BitMono, follow these steps:

1. Go to the [Latest BitMono Release][bitmono_latest_release].
2. Select and download the archive file that matches the Target Framework of the application you want to protect. Here are some examples:

- **Targeting .NET 8**: If your target file is built for .NET 8, download:
`BitMono-v0.25.3+e64e54d3-CLI-net8.0-win-x64.zip`

- **Targeting .NET Standard**: If your target file is built for .NET Standard, you can use either BitMono for .NET Framework or .NET 8:
`BitMono-v0.25.3+e64e54d3-CLI-net8.0-win-x64.zip`

- **Targeting .NET Framework**: If your target file is built for .NET Framework, download:
`BitMono-v0.25.3+e64e54d3-CLI-net462-win-x64.zip`

- **Targeting Mono or Unity Engine Runtime**: If your target file is built for .NET Framework and runs on Mono or Unity, use the .NET Framework version:
`BitMono-v0.25.3+e64e54d3-CLI-net462-win-x64.zip`

> **Note:** Be sure to select the correct version of BitMono that matches your Target Framework. Using the wrong version could result in compatibility issues, however, if that works ok anyway or if you know what you're doing, you can ignore it.

### Pre-Require

Enable one of the protection in `protections.json` file: Set `Enabled` to `true`.

### Using CLI

`BitMono.CLI <path to file>/drag-and-drop`

Always drop dependencies in `libs` directory in the same path where `file` for obfuscation is located

Your obfuscation directory structure will look something like this:
```
specially_created_folder_for_obfuscation/
├─ your_app.exe
└─ libs/
├─ ImportantLibrary.dll
├─ SuperImportantLibrary.dll
└─ ...
```

Copy all libraries (.dll) from the building application folder and paste them into the `libs` directory (if it doesn't exist yet create it), or even create the libs directory yourself with a custom name for example - `myLibs`, and then specify it in BitMono, however, if you will use `libs` then by default BitMono looking for a `libs` directory, so it will save your time.

### Using CLI Commands

```console
-f, --file Required. Set file path.

-l, --libraries Set libraries path.

-o, --output Set output path.

--help Display this help screen.

--version Display version information.
```

Basic example
```console
$ BitMono.CLI -f C:\specially_created_folder_for_obfuscation/your_app.exe -l specially_created_folder_for_obfuscation/libs
```
## Documentation

In case when you already have a directory with the name `libs` (specially_created_folder_for_obfuscation\libs) BitMono will catch it automatically, so, you don't need to specify it anymore, but you can in case if you made another directory with `libs` somewhere on the disk or even just for "visibility".
```console
$ BitMono.CLI -f C:\specially_created_folder_for_obfuscation/your_app.exe
```
Read the **[docs][bitmono_docs]** for comprehensive usage instructions, installation guides, and detailed documentation.

Specify custom `libs` directory
```console
$ BitMono.CLI -f C:\specially_created_folder_for_obfuscation/your_app.exe -l C:\mythings\obfuscation\superLibsDirectory
```
**Quick Start:**
1. Download from [releases][bitmono_releases]
2. Run `BitMono.CLI` and follow the prompts
3. (optional) See the [How To Use guide][bitmono_docs] for detailed instructions

Specify file, libs and output. If output directory doesn't exist BitMono will create it automatically and even open it on the top of the screen, if you want you can disable opening of the directory on the of top of the screen in `obfuscation.json` - and set `OpenFileDestinationInFileExplorer` to false.
```console
$ BitMono.CLI -f C:\specially_created_folder_for_obfuscation/your_app.exe -l C:\mythings\obfuscation\superLibsDirectory -o C:\specially_created_folder_for_obfuscation/output
```
**Installation Options:**
- **GitHub Releases**: Download pre-built executables
- **.NET Global Tool**: `dotnet tool install --global BitMono.GlobalTool`
- **NuGet Packages**: Integrate into your projects

Want more? Simply read the **[docs][bitmono_docs]**.
For detailed installation and usage instructions, see the **[documentation][bitmono_docs]**.

### Troubleshooting

Having issues? Get more help **[here][troubleshooting]**.
Having issues? See the `troubleshooting guide <https://bitmono.readthedocs.io/en/latest/usage/troubleshooting.html>`_ in the documentation.

### Building

If you want to build the BitMono by your own - [click here for detailed info][build_info]
If you want to build BitMono yourself - see the `building guide <https://bitmono.readthedocs.io/en/latest/developers/building.html>`_ in the documentation.

### Supported Frameworks

Expand Down
65 changes: 9 additions & 56 deletions build.md
Original file line number Diff line number Diff line change
@@ -1,59 +1,12 @@
## Binaries
# Building BitMono

If you just need the compiled binaries simply install them [from releases][releases] - open the dropdown button `Assets`, and select the preferred archive, these binaries were made automatically via CI/CD pipeline.
**This content has been moved to the documentation.**

### Compiling
For comprehensive building instructions, please see the [Building Guide](https://bitmono.readthedocs.io/en/latest/developers/building.html) in the documentation.

Recommended to install tools via Visual Studio installer, otherwise you can install those tools directly via provided links down below or just searching for it by yourself.

- [.NET Framework 462][net462]
- [Visual Studio 2022][vs2022]/[JetBrains Rider][rider] or newer to build the solution
- [.NET 9.0][net9]
- [.NET 8.0][net8]
- [.NET 7.0][net7]
- [.NET 6.0][net6]

To build the solution from command line, use:

```bash
$ dotnet build
```

Otherwise do that via IDE `Build` button if you have.

To run tests, use:

```bash
$ dotnet test
```

### Release On GitHub details

Archives examples (versions and/or naming can be a bit different):
- .NET 9.0: `BitMono-v0.24.2+7aaeceac-CLI-net9.0-linux-x64.zip`
- .NET 8.0: `BitMono-v0.24.2+7aaeceac-CLI-net8.0-linux-x64.zip`
- .NET 7.0: `BitMono-v0.24.2+7aaeceac-CLI-net7.0-win-x64.zip`
- .NET 6.0: `BitMono-v0.24.2+7aaeceac-CLI-net6.0-linux-x64.zip`
- .NET 462: `BitMono-v0.24.2+7aaeceac-CLI-net462-win-x64.zip`
- netstandard 2.1: `BitMono-v0.24.2+7aaeceac-CLI-netstandard2.1-linux-x64.zip`
- netstandard 2.0: `BitMono-v0.24.2+7aaeceac-CLI-netstandard2.0-win-x64.zip`

To be more clear:
- `v0.24.2` is the version and the value `+7aaeceac` after the version is the hash of the commit.
- `CLI` is the `command line interface` meaning, currently BitMono only have CLI for usage.
- `net.9.0`, `net8.0`, `net7.0`, `net6.0`, `net462`, `netstandard2.1`, `netstandard2.0` is the target framework that BitMono was built on.

### Help

If you have any issues/questions freely, ask them [here][issues], or contact via:
- Email: sunnamed434 (at) proton.me

[net462]: https://dotnet.microsoft.com/en-us/download/dotnet-framework/net462
[vs2022]: https://visualstudio.microsoft.com/downloads
[rider]: https://www.jetbrains.com/rider/download
[net6]: https://dotnet.microsoft.com/en-us/download/dotnet/6.0
[net7]: https://dotnet.microsoft.com/en-us/download/dotnet/7.0
[net8]: https://dotnet.microsoft.com/en-us/download/dotnet/8.0
[net9]: https://dotnet.microsoft.com/en-us/download/dotnet/9.0
[releases]: https://github.com/sunnamed434/BitMono/releases
[issues]: https://github.com/sunnamed434/BitMono/issues
The documentation includes:
- Prerequisites and tools needed
- Building from source
- Running tests
- Release archive explanations
- Getting help with building issues
6 changes: 3 additions & 3 deletions docs/README.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Prerequisites:
- Ensure Docker is installed on your machine. If not, install Docker from https://docs.docker.com/get-docker/.

Running Locally:
1. Start Docker if its not already running.
1. Start Docker if it's not already running.
2. Open a terminal and navigate to the directory containing your docker-compose.yml file.
3. Execute the following command to build and start the container:
docker-compose up --build
Expand All @@ -18,6 +18,6 @@ Restarting the Container:

To edit/update docs:
Prerequisites:
- Use Visual Studio Code, or any other tool. https://code.visualstudio.com/
- Use Visual Studio Code (tps://code.visualstudio.com/), or any other tool.

Go to `source` folder and do your magic!
Go to 'source' folder and do your magic!
2 changes: 1 addition & 1 deletion docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# -- Project information

project = 'BitMono'
copyright = '2022-2024, BitMono'
copyright = '2022-2025, BitMono'
author = 'sunnamed434'

release = '0.1'
Expand Down
70 changes: 70 additions & 0 deletions docs/source/developers/building.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
Building BitMono
===============

Getting Binaries
---------------

If you just need the compiled binaries, grab them `from releases <https://github.com/sunnamed434/BitMono/releases>`_. Open the dropdown button `Assets` and pick the archive you want. These binaries are built automatically via CI/CD pipeline.

Building from Source
-------------------

Prerequisites
~~~~~~~~~~~~

Recommended to install tools via Visual Studio installer, otherwise you can grab those tools directly via the links below:

- `Visual Studio 2022 <https://visualstudio.microsoft.com/downloads>`_ or `JetBrains Rider <https://www.jetbrains.com/rider/download>`_ or newer
- `.NET Framework 4.6.2 <https://dotnet.microsoft.com/en-us/download/dotnet-framework/net462>`_
- `.NET 9.0 <https://dotnet.microsoft.com/en-us/download/dotnet/9.0>`_
- `.NET 8.0 <https://dotnet.microsoft.com/en-us/download/dotnet/8.0>`_
- `.NET 7.0 <https://dotnet.microsoft.com/en-us/download/dotnet/7.0>`_
- `.NET 6.0 <https://dotnet.microsoft.com/en-us/download/dotnet/6.0>`_

Building
~~~~~~~~

To build the solution from command line:

.. code-block:: console

dotnet build

Or just use the IDE `Build` button if you have one.

Testing
~~~~~~~

To run tests:

.. code-block:: console

dotnet test

Release Archives
---------------

Archive examples (versions and naming might be different):

- .NET 9.0: ``BitMono-v0.24.2+7aaeceac-CLI-net9.0-linux-x64.zip``
- .NET 8.0: ``BitMono-v0.24.2+7aaeceac-CLI-net8.0-linux-x64.zip``
- .NET 7.0: ``BitMono-v0.24.2+7aaeceac-CLI-net7.0-win-x64.zip``
- .NET 6.0: ``BitMono-v0.24.2+7aaeceac-CLI-net6.0-linux-x64.zip``
- .NET 462: ``BitMono-v0.24.2+7aaeceac-CLI-net462-win-x64.zip``
- netstandard 2.1: ``BitMono-v0.24.2+7aaeceac-CLI-netstandard2.1-linux-x64.zip``
- netstandard 2.0: ``BitMono-v0.24.2+7aaeceac-CLI-netstandard2.0-win-x64.zip``

Archive naming explained:

- ``v0.24.2`` is the version
- ``+7aaeceac`` after the version is the commit hash
- ``CLI`` means command line interface (currently BitMono only has CLI)
- ``net9.0``, ``net8.0``, etc. is the target framework BitMono was built on

Getting Help
-----------

If you run into issues or have questions:

- Ask them `here <https://github.com/sunnamed434/BitMono/issues>`_
- Email: sunnamed434 (at) proton.me
2 changes: 1 addition & 1 deletion docs/source/developers/native-code.rst
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Native Code
###########
===========

If you want to use a native code in the protection you must do the following:

Expand Down
9 changes: 9 additions & 0 deletions docs/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,14 @@ Join our `Discord Server <https://discord.gg/sFDHd47St4>`_ you will find there h
Table of Contents:
------------------

.. toctree::
:maxdepth: 1
:caption: Usage
:name: sec-usage

usage/how-to-use
usage/troubleshooting

.. toctree::
:maxdepth: 1
:caption: Protections
Expand Down Expand Up @@ -55,6 +63,7 @@ Table of Contents:
developers/do-not-resolve-members
developers/configuration
developers/obfuscate-build
developers/building


.. toctree::
Expand Down
Loading
Loading