Skip to Content
新しいバージョン 12 を公開しました 🎉
ObfuscatorNuGet パッケージパッケージリファレンス

パッケージリファレンス

Babel.Obfuscator パッケージが定義するすべての MSBuild プロパティ、項目、ターゲットと、パッケージのプロパティと Babel タスクの属性との対応を示します。

パッケージのプロパティ

次のプロパティは、パッケージ自体を制御します。難読化の設定は、プロパティの対応の表に記載されています。

プロパティ既定値説明
BabelEnabledtrue全体のスイッチ。false の場合、公開時の調整も含め、Babel のターゲットは一切実行されません。
BabelPublishEnabled$(BabelEnabled)マージされたアセンブリと埋め込みアセンブリを公開対象から削除するかどうか。
BabelUpdateDependencyFile$(BabelEnabled)難読化の後に、ビルドと公開の .deps.json ファイルを更新するかどうか。
BabelOverrideCompiletrueパッケージが CoreCompile の後に難読化ステップを挿入するかどうか。ObfuscateBuild ターゲットを自分で組み込む場合は、false に設定します。
RunBabelAfterBuildfalsetrue の場合、Babel はビルドの最後に、中間アセンブリではなく $(TargetPath) に対して実行されます。
BabelBeforeTargets指定した名前のターゲットの前に難読化ステップを実行し、既定の配置を無効にします。
BabelAfterTargets指定した名前のターゲットの後に難読化ステップを実行し、既定の配置を無効にします。
BabelPackageDirパッケージのルート展開されたパッケージのルートフォルダー。
BabelTaskDirホストごとBabel タスクとツールを読み込むフォルダー。ビルドツールの選択を参照してください。
BabelPath$(BabelTaskDir)実行する Babel の実行可能ファイルがあるフォルダー(タスクの属性 ToolPath)。
BabelExeBabel の実行可能ファイルの名前。babel.exe または babel.dll(タスクの属性 ToolExe)。
BabelInputFile中間アセンブリ難読化するアセンブリ。パッケージが計算します。上書きする場合は、設定用のターゲットで行います。
BabelOutputFile$(BabelInputFile)難読化された出力。パッケージが計算します。上書きする場合は、設定用のターゲットで行います。
BabelLicenseプロジェクトフォルダーまたは親フォルダーで見つかった babel.licensesライセンスファイルのパス、ライセンスキー、または floating: 形式のユーザーキー。
BabelLicenseDirbabel.licenses が見つかったフォルダー。パッケージが設定します。
SymbolsRenamingtrueすべてのリネーム機能を一度に有効または無効にします。
NoConfigurationtrueBabel が構成ファイルを無視するかどうか。
GenerateDebugPDB が存在する場合は true難読化されたアセンブリのデバッグシンボルを生成するかどうか。
CopyOutputSymbolsToPublishDirectoryRelease では falseSDK の標準プロパティ。PDB ファイルが公開されないように、パッケージは Release でこれをオフにします。
BabelProvideCommandLineArgsfalseBabel のコマンドラインを、ログと @(BabelCommandLineArgs) 項目に書き出します。
BabelWarningsAsErrorsエラーとして報告する警告コード。評価モードで実行されるビルドを失敗させるには、W00000 を設定します。
BabelWarningsAsInfos情報メッセージとして報告する警告コード。
BabelWarningsToIgnore抑制する警告コード。
BabelExitCode出力:Babel タスクの終了コード。CoreObfuscate の後に利用できます。

パッケージの項目

項目説明
BabelRulesXML ルールファイル。プロジェクトフォルダーの babelRules.xml は自動的に追加されます。
MergeAssemblyターゲットアセンブリにマージするアセンブリ。
EmbedAssemblyターゲットアセンブリに埋め込むアセンブリ。
MapInFileすでに難読化されたアセンブリの XML マップファイル。
BabelPlugin読み込むプラグインアセンブリ。
BabelSearchDirectoriesアセンブリの検索ディレクトリ。プロジェクトの参照から計算されます。置き換えや追加は、設定用のターゲットで行います。
BabelTargetReferences参照として渡される追加の検索エントリ。
AddReferences難読化されたアセンブリの参照として追加するアセンブリ。
SatelliteAssembly処理するサテライトアセンブリ。
XmlDocumentationFileアセンブリと一緒に処理する XML ドキュメントファイル。
BabelCommandLineArgs出力:Babel に渡されたコマンドライン。BabelProvideCommandLineArgs が true の場合に利用できます。

ターゲット

