не могу найти код классов в то время как обратный инжиниринг - PullRequest
0 голосов
/ 05 октября 2019

Я написал простое приложение для обнаружения корней с использованием платформы Xamarin в Visual Studio 2019. Теперь я хочу перепроектировать выходной apk для академических целей, чтобы обойти механизм обнаружения корней. для этого я конвертировал файл classes.dex в jar и использовал jd-gui для чтения кода. но я не могу найти код, который я написал для обнаружения корня где-нибудь в файлах. Есть ли что-то еще, что я должен был сделать для достижения этой цели ?! чего мне не хватает ?! Вот код mainactivity.cs:

    using Android.App;
using Android.OS;
using Android.Support.V7.App;
using Android.Runtime;
using Android.Widget;

namespace RootDetection
{
    [Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true)]
    public class MainActivity : AppCompatActivity
    {
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.activity_main);
            Button button = FindViewById<Button>(Resource.Id.button1);
            bool root = RootCheck.IsRoot();
            button.Click += delegate
            {
                if (root)
                    Toast.MakeText(Application.Context, "The Device is Rooted!", ToastLength.Long).Show();
                else
                    Toast.MakeText(Application.Context, "The Device is not Rooted.", ToastLength.Long).Show();
            };
        }
        public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults)
        {
            Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);

            base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
        }
    }
}

, а вот код класса RootCheck:

    using System;
using Java.Lang;
using Process = Java.Lang.Process;
using System.Collections.Generic;

namespace RootDetection
{
    public static class RootCheck
    {
        public static bool IsRoot()
        {
            bool retval = false;
            Process suProcess;
            try
            {
                suProcess = Runtime.GetRuntime().Exec("su");
                var os = new Java.IO.BufferedWriter(new Java.IO.OutputStreamWriter(suProcess.OutputStream));
                var osRes = new Java.IO.BufferedReader(new Java.IO.InputStreamReader(suProcess.InputStream));
                if (null != os && null != osRes)
                {
                    os.Write("id\n");
                    os.Flush();
                    string currUid = osRes.ReadLine();
                    bool exitSu = false;
                    if (null == currUid)
                    {
                        retval = false;
                        exitSu = false;
                        Console.WriteLine("Can't get root access or denied by user");
                    }
                    else if (true == currUid.Contains("uid=0"))
                    {
                        retval = true;
                        exitSu = true;
                        Console.WriteLine("Root access granted");
                    }
                    else
                    {
                        retval = false;
                        exitSu = true;
                        Console.WriteLine("Root access rejected: " + currUid);
                    }

                    if (exitSu)
                    {
                        os.Write("exit\n");
                        os.Flush();
                    }
                }
            }
            catch (Java.Lang.Exception e)
            {
                retval = false;
                Console.WriteLine("Root access rejected [" + e.Class.Name + "] : " + e.Message);
            }

            return retval;
        }
    }
}

Большое спасибо.

...