Skip to content

Commit

Permalink
Merge pull request #128 from sunnamed434/dev
Browse files Browse the repository at this point in the history
Bump new version 0.16.0
  • Loading branch information
sunnamed434 committed May 14, 2023
2 parents 463ba90 + 1cef97f commit 784938f
Show file tree
Hide file tree
Showing 12 changed files with 56 additions and 47 deletions.
16 changes: 16 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

| Versions: |
|-------------------------------|
| [0.16.0-alpha](#0160-alpha29) |
| [0.15.1-alpha](#0151-alpha28) |
| [0.15.0-alpha](#0150-alpha27) |
| [0.14.0-alpha](#0140-alpha26) |
Expand All @@ -26,6 +27,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

---

## 0.16.0-alpha.29
2023-05-14

### Added

- New logging info about loaded module (version, PE time date stamp, token, culture and target framework)

### Fixed

- PE Image build errors output

### Changed

- Bumped to latest AsmResolver 5.3.0 version.

## 0.15.1-alpha.28
2023-04-28

Expand Down
7 changes: 3 additions & 4 deletions docs/developers/obfuscation-execution-order.rst
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,13 @@ BitMono uses its own obfuscation execution order which is good to be known, and
9. Optimize Macros
10. [ObfuscationAttribute] cleanup
11. Create PE Image
12. Output PE Image Build Errors
13. Write Module
14. Run Packers
12. Write Module
13. Run Packers
.. code-block:: csharp
public class Packer : PackerProtection
15. Output Elapsed Time since obfuscation
14. Output Elapsed Time since obfuscation
6 changes: 3 additions & 3 deletions props/SharedProjectProps.props
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageProjectUrl>https://github.com/sunnamed434/BitMono</PackageProjectUrl>
<PackageOwners>sunnamed434</PackageOwners>
<PackageVersion>0.15.1-alpha.28</PackageVersion>
<PackageVersion>0.16.0-alpha.29</PackageVersion>
<RepositoryUrl>https://github.com/sunnamed434/BitMono</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<Authors>sunnamed434</Authors>
<Version>0.15.1-alpha.28</Version>
<InformationalVersion>0.15.1-alpha.28</InformationalVersion>
<Version>0.16.0-alpha.29</Version>
<InformationalVersion>0.16.0-alpha.29</InformationalVersion>
<Company>BitMono</Company>
<Copyright>sunnamed434</Copyright>
<LangVersion>10</LangVersion>
Expand Down
4 changes: 2 additions & 2 deletions src/BitMono.API/BitMono.API.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
<Import Project="$(MSBuildThisFileDirectory)..\..\props\SharedProjectProps.props" />

<ItemGroup>
<PackageReference Include="AsmResolver" Version="5.1.0" />
<PackageReference Include="AsmResolver.DotNet" Version="5.1.0" />
<PackageReference Include="AsmResolver" Version="5.3.0" />
<PackageReference Include="AsmResolver.DotNet" Version="5.3.0" />
<PackageReference Include="Autofac" Version="6.5.0" />
<PackageReference Include="Autofac.Extensions.DependencyInjection" Version="7.0.0" />
<PackageReference Include="JetBrains.Annotations" Version="2023.2.0-eap1" />
Expand Down
2 changes: 1 addition & 1 deletion src/BitMono.Core/BitMono.Core.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<Import Project="$(MSBuildThisFileDirectory)..\..\props\SharedProjectProps.props" />

<ItemGroup>
<PackageReference Include="AsmResolver.DotNet" Version="5.1.0" />
<PackageReference Include="AsmResolver.DotNet" Version="5.3.0" />
<PackageReference Include="JetBrains.Annotations" Version="2023.2.0-eap1" />
<PackageReference Include="Microsoft.Extensions.Options" Version="7.0.0" />
<PackageReference Include="NullGuard.Fody" Version="3.1.0" />
Expand Down
37 changes: 13 additions & 24 deletions src/BitMono.Obfuscation/BitMonoObfuscator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -59,15 +59,26 @@ public async Task ProtectAsync()
await _invokablePipeline.InvokeAsync(OptimizeMacrosAsync);
await _invokablePipeline.InvokeAsync(StripObfuscationAttributesAsync);
await _invokablePipeline.InvokeAsync(CreatePEImageAsync);
await _invokablePipeline.InvokeAsync(OutputPEImageBuildErrorsAsync);
await _invokablePipeline.InvokeAsync(WriteModuleAsync);
await _invokablePipeline.InvokeAsync(PackAsync);
await _invokablePipeline.InvokeAsync(OutputElapsedTimeAsync);
}

private Task<bool> OutputLoadedModuleAsync()
{
_logger.Information("Loaded Module {0}", _context.Module.Name!.Value);
var targetFrameworkName = "unknown";
if (_context.Module.Assembly!.TryGetTargetFramework(out var info))
{
targetFrameworkName = info.Name;
}

var assemblyInfo = _context.Module.Assembly.ToString();
var culture = _context.Module.Assembly.Culture ?? "unknown";
var timeDateStamp = _context.Module.ToPEImage().TimeDateStamp;
_logger.Information("Module {0}", assemblyInfo);
_logger.Information("Module Target Framework: {0}", targetFrameworkName);
_logger.Information("PE TimeDateStamp: {0}", timeDateStamp);
_logger.Information("Module culture: {0}", culture);
return Task.FromResult(true);
}
private Task<bool> SortProtectionsAsync()
Expand Down Expand Up @@ -197,28 +208,6 @@ private Task<bool> CreatePEImageAsync()
}
return Task.FromResult(true);
}
private Task<bool> OutputPEImageBuildErrorsAsync()
{
if (_obfuscationSettings.OutputPEImageBuildErrors)
{
if (_imageBuild?.DiagnosticBag.HasErrors == true)
{
var exceptions = _imageBuild.DiagnosticBag.Exceptions;
var exceptionsCount = exceptions.Count;
_logger.Warning("{0} error(s) were registered while building the PE", exceptionsCount);
for (var i = 0; i < exceptionsCount; i++)
{
var exception = exceptions[i];
_logger.Error(exception, exception.GetType().Name);
}
}
else
{
_logger.Information("No one error were registered while building the PE");
}
}
return Task.FromResult(true);
}
private async Task<bool> WriteModuleAsync()
{
try
Expand Down
13 changes: 9 additions & 4 deletions src/BitMono.Obfuscation/Logging/LogErrorListener.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,13 @@

internal class LogErrorListener : IErrorListener
{
private readonly ILogger m_Logger;
private readonly ILogger _logger;
private readonly ObfuscationSettings _obfuscationSettings;

public LogErrorListener(ILogger logger)
public LogErrorListener(ILogger logger, ObfuscationSettings obfuscationSettings)
{
m_Logger = logger;
_logger = logger;
_obfuscationSettings = obfuscationSettings;
}

void IErrorListener.MarkAsFatal()
Expand All @@ -15,6 +17,9 @@ void IErrorListener.MarkAsFatal()
}
public void RegisterException(Exception exception)
{
m_Logger.Error(exception, "Registered error!");
if (_obfuscationSettings.OutputPEImageBuildErrors)
{
_logger.Error(exception, "Registered error!");
}
}
}
2 changes: 1 addition & 1 deletion src/BitMono.Obfuscation/Modules/ModuleFactory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public ModuleFactoryResult Create()
module.PEKind = OptionalHeaderMagic.PE32Plus;
module.MachineType = MachineType.Amd64;
}
var managedPEImageBuilder = new ManagedPEImageBuilder(_metadataBuilderFlags);
var managedPEImageBuilder = new ManagedPEImageBuilder(new DotNetDirectoryFactory(_metadataBuilderFlags), _errorListener);