ターゲット説明
ObfuscateBuildビルドに挿入される難読化ステップ。ObfuscateSettings、Obfuscate の順に実行します。
ObfuscateSettings次の設定用ターゲットを実行して、Babel タスクの構成を準備します。
ObfuscateDefaultSettingsリネームの既定値を適用し、ライセンスファイルを検索し、babelRules.xml を追加して、検索ディレクトリを構築します。
ObfuscateFrameworkSettings処理するアセンブリを選択します。中間アセンブリ、または RunBabelAfterBuild が true の場合は $(TargetPath) です。
ObfuscateSetupBabelFilesBabelInputFile と BabelOutputFile を設定し、PDB が存在する場合は GenerateDebug を有効にします。
ObfuscateCustomSettings、SetupObfuscate、ConfigureBabel空のターゲット。Babel が実行される前に、計算された構成を調整するには、これらを再定義します。
ObfuscateBeforeObfuscate、CoreObfuscate、AfterObfuscate を実行します。
BeforeObfuscate空のターゲット。Babel タスクの直前にタスクを実行するには、これを再定義します。
CoreObfuscateBabel タスクを実行します。再定義しないでください。
AfterObfuscate空のターゲット。Babel タスクの直後にタスクを実行するには、これを再定義します。
UpdateBabelBuildDependencyFileGenerateBuildDependencyFile の後:マージされたアセンブリ、埋め込みアセンブリ、パッケージを、ビルドの .deps.json から削除します。
UpdateBabelPublishDependencyFileGeneratePublishDependencyFile の後:公開の .deps.json に対して同じ処理を行います。
UpdateBabelFilesToPublishComputeFilesToPublish の後:マージされたアセンブリと埋め込みアセンブリを公開対象から削除します。
OverrideCompileWithBabelPrepareForBuild の後:ステップが移動されている場合とデザイン時ビルドの場合を除き、CoreCompile の後に ObfuscateBuild を挿入します。
EnableObfuscationFlagコンパイルによって起動されます。コンパイラーが実際に実行された場合にだけ、ObfuscateBuild を有効にします。

プロパティの対応

次の表は、Babel タスクのすべての属性を、パッケージが読み取る MSBuild のプロパティまたは項目に対応付けたものです。プロパティは、対応するコマンドラインスイッチと同じ値を受け付けます。12.0 と示された属性は、バージョン 12 で追加されました。

