Skip to Content
New release 12 available 🎉

Run Results

After a run, Babel Desktop scores the protection of each target and keeps the statistics the engine collected, so you can check that the run applied what you expected.

Obfuscation Score

After a completed run, the card of each target shows an obfuscation score from 0 to 100, a quick check that the run applied the protections you expected. Rest the pointer on the target to open the card.

Card of the target BubbleBurst.exe after a run: obfuscation score 92 of 100 graded Strong, with the bars Renaming 26 of 30, Control Flow 25 of 25, String Encryption 15 of 15, Code protection 11 of 15 and Anti-analysis 15 of 15, the time of the last run, the run order Flow 1 step 1, 4 merged dependencies and the path of the input fileCard of the target BubbleBurst.exe after a run: obfuscation score 92 of 100 graded Strong, with the bars Renaming 26 of 30, Control Flow 25 of 25, String Encryption 15 of 15, Code protection 11 of 15 and Anti-analysis 15 of 15, the time of the last run, the run order Flow 1 step 1, 4 merged dependencies and the path of the input fileCard of the target BubbleBurst.exe after a run: obfuscation score 92 of 100 graded Strong, with the bars Renaming 26 of 30, Control Flow 25 of 25, String Encryption 15 of 15, Code protection 11 of 15 and Anti-analysis 15 of 15, the time of the last run, the run order Flow 1 step 1, 4 merged dependencies and the path of the input file

The obfuscation score of a target that merges four assemblies

The score adds the points of five protection layers. Each bar shows the points a layer earned out of its maximum, so a low score tells you which layer is missing.

LayerPointsEarned by
Renaming30The share of the eligible symbols that were renamed
Control Flow25The share of the methods that were scrambled. Methods without branches are left alone, so half of the methods is enough for all the points
String Encryption15Encrypted strings
Code protection15MSIL encryption (7), dynamic proxy calls (4) and value encryption (4)
Anti-analysis15Tampering detection, debugging protection and ILDASM suppression, 5 points each

The score is graded Weak below 35, Fair from 35, Good from 60 and Strong from 80. It comes from the statistics of the last completed run of the project. Assemblies merged into a target count towards its score and show none of their own. A target that has not run yet shows no score.

The score counts the protections a run applied and says nothing about how long the result resists a given tool. A lower score can be the right one: a library with a public API keeps its public names, so it earns fewer renaming points.

Protection Statistics

After a run, Results at the bottom left of the canvas, or the Run results button of the grid toolbar, opens the protection statistics. Choose a run from the history, an obfuscated assembly and a report:

ReportContent
RenamingRenamed and total types, methods, fields, properties and events, with a coverage chart
Control FlowScrambled methods, inserted branch instructions and iterations, with a treemap by namespace and type and, when full statistics are collected, the cyclomatic complexity before and after the transformation
String EncryptionThe encryption algorithm and the encrypted strings by method
Code EncryptionThe encrypted methods by namespace and type
Dynamic ProxyThe proxied calls and delegate types by target method
OptimizationsDead code removal and optimization counters
Execution TimeThe duration of each engine phase

You can search and sort the tables, and drill down in the treemaps from namespace to type. Show output, Show engine log and Show statistics data open the output folder, the complete engine log and the raw statistics file of the run. Babel Desktop keeps the results of the last 30 runs.

Protection statistics on the Renaming tab: 540 of 630 symbols renamed (85.71 percent), a radar chart of the coverage by symbol category and symbol count bars, the run and assembly pickers and the Show output, Show engine log and Show statistics data buttonsProtection statistics on the Renaming tab: 540 of 630 symbols renamed (85.71 percent), a radar chart of the coverage by symbol category and symbol count bars, the run and assembly pickers and the Show output, Show engine log and Show statistics data buttonsProtection statistics on the Renaming tab: 540 of 630 symbols renamed (85.71 percent), a radar chart of the coverage by symbol category and symbol count bars, the run and assembly pickers and the Show output, Show engine log and Show statistics data buttons

Renaming statistics

Protection statistics on the Control Flow tab: 234 scrambled methods, 28,990 branch instructions and 5 iterations, and a treemap of the transformed methods by namespace, from BubbleBurst.ViewModel with 58 methods to Thriple.Easing with 8Protection statistics on the Control Flow tab: 234 scrambled methods, 28,990 branch instructions and 5 iterations, and a treemap of the transformed methods by namespace, from BubbleBurst.ViewModel with 58 methods to Thriple.Easing with 8Protection statistics on the Control Flow tab: 234 scrambled methods, 28,990 branch instructions and 5 iterations, and a treemap of the transformed methods by namespace, from BubbleBurst.ViewModel with 58 methods to Thriple.Easing with 8

Control Flow statistics

The statistics files contain original symbol names and string values. Keep them, like the XML map files, away from the distributed application.

Last updated on