yck1509 / ConfuserEx

An open-source, free protector for .NET applications
http://yck1509.github.io/ConfuserEx/
Other
3.57k stars 1.64k forks source link

Copy external dependency file to output directory #192

Open xmatthias opened 9 years ago

xmatthias commented 9 years ago

hi,

I'm trying to obfuscate a .net-application that has some "foreign" dependencies which are already protected by another application.

Tested this with the lastest CI-server build (gfa869f3) - but it happens also with the latest release

Basically, i'd like to just "copy" the files to the output-directory to be safe from errors. Using Preset="none" with Inherit protecitons disabled (which i assumed does basically only copy/paste of the file) does not seem to work and produces the following error:

[ERROR] Unknown error occurred. Exception: System.BadImageFormatException: .NET data directory RVA is 0 bei dnlib.DotNet.MD.MetaDataCreator.Create(IPEImage peImage, Boolean verify) in c:\projects\confuserex\dnlib\src\DotNet\MD\MetaDataCreator.cs:Zeile 185. bei dnlib.DotNet.MD.MetaDataCreator.Load(String fileName) in c:\projects\confuserex\dnlib\src\DotNet\MD\MetaDataCreator.cs:Zeile 35. bei dnlib.DotNet.ModuleDefMD.Load(String fileName, ModuleCreationOptions options) in c:\projects\confuserex\dnlib\src\DotNet\ModuleDefMD.cs:Zeile 185. bei Confuser.Core.Marker.MarkProject(ConfuserProject proj, ConfuserContext context) in c:\projects\confuserex\Confuser.Core\Marker.cs:Zeile 123. bei Confuser.Core.ConfuserEngine.RunInternal(ConfuserParameters parameters, CancellationToken token) in c:\projects\confuserex\Confuser.Core\ConfuserEngine.cs:Zeile 122.

yck1509 commented 9 years ago

Hi, ConfuserEx would still attempt to load the input even if it has a preset of "None". It doesn't have the ability to copy dependencies to output directory at the moment. Currently I don't have plans to add this feature as it could be simply done using a build script.

Gaushick commented 9 years ago

I have got the "External Component has thrown an exception" error in my application, after obfuscated the dll using ConfuserEx. Do you have any solution for this?