Skip to content

Commit dfed93d

Browse files
authored
Merge pull request #106 from sunnamed434/dev
Bump new version 0.12.0-alpha.21
2 parents 3e97dd2 + bb9b70b commit dfed93d

File tree

62 files changed

+483
-290
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+483
-290
lines changed

CHANGELOG.md

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
| Versions: |
22
| - |
3+
| [v0.12.0-alpha](#v0120-alpha21) |
34
| [v0.11.0-alpha](#v0110-alpha20) |
45
| [v0.10.0-alpha](#v0100-alpha19) |
56
| [v0.9.0-alpha](#v090-alpha18) |
@@ -22,11 +23,21 @@
2223
| [v0.1.0](#v010) |
2324

2425
---
26+
### v0.12.0-alpha.21:
27+
2023-03-05
28+
#### Added:
29+
* [Costura-Fody](https://github.com/Fody/Costura) support, now references are resolved automatically, [#102](https://github.com/sunnamed434/BitMono/issues/102)
30+
* Support when path contains quotes (for example: "path..."), [#104](https://github.com/sunnamed434/BitMono/issues/104)
31+
32+
#### Fixed:
33+
* Hiding of the paths (before paths with .exe may cause an ignore)
34+
* Now output directory path message shows normally (before ***\folder_before_output, now ***\output)
35+
2536
### v0.11.0-alpha.20:
2637
2023-02-016
2738
#### Added:
28-
* BitMono ASCII Art in CLI
29-
* Hiding of the pathes (file path, directory path, etc)
39+
* BitMono ASCII Art in CLI.
40+
* Hiding of the pathes (file path, directory path, etc).
3041
* Documentation.
3142

3243
#### Fixed:

README.md

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
[![Gitter Chat][image_gitter]][gitter]
1212
[![MIT License][image_license]][license]
1313

14-
BitMono is an free open-source C# obfuscator that in most cases works **only** with Mono - well known as a fork of .NET framework but for Unity, you can still use this for a whole .NET, but be careful that something working not as intentional, etc. Which uses **[AsmResolver][asmresolver]** for assembly manipulation. If you have any questions/issues please let me know **[there][bitmono_issues]**. You can install the latest version of BitMono **[here][bitmono_releases]**.
14+
BitMono is a free open-source C# obfuscator that in most cases works **only** with Mono - well known as a fork of .NET framework (which runs popular platforms such as Unity, etc), you can still use this for a whole .NET, but be careful that something working not as intentional, etc. Which uses **[AsmResolver][asmresolver]** for assembly manipulation. If you have any questions/issues please let me know **[there][bitmono_issues]**. You can install the latest version of BitMono **[here][bitmono_releases]**.
1515

1616
<p align="center">
1717
<img src="https://raw.githubusercontent.com/sunnamed434/BitMono/main/resources/images/preview/before-after.png"
@@ -35,7 +35,7 @@ BitMono is an free open-source C# obfuscator that in most cases works **only** w
3535

3636
Want more previews? Click **[here][previews]**.
3737

38-
## Documentation
38+
## Documentation
3939
Read the **[docs][bitmono_docs]** to read protection, functionality, and more.
4040

4141
## How your app will look since BitMono obfuscation - just in a few words
@@ -44,7 +44,7 @@ Read the **[docs][bitmono_docs]** to read protection, functionality, and more.
4444
* Broken decompilers
4545
* Broken IL Code
4646
* Invisible types
47-
* No code
47+
* No code
4848

4949
## Obfuscation Features
5050
* StringsEncryption
@@ -80,12 +80,6 @@ specially_created_folder_for_obfuscation/
8080
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.
8181

8282
### Using CLI Commands
83-
Outputs available commands
84-
```console
85-
$ BitMono.CLI --help
86-
```
87-
88-
Upper command output:
8983
```console
9084
-f, --file Required. Set file path.
9185

@@ -98,7 +92,7 @@ Upper command output:
9892
--version Display version information.
9993
```
10094

101-
Basic examples
95+
Basic example
10296
```console
10397
$ BitMono.CLI -f C:\specially_created_folder_for_obfuscation/your_app.exe -l specially_created_folder_for_obfuscation/libs
10498
```
@@ -122,8 +116,8 @@ Want more? Read the **[docs][bitmono_docs]**.
122116

123117
### Detailed build status
124118
Branch | AppVeyor
125-
------------- | -------------
126-
main | [![Build status][image_appveyor_main_badge]][appveyor_main_build]
119+
------------- | -------------
120+
main | [![Build status][image_appveyor_main_badge]][appveyor_main_build]
127121
dev | [![Build status][image_appveyor_dev_badge]][appveyor_dev_build]
128122

129123
Credits
@@ -134,12 +128,14 @@ Credits
134128

135129
**[Elliesaur][author_ellisaur]** for his acquaintance in **[DotNetHook][dotnethook_source]** that hooks methods.
136130

137-
**[Weka][author_naweka]** for his advices, help and motivation.
131+
**[Weka][author_naweka]** for his advices, help and motivation.
138132

139133
**[ConfuserEx and their Forks][confuserex_source]** for most things that I watched for the architecture of BitMono and the obfuscator engine as an application and solving plenty of User solutions which I would be knew in the very long future after much fail usage of BitMono and reports by other Users. Day-by-day I'm looking for something interesting there to improve myself in knowledge and BitMono also.
140134

141135
**[Kao and his blogs][author_kao_blog]** thanks a lot of these blogs.
142136

137+
**[drakonia][author_drakonia]** for her **[costura decompressor][simple_costura_decompressor_source]**.
138+
143139
[test]: https://ci.appveyor.com/project/sunnamed434/bitmono/branch/main/tests
144140
[codefactor]: https://www.codefactor.io/repository/github/sunnamed434/bitmono/overview/main
145141
[deepsource]: https://deepsource.io/gh/sunnamed434/BitMono/?ref=repository-badge
@@ -154,11 +150,13 @@ Credits
154150
[bitmethoddotnet_source]: https://github.com/sunnamed434/BitMethodDotnet
155151
[dotnethook_source]: https://github.com/Elliesaur/DotNetHook
156152
[confuserex_source]: https://github.com/yck1509/ConfuserEx
153+
[simple_costura_decompressor_source]: https://github.com/dr4k0nia/Simple-Costura-Decompressor
157154
[author_0x59r11]: https://github.com/0x59R11
158155
[author_gazzi]: https://github.com/GazziFX
159156
[author_ellisaur]: https://github.com/Elliesaur
160157
[author_naweka]: https://github.com/naweka
161158
[author_kao_blog]: https://lifeinhex.com/
159+
[author_drakonia]: https://github.com/dr4k0nia
162160
[author_sunnamed434]: https://github.com/sunnamed434
163161
[appveyor_main_build]: https://ci.appveyor.com/project/sunnamed434/bitmono/branch/main
164162
[appveyor_dev_build]: https://ci.appveyor.com/project/sunnamed434/bitmono/branch/dev

docs/faq/costura-support.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
Does BitMono provide Costura-Fody Support by default?
2+
=====================================================
3+
4+
Indeed, by default BitMono provides support for the Costura-Fody, resources will be resolved automatically, in this case, you don't need to have copies of your .DLLs or even set ``DisableCleanup`` to ``true`` in ``FodyWeavers.xml``.

docs/faq/disable-path-masking.rst

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
How to disable path masking?
2+
============================
3+
4+
You're probably getting a message with the file/directory or just a path ``(***\things)``, and you might have the same folder twice somewhere, and you need to see the full path without masking if this is what you're looking for, all instructions how to do that are provided here.
5+
6+
Open-up ``logging.json`` in the root of the downloaded BitMono, edit this file, and remove this:
7+
8+
.. code-block:: json
9+
10+
"Enrich": [
11+
{
12+
"Name": "WithSensitiveDataMasking",
13+
"Args": {
14+
"options": {
15+
"MaskValue": "***\\",
16+
"MaskProperties": [ "path", "directory", "file" ],
17+
"MaskingOperators": [ "BitMono.Host.Extensions.PathMaskingOperator, BitMono.Host" ]
18+
}
19+
}
20+
},
21+
],
22+
23+
24+
So, after edit ``logging.json`` looks like this:
25+
26+
.. code-block:: json
27+
28+
{
29+
"Serilog": {
30+
"Using": [
31+
"Serilog",
32+
"Serilog.Sinks.Console",
33+
"Serilog.Sinks.File",
34+
"Serilog.Sinks.Async",
35+
"Serilog.Enrichers.Sensitive"
36+
],
37+
"WriteTo": [
38+
{
39+
"Name": "Async",
40+
"Args": {
41+
"configure": [
42+
{
43+
"Name": "File",
44+
"Args": {
45+
"path": "logs/bitmono-{{date}}.log",
46+
"outputTemplate": "[{Timestamp:yyyy-MM-dd HH:mm:ss} {Level:u3}][{SourceContext}] {Message:lj}{NewLine}{Exception}"
47+
}
48+
}
49+
]
50+
}
51+
}
52+
],
53+
"Enrich": [
54+
"FromLogContext"
55+
],
56+
"MinimumLevel": "Debug"
57+
}
58+
}

docs/index.rst

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,13 @@ Table of Contents:
4242

4343
configuration/exclude-obfuscation
4444
configuration/third-party-issues
45-
configuration/protections
45+
configuration/protections
46+
47+
48+
.. toctree::
49+
:maxdepth: 1
50+
:caption: Frequently Asked Questions
51+
:name: sec-faq
52+
53+
faq/costura-support
54+
faq/disable-path-masking

props/SharedProjectProps.props

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
<PackageLicenseExpression>MIT</PackageLicenseExpression>
77
<PackageProjectUrl>https://github.com/sunnamed434/BitMono</PackageProjectUrl>
88
<PackageOwners>sunnamed434</PackageOwners>
9-
<PackageVersion>0.11.0-alpha.20</PackageVersion>
9+
<PackageVersion>0.12.0-alpha.21</PackageVersion>
1010
<RepositoryUrl>https://github.com/sunnamed434/BitMono</RepositoryUrl>
1111
<RepositoryType>git</RepositoryType>
1212
<Authors>sunnamed434</Authors>
13-
<Version>0.11.0-alpha.20</Version>
14-
<InformationalVersion>0.11.0-alpha.20</InformationalVersion>
13+
<Version>0.12.0-alpha.21</Version>
14+
<InformationalVersion>0.12.0-alpha.21</InformationalVersion>
1515
<Company>BitMono</Company>
1616
<Copyright>sunnamed434</Copyright>
1717
<LangVersion>10</LangVersion>
Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1-
namespace BitMono.API.Contexts
1+
namespace BitMono.API.Contexts;
2+
3+
public class ProtectionParameters
24
{
3-
public class ProtectionParameters
5+
public ProtectionParameters(List<IMetadataMember> members)
46
{
5-
public ProtectionParameters(List<IMetadataMember> members)
6-
{
7-
Members = members;
8-
}
9-
10-
public List<IMetadataMember> Members { get; }
7+
Members = members;
118
}
9+
10+
public List<IMetadataMember> Members { get; }
1211
}

src/BitMono.CLI/GlobalUsings.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
global using BitMono.Host.Extensions;
1313
global using BitMono.Obfuscation.Abstractions;
1414
global using BitMono.Obfuscation.Interfaces;
15+
global using BitMono.Utilities.Paths;
1516
global using CommandLine;
1617
global using Microsoft.Extensions.Options;
1718
global using Pocket.Extensions;

src/BitMono.CLI/Modules/CLIBitMonoModuleFileResolver.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ internal class CLIBitMonoModuleFileResolver
77
string? file = null;
88
if (args.IsEmpty() == false)
99
{
10-
file = args[0];
10+
file = PathFormatterUtility.Format(args[0]);
1111
}
1212
return file;
1313
}

src/BitMono.CLI/Modules/CLIObfuscationNeedsFactory.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public ObfuscationNeeds Create()
2121
try
2222
{
2323
m_Logger.Information("Please, specify file or drag-and-drop in BitMono CLI");
24-
fileName = Console.ReadLine();
24+
fileName = PathFormatterUtility.Format(Console.ReadLine());
2525
if (string.IsNullOrWhiteSpace(fileName) == false)
2626
{
2727
if (File.Exists(fileName))
@@ -62,7 +62,7 @@ public ObfuscationNeeds Create()
6262
}
6363

6464
m_Logger.Information("Please, specify dependencies (libs) path: ");
65-
var newDependenciesDirectoryName = Console.ReadLine();
65+
var newDependenciesDirectoryName = PathFormatterUtility.Format(Console.ReadLine());
6666
if (string.IsNullOrWhiteSpace(newDependenciesDirectoryName) == false)
6767
{
6868
if (Directory.Exists(newDependenciesDirectoryName))
@@ -99,7 +99,7 @@ public ObfuscationNeeds Create()
9999
{
100100
FileName = fileName,
101101
FileBaseDirectory = fileBaseDirectory,
102-
DependenciesDirectoryName = dependenciesDirectoryName,
102+
ReferencesDirectoryName = dependenciesDirectoryName,
103103
OutputDirectoryName = outputDirectoryName
104104
};
105105
}

0 commit comments

Comments
 (0)