return new ModuleFactoryResult
{
Expand Down
4 changes: 2 additions & 2 deletions src/BitMono.Obfuscation/Starter/BitMonoStarter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -45,13 +45,13 @@ private async Task<bool> StartAsync(StarterContext context, IDataWriter dataWrit
public Task<bool> StartAsync(CompleteFileInfo info, CancellationToken cancellationToken)
{
return StartAsync(new FinalFileInfo(info.FileName, info.OutputDirectoryPath),
new ModuleFactory(info.FileData, new LogErrorListener(_logger)),
new ModuleFactory(info.FileData, new LogErrorListener(_logger, _obfuscationSettings)),
new FileDataWriter(), new AutomaticReferencesDataResolver(info.FileReferences), cancellationToken);
}
public Task<bool> StartAsync(IncompleteFileInfo info, CancellationToken cancellationToken)
{
return StartAsync(new FinalFileInfo(info.FilePath, info.OutputDirectoryPath),
new ModuleFactory(File.ReadAllBytes(info.FilePath), new LogErrorListener(_logger)),
new ModuleFactory(File.ReadAllBytes(info.FilePath), new LogErrorListener(_logger, _obfuscationSettings)),
new FileDataWriter(), new AutomaticPathReferencesDataResolver(info.ReferencesDirectoryPath), cancellationToken);
}
}
4 changes: 2 additions & 2 deletions src/BitMono.Protections/BitMono.Protections.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
<Import Project="$(MSBuildThisFileDirectory)..\..\props\SharedProjectProps.props" />

<ItemGroup>
<PackageReference Include="AsmResolver" Version="5.1.0" />
<PackageReference Include="AsmResolver.DotNet" Version="5.1.0" />
<PackageReference Include="AsmResolver" Version="5.3.0" />
<PackageReference Include="AsmResolver.DotNet" Version="5.3.0" />
<PackageReference Include="Autofac" Version="6.5.0" />
<PackageReference Include="Autofac.Configuration" Version="6.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration" Version="7.0.0" />
Expand Down
4 changes: 2 additions & 2 deletions src/BitMono.Shared/BitMono.Shared.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
<Import Project="$(MSBuildThisFileDirectory)..\..\props\SharedProjectProps.props" />

<ItemGroup>
<PackageReference Include="AsmResolver" Version="5.1.0" />
<PackageReference Include="AsmResolver.DotNet" Version="5.1.0" />
<PackageReference Include="AsmResolver" Version="5.3.0" />
<PackageReference Include="AsmResolver.DotNet" Version="5.3.0" />
<PackageReference Include="JetBrains.Annotations" Version="2023.2.0-eap1" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.2" />
<PackageReference Include="NullGuard.Fody" Version="3.1.0" PrivateAssets="All" />
Expand Down
4 changes: 2 additions & 2 deletions src/BitMono.Utilities/BitMono.Utilities.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
<Import Project="$(MSBuildThisFileDirectory)..\..\props\SharedProjectProps.props" />

<ItemGroup>
<PackageReference Include="AsmResolver" Version="5.1.0" />
<PackageReference Include="AsmResolver.DotNet" Version="5.1.0" />
<PackageReference Include="AsmResolver" Version="5.3.0" />
<PackageReference Include="AsmResolver.DotNet" Version="5.3.0" />
<PackageReference Include="JetBrains.Annotations" Version="2023.2.0-eap1" />
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="7.0.0" />
<PackageReference Include="morelinq" Version="3.3.2" />
Expand Down

0 comments on commit 784938f

Please sign in to comment.