Babel タスクの属性種類パッケージのプロパティまたは項目
AddReferences項目@(AddReferences)
AndroidSigningKeyAliasプロパティAndroidSigningKeyAlias
AndroidSigningKeyPassプロパティAndroidSigningKeyPass
AndroidSigningKeyStoreプロパティAndroidSigningKeyStore
AndroidSigningStorePassプロパティAndroidSigningStorePass
BabelDirectoryプロパティBabelDirectory
CleanAttributesプロパティCleanAttributes
ConstRemovalプロパティConstRemoval
ControlFlowIterationsプロパティControlFlowIterations(ILIterations もエイリアスとして使用できます)
ControlFlowObfuscationプロパティControlFlowObfuscation
CopyAttributesプロパティMergeCopyAttributes
DbgHelpDllDirプロパティDbgHelpDllDir
DeadCodeEliminationプロパティDeadCodeElimination
DebuggingProtectionプロパティDebuggingProtection
DependenciesManifestプロパティDependenciesManifest
DetectIfObfuscatedプロパティDetectIfObfuscated
DisgregateRemovalプロパティDisgregateRemoval
DynamicProxyプロパティDynamicProxy
DynamicProxyCallFiltersプロパティDynamicProxyCallFilters
EmbedAssemblies項目@(EmbedAssembly)
EmitInvalidOpcodesプロパティEmitInvalidOpcodes
EnableObfuscationAgentプロパティEnableObfuscationAgent
EnumRemovalプロパティEnumRemoval
FlattenNamespacesプロパティFlattenNamespaces
FrameworkプロパティFramework
GenerateDebugプロパティGenerateDebug
GenerateLogFileプロパティGenerateLogFile
GenerateMapOutFileプロパティGenerateMapOutFile
InlineExpansionプロパティInlineExpansion
InputFileプロパティBabelInputFile
InstrumentプロパティBabelInstrument
InstrumentEmptyMethodsプロパティInstrumentEmptyMethods
InternalizeプロパティMergeInternalize
KeyContainerプロパティKeyContainerName
KeyFileプロパティKeyOriginatorFile
KeyPwdプロパティSigningCertPassword
LicenseプロパティBabelLicense
LogFileプロパティBabelLogFile
MakeProjectプロパティMakeBabelProjectFile
MapInFiles項目@(MapInFile)
MapOutFileプロパティBabelMapOutFile
MergeAssemblies項目@(MergeAssembly)
ModuleInitializerプロパティModuleInitializer
ModuleInitializerTargetプロパティModuleInitializerTarget
ModuleVersionIdプロパティModuleVersionId
MsilEncryptionプロパティMsilEncryption
NameLengthプロパティNameLength
NamePrefixプロパティNamePrefix
NoConfigurationプロパティNoConfiguration
NoWarningsプロパティBabelWarningsToIgnore
ObfuscateEventsプロパティObfuscateEvents
ObfuscateFieldsプロパティObfuscateFields
ObfuscateMethodsプロパティObfuscateMethods
ObfuscateParametersプロパティObfuscateParameters
ObfuscatePropertiesプロパティObfuscateProperties
ObfuscateTypesプロパティObfuscateTypes
ObfuscateXamlプロパティObfuscateXaml
OutputFileプロパティBabelOutputFile
OverloadedRenamingプロパティOverloadedRenaming
PdbFileプロパティPdbFile
PdbPwdプロパティPdbPwd
Plugins項目@(BabelPlugin)
PluginsArgumentsプロパティPluginsArguments
ProvideCommandLineArgsプロパティBabelProvideCommandLineArgs
RandomSeedプロパティRandomSeed
References項目@(BabelTargetReferences)
RemoveFilesプロパティBabelRemoveFiles
ResourceEncryptionプロパティResourceEncryption
RulesFiles項目@(BabelRules)
SatelliteAssemblies項目@(SatelliteAssembly)
SealClassesプロパティSealClasses
SearchDirectories項目@(BabelSearchDirectories)
SearchSatelliteAssembliesプロパティSearchSatelliteAssemblies
ShowLogoプロパティShowLogo
ShowStatisticsプロパティShowStatistics
SingleFileプロパティPublishSingleFile(SDK の標準プロパティ)
SkipFilesプロパティBabelSkipFiles
StatisticsFileプロパティStatisticsFile
StringEncryptionプロパティStringEncryption
SuppressIldasmプロパティSuppressIldasm
SuppressReflectionプロパティSuppressReflection
TakeFilesプロパティBabelTakeFiles
TamperingDetectionプロパティTamperingDetection
TargetAssemblyNameプロパティTargetAssemblyName
ToolExeプロパティBabelExe
ToolPathプロパティBabelPath
TraceプロパティTrace
TrustedBundle 12.0プロパティTrustedBundle
TrustedSigner 12.0プロパティTrustedSigner(複数のフィンガープリントを ; で区切って指定)
TrustedTeam 12.0プロパティTrustedTeam
UnicodeNormalizationプロパティUnicodeNormalization
UseプロパティUse
ValueEncryptionプロパティValueEncryption
VerboseLevelプロパティVerboseLevel
VirtualFunctionsプロパティVirtualFunctions
WarningsAsErrorsプロパティBabelWarningsAsErrors
WarningsAsInfosプロパティBabelWarningsAsInfos
XapCompressionLevelプロパティXapCompressionLevel
XmlDocFiles項目@(XmlDocumentationFile)
XmlRulesプロパティXmlRules

文字列暗号化アルゴリズムの設定

パッケージの StringEncryption プロパティは、コマンドラインの --stringencryption スイッチとまったく同じように、文字列暗号化を有効にし、アルゴリズムを選択します。指定できる値は xor、hash、stream、custom です(それぞれの説明は文字列暗号化を参照)。Boolean の true は既定のアルゴリズムで文字列暗号化を有効にし、アルゴリズム名を指定すると、文字列暗号化を有効にしたうえでそのアルゴリズムを選択します。

たとえば、STREAM アルゴリズム(文字列ごとの認証付き暗号化で、完全にマネージドコードで実装され、AOT、トリミング、FIPS に対応し、.NET Framework から .NET 10 まで、Android、iOS、MAUI を含めてサポート)で文字列を暗号化するには、プロジェクトファイルに次の内容を追加します。

<PropertyGroup> <StringEncryption>stream</StringEncryption> </PropertyGroup>

STREAM アルゴリズム Ultimate は、下位のエディションには含まれていません。下位のエディションでは、stream は既定のアルゴリズムにフォールバックします。

.NET の Android、iOS、MAUI プロジェクトでは、プラットフォームの相互運用レイヤーのために型名とメンバー名がそのまま残るように、文字列暗号化だけを適用する形で難読化を実行してください。

Last updated on