Best obfuscators for C# mobile apps

John 511 Reputation points
2022-02-07T00:24:00.023+00:00

I may have been confused among which of the following programming languages should I learn on my own: C#, C++, Java, JavaScript, CSS, and XML.

JavaScript, CSS, and XML are used for web authoring markup language purposes.

C# and Java - well - it is a bit of a tossup between those computer programming languages.

If I have enough money set aside, then I would want the following item:

Synology DiskStation DS110j, which enables users to use SFTP protocols for authoring their websites on their Synology NAS drives.

Now between the two programming languages, C# and Java, I need or want to know which of them have more security in data hiding.

Does Java provide data hiding through their distinct virtual machine?

What about C#'s? They may not be able to perform the same mechanisms as Java's, but it can be a better mobile app programming language.

Can anyone else provide me advice on how I should proceed?

My ultimate long-term goal is to create a downloadable album app which includes audio, text, and video files. In addition, I may need to obfuscate its source code from being reshared online, or to restrict it to one device only after users download it.

Regards,

JohnCTX

Developer technologies | .NET | Xamarin
Developer technologies | C#
Developer technologies | C#
An object-oriented and type-safe programming language that has its roots in the C family of languages and includes support for component-oriented programming.
0 comments No comments
{count} votes

2 answers

Sort by: Most helpful
  1. Sheeraz Ali 170 Reputation points
    2025-09-26T08:27:38.44+00:00

    Which to learn

    Pick C# if you want one codebase for Windows + Android + iOS (use .NET MAUI / Xamarin).

    Pick Kotlin if you want native Android (best Android ecosystem support).

    (If unsure: pick C# for cross-platform reuse; pick Kotlin for Android-first.)

    Security / “data hiding” — reality

    Both languages compile to intermediate code (Java→JVM bytecode / Kotlin→dex, C#→IL).

    Neither prevents decompilation. Use obfuscation + server-side checks to raise the bar.

    Essential protections to implement

    Obfuscate code

    Android: R8 (free) or DexGuard (paid).

    .NET: ConfuserEx (open) or Dotfuscator (commercial).

    License + device binding

    Device fingerprint → ask your server for a signed license token (JWT-like).

    App verifies token signature; token can be time-limited or bound to device ID.

    Store secrets in Android Keystore / iOS Keychain.

    Protect media

    Store media encrypted (AES). Decrypt only at playback with keys delivered per-license or derived per device.

    Prefer streaming encrypted content for strongest control.

    Anti-tamper basics

    Root/jailbreak detection, runtime integrity checks, fail-safe on signature/verification failure.

    Tradeoffs (one sentence each)

    Obfuscation + device-locked licenses deters casual pirates but won’t stop a determined reverse-engineer.

    Moving critical logic/server checks off-device (server-side licensing/streaming) gives much stronger protection.

    0 comments No comments

  2. Bruce (SqlWork.com) 81,191 Reputation points Volunteer Moderator
    2025-09-26T16:30:23.41+00:00

    for Obfuscation is overrated for mobile apps. but tools exist for both java and c#.

    the App Stores control only downloading purchased applications. you will need to follow their rules.

    not sure what a NAS server has to do with the issue.

    your application will require deep integration with the native sdks and may be difficult with a cross platform tool. if you are only looking at android, then use Kotlin. If IOS only, then Swift. if you plan on both then a cross platform tool like Maui might be a good choice, but will still require learning both native toolkits, and wrapping native code.

    0 comments No comments

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.