{"id":16208085,"url":"https://github.com/am1goo/bloodseeker-unity","last_synced_at":"2025-08-13T23:10:10.972Z","repository":{"id":218269066,"uuid":"745506842","full_name":"am1goo/bloodseeker-unity","owner":"am1goo","description":"Easy-as-dumb toolkit to prevent any malicious injections in your Android app. Beware of cheaters!","archived":false,"fork":false,"pushed_at":"2024-04-13T13:10:17.000Z","size":2423,"stargazers_count":146,"open_issues_count":0,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-08-09T03:47:35.671Z","etag":null,"topics":["android","anticheat","apk","apk-parser","dex","malware-analysis","prevention","sdk","toolkit","unity"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/am1goo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-01-19T13:39:01.000Z","updated_at":"2025-08-08T10:32:20.000Z","dependencies_parsed_at":"2024-01-20T21:25:50.877Z","dependency_job_id":"61f15453-5ac5-4a81-80d8-93fdbd976250","html_url":"https://github.com/am1goo/bloodseeker-unity","commit_stats":null,"previous_names":["am1goo/bloodseeker-unity"],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/am1goo/bloodseeker-unity","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/am1goo%2Fbloodseeker-unity","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/am1goo%2Fbloodseeker-unity/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/am1goo%2Fbloodseeker-unity/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/am1goo%2Fbloodseeker-unity/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/am1goo","download_url":"https://codeload.github.com/am1goo/bloodseeker-unity/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/am1goo%2Fbloodseeker-unity/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270330595,"owners_count":24565816,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-13T02:00:09.904Z","response_time":66,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","anticheat","apk","apk-parser","dex","malware-analysis","prevention","sdk","toolkit","unity"],"created_at":"2024-10-10T10:15:20.869Z","updated_at":"2025-08-13T23:10:10.955Z","avatar_url":"https://github.com/am1goo.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca href=\"https://openupm.com/packages/com.am1goo.bloodseeker/\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/com.am1goo.bloodseeker?label=openupm\u0026amp;registry_uri=https://package.openupm.com\" /\u003e\u003c/a\u003e\n\n# Bloodseeker for Unity\nEasy-as-dumb toolkit to prevent any malicious injections in your `Android` apps \\\nBeware of cheaters!\n\n## Features\n- search of abnormal files, packages, libraries and even values in `AndroidManifest.xml`\n- apk or files checksum validation\n- delivery of information about newest threats to users from your own server (via secured and encrypted remote update)\n\n## What's inside?\n- .NET wrapper for Unity\n- [bloodseeker-android](https://github.com/am1goo/bloodseeker-android) implementation as `.aar` library\n\n#### Unity Plugin\n##### via Unity Package Manager\nThe latest version can be installed via [package manager](https://docs.unity3d.com/Manual/upm-ui-giturl.html) using following git URL: \\\n`https://github.com/am1goo/bloodseeker-unity.git#0.2.7`\n\n##### via OpenUPM\nThe latest version can be installed via using following URL: \\\nhttps://openupm.com/packages/com.am1goo.bloodseeker\n\n#### How to use\n```csharp\nusing BloodseekerSDK;\nusing BloodseekerSDK.Android;\n\n[SerializeField]\nprivate TextAsset _localUpdateFile;\n\nIEnumerator Start()\n{\n    var op = Bloodseeker\n    //create instance of Bloodseeker\n    .Create()\n    //use local encrypted and pre-configured file with actual trails\n    .SetLocalUpdateConfig(new LocalUpdateConfig\n    {\n        file = new TextAssetFile(_localUpdateFile),\n        secretKey = \"YourSecretKey\",\n    })\n    //or download and update trails from your remote server\n    .SetRemoteUpdateConfig(new RemoteUpdateConfig\n    {\n        //url where sdk have access to file with update\n        url = \"https://your.custom.domain/path/to/file.bmx\",\n        //secret key to decrypt (or \"unlock\") file\n        secretKey = \"YourSecretKey\",\n        //cache time to live (in seconds)\n        cacheTTL = 60,\n    })\n     //it will be converted to libSomeLibrary.so\n    .AddTrail(new LibraryTrail(\"SomeLibrary\"))\n    //any java class can be found here\n    .AddTrail(new ClassNameTrail(\"xyz.abc.CheatActivator\"))\n    //you can use package name instead of class name (but it's much slower)\n    .AddTrail(new PackageNameTrail(\"xyz.abc\"))\n    //any files in base apk can be found here\n    .AddTrail(new PathInApkTrail(\"META-INF/MANIFEST.MF\"))\n    //check node \"application/activity\" contains \"android:name\" with value \"com.unity3d.player.UnityPlayerActivity\"\n    .AddTrail(new AndroidManifestXmlTrail(AndroidManifestXmlTrail.Looker.UnityPlayerActivity()))\n    //check node \"application/provider\" contains \"android:name\" with value \"com.facebook.internal.FacebookInitProvider\"\n    .AddTrail(new AndroidManifestXmlTrail(new AndroidManifestXmlTrail.Looker(\n        nodes:      new string[] { \"application\", \"provider\" },\n        attribute:  \"android:name\",\n        value:      \"com.facebook.internal.FacebookInitProvider\"\n    )))\n    //start seeking anything in these trails\n    .SeekAsync();\n\n    yield return op;\n\n    var report = op.report;\n    switch (report.result)\n    {\n        case Report.Result.NotInitialized:\n            Debug.LogError(\"SDK not initialized\");\n            break;\n\n        case Report.Result.Found:\n            Debug.LogError($\"Found strange code: {string.Join(\";\", report.evidence)}\");\n            break;\n\n        case Report.Result.Ok:\n            Debug.Log(\"Everything okay, go ahead!\");\n            break;\n    }\n}\n```\n\n## What's next?\n- [ ] Redesign of `AndroidManifestXmlTrail` (more flexibility and functionality), serialization support\n\n## Requirements\n- Minimal SDK 19 (Android 4.4, KitKat)\n\n## Plugin supports\n- Perfectly works with [Beebyte Obfuscator](https://www.beebyte.co.uk/), but in some cases you should add `Bloodseeker.Runtime.dll` to array `Assemblies` in `ObfuscatorOptions.asset`\n\n## Tested in\n- Unity 2019.4.x\n- Unity 2020.3.x\n\n## Contribute\nContribution in any form is very welcome. Bugs, feature requests or feedback can be reported in form of Issues.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fam1goo%2Fbloodseeker-unity","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fam1goo%2Fbloodseeker-unity","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fam1goo%2Fbloodseeker-unity/lists"}