{"id":2233,"date":"2023-06-13T09:38:52","date_gmt":"2023-06-13T07:38:52","guid":{"rendered":"https:\/\/security.humanativaspa.it\/?p=2233"},"modified":"2025-09-15T13:38:19","modified_gmt":"2025-09-15T13:38:19","slug":"pentesting-xamarin-android-apps-dlls-and-root-check-bypass","status":"publish","type":"post","link":"https:\/\/hnsecurity.it\/it\/blog\/pentesting-xamarin-android-apps-dlls-and-root-check-bypass\/","title":{"rendered":"Pentesting Xamarin Android apps: DLLs and root check bypass"},"content":{"rendered":"<p>In this article, I\u2019ll show how to detect and bypass some basic security checks in the application&#8217;s DLLs, such as the root check, to be able to start pentesting an android mobile application written in Xamarin.<\/p>\n<h2>Backstory<\/h2>\n<p>I was not expecting Xamarin. I&#8217;m quite new to the mobile application pentesting world and it was a sunny bright day when I decided to pick an app from a bug bounty program thinking &#8220;this app looks like a good candidate to flex my new skills&#8221;. Turned out it was quite different from my previous experiences. Not so sunny anymore.<\/p>\n<p><img decoding=\"async\" class=\"r48jcc pT0Scc iPVvYb\" src=\"https:\/\/e0.pxfuel.com\/wallpapers\/919\/642\/desktop-wallpaper-feels-bad-man-sad-frog-sad-meme.jpg\" alt=\"Feels Bad Man \/ Sad Frog, Sad Meme HD wallpaper | Pxfuel\" aria-hidden=\"false\" \/><\/p>\n<p>There were a few articles online on Xamarin app pentesting but none seemed to tackle all the complexities I had faced from start to end. So here I am, hopefully helping someone who just got Xamarined in the face.<\/p>\n<h2>Unpacking and decoding the apk<\/h2>\n<p>Nothing special here, just preparing the field by unpacking and decoding the apk. I used <a href=\"https:\/\/github.com\/iBotPeaches\/Apktool\">Apktool<\/a>:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-linenumbers=\"false\">$ java -jar apktool_2.6.1.jar d -o \/&lt;path for output&gt;\/apktoolOut \u00a0\/&lt;path to apk&gt;\/XamarinApplication.apk<\/pre>\n<h2>Discovery<\/h2>\n<p>My starting point in this case was an error message that the application displayed after recognizing I was using a rooted device. Searching for strings is usually a very quick way to find the relevant code behind a specific function. However, pay attention that your search includes also archives, binaries and such. Just so, by searching the error string returned by the root check, I discovered that the root check functionality I was searching for was inside a binary file called assemblies.blob.<\/p>\n<p>With a bit of googling I learned that this file contains the DLLs used by the application and, as it turned out, this particular application had actually most of its security logic implemented in these DLLs.<\/p>\n<h2>Unpacking the assemblies.blob<\/h2>\n<p>To unpack the assemblies.blob I tried a few different tools but settled for <a href=\"https:\/\/github.com\/jakev\/pyxamstore\">pyxamstore<\/a> because it also allowed to repack the blob after tampering with the DLLs. This tool must be launched on the folder containing both the assemblies.blob and the assemblies.manifest files:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-linenumbers=\"false\">$ pyxamstore unpack -d apktoolOut\/unknown\/assemblies\/<\/pre>\n<p>As output this tool creates an assemblies.json, which will be needed for repacking, and a folder named \u201cout\u201d containing all the DLLs.<\/p>\n<p>Now, searching again for the error string I could locate the exact DLL that contained it.<\/p>\n<h2>Tampering the DLL<\/h2>\n<p>To decompile, edit and recompile the DLL I used <a href=\"https:\/\/github.com\/dnSpy\/dnSpy\">dnSpy<\/a>. Turned out it was quite easy to bypass the root check. Starting from my error string I eventually found a class named IsJailBroken(). All I had to do was replace all code with a &#8220;return false&#8221;.<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-2234\" src=\"https:\/\/hnsecurity.it\/wp-content\/uploads\/2023\/05\/Image-9-1.png\" alt=\"\" width=\"915\" height=\"461\" srcset=\"https:\/\/hnsecurity.it\/wp-content\/uploads\/2023\/05\/Image-9-1.png 915w, https:\/\/hnsecurity.it\/wp-content\/uploads\/2023\/05\/Image-9-1-300x151.png 300w, https:\/\/hnsecurity.it\/wp-content\/uploads\/2023\/05\/Image-9-1-768x387.png 768w, https:\/\/hnsecurity.it\/wp-content\/uploads\/2023\/05\/Image-9-1-350x176.png 350w\" sizes=\"(max-width: 915px) 100vw, 915px\" \/><\/p>\n<p>To edit the code simply right click on it and select \u201cEdit Class\u201d then hit \u201cCompile\u201d.<\/p>\n<p>When done with all the code edits go to File &gt; Save Module. I left the default settings with Module Type: DLL and overwrote the original file.<\/p>\n<p>Now the annoying part, making it all work again.<\/p>\n<h2>Repacking assemblies.blob<\/h2>\n<p>I repacked the blob with pyxamstore, running it in the folder that had the assemblies.json and the \u201cout\u201d folder with the tampered DLL:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-linenumbers=\"false\">$ pyxamstore pack<\/pre>\n<p>In the folder generated by Apktool I replaced the original assemblies.blob and assemblies.manifest files with those generated by the pyxamstore pack command. In my case they were in a folder named \/unknown\/assemblies\/.<\/p>\n<h2>Repacking the apk<\/h2>\n<p>I repacked the application with Apktool as follows:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-linenumbers=\"false\">$ java -jar apktool_2.7.0.jar b -o \/&lt;path to repacked output&gt;\/XamarinApplication.apk \/&lt;path to Apktool generated folder&gt;\/apktoolOut\r\n<\/pre>\n<h2>Resigning the apk<\/h2>\n<p>Finally, the apk needs to be signed and reinstalled on the phone. I had some trouble with the whole manual signing, zip aligning, etc. process but managed to make it work very easily by using the tool <a href=\"https:\/\/github.com\/patrickfav\/uber-apk-signer\">uber-apk-signer<\/a>:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-linenumbers=\"false\">$ java -jar uber-apk-signer-1.3.0.jar --apks \/&lt;path to repacked apk&gt;\/XamarinApplication.apk<\/pre>\n<p>In my case I had the additional complexity that the application was actually an app bundle divided into 5 apks, that looked something like this:<\/p>\n<ul>\n<li>XamarinApplication.apk<\/li>\n<li>split_config.arm64_v8a.apk<\/li>\n<li>split_config.en.apk<\/li>\n<li>split_config.it.apk<\/li>\n<li>split_config.xxhdpi.apk<\/li>\n<\/ul>\n<p>To be able to reinstall the application and make it work, all 5 apks had to be resigned.<\/p>\n<h2>Installing the apk<\/h2>\n<p>To install the repacked application I had to create an install session via <a href=\"https:\/\/developer.android.com\/tools\/adb\">adb<\/a>. First I had to verify the size of all the newly signed apks:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-linenumbers=\"false\">rosemary:\/sdcard\/Download # ls -l\r\n\r\ntotal 276713\r\n\r\n-rw-rw---- 1 root everybody\u00a0 31771075 2023-04-06 11:39 XamarinApplication-aligned-debugSigned.apk\r\n\r\n-rw-rw---- 1 root everybody 106548220 2023-04-06 17:45 split_config.arm64_v8a-aligned-debugSigned.apk\r\n\r\n-rw-rw---- 1 root everybody\u00a0\u00a0\u00a0\u00a0 57690 2023-04-06 17:45 split_config.en-aligned-debugSigned.apk\r\n\r\n-rw-rw---- 1 root everybody\u00a0\u00a0\u00a0\u00a0 33114 2023-04-06 17:46 split_config.it-aligned-debugSigned.apk\r\n\r\n-rw-rw---- 1 root everybody\u00a0\u00a0 3242770 2023-04-06 17:47 split_config.xxhdpi-aligned-debugSigned.apk<\/pre>\n<p>The sum of the sizes of all the apks is needed to create the installation session. In this case the total space needed was 31771075+106548220+57690+33114+3242770= 141652869, so from inside the adb shell I first created the install session:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-linenumbers=\"false\"># pm install-create -S 141652869<\/pre>\n<p>This command returned the session id. Next the following command was run for all 5 apks to install:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-linenumbers=\"false\"># pm install-write -S &lt;size of the apk&gt; &lt;session id&gt; &lt;index&gt; \/&lt;apk path&gt;\/&lt;apk name&gt;<\/pre>\n<p>So for example to install the first apk, XamarinApplication-aligned-debugSigned.apk:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-linenumbers=\"false\"># pm install-write -S 31771075 1164635543 0 \/sdcard\/Download\/XamarinApplication-aligned-debugSigned.apk<\/pre>\n<p>After all the apks were written in the session the installation could be finalized with the following command:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-linenumbers=\"false\"># pm install-commit &lt;session id&gt;<\/pre>\n<p>In my case the repacked application worked correctly and the root check was bypassed!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this article, I\u2019ll show how to detect and bypass some basic security checks in the application&#8217;s DLLs, such as [&hellip;]<\/p>\n","protected":false},"author":9,"featured_media":159963,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[91],"tags":[182,183,85,87,179,180,181],"class_list":["post-2233","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-articles","tag-pentest","tag-xamarin","tag-mobile","tag-reverse-engineering","tag-android","tag-assemblies","tag-dll"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>HN Security - Pentesting Xamarin Android apps: DLLs and root check bypass -<\/title>\n<meta name=\"description\" content=\"This article shows how to detect and bypass some basic security checks in the application&#039;s DLLs, such as the root check, when pentesting an android application written in Xamarin.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/hnsecurity.it\/it\/blog\/pentesting-xamarin-android-apps-dlls-and-root-check-bypass\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"HN Security - Pentesting Xamarin Android apps: DLLs and root check bypass -\" \/>\n<meta property=\"og:description\" content=\"This article shows how to detect and bypass some basic security checks in the application&#039;s DLLs, such as the root check, when pentesting an android application written in Xamarin.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/hnsecurity.it\/it\/blog\/pentesting-xamarin-android-apps-dlls-and-root-check-bypass\/\" \/>\n<meta property=\"og:site_name\" content=\"HN Security\" \/>\n<meta property=\"article:published_time\" content=\"2023-06-13T07:38:52+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-09-15T13:38:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/hnsecurity.it\/wp-content\/uploads\/2025\/09\/XAMARIN.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1600\" \/>\n\t<meta property=\"og:image:height\" content=\"836\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Ema Srdoc\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@hnsec\" \/>\n<meta name=\"twitter:site\" content=\"@hnsec\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ema Srdoc\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/blog\\\/pentesting-xamarin-android-apps-dlls-and-root-check-bypass\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/blog\\\/pentesting-xamarin-android-apps-dlls-and-root-check-bypass\\\/\"},\"author\":{\"name\":\"Ema Srdoc\",\"@id\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/#\\\/schema\\\/person\\\/c809fbdd2c70f06ab4734141c100bce4\"},\"headline\":\"Pentesting Xamarin Android apps: DLLs and root check bypass\",\"datePublished\":\"2023-06-13T07:38:52+00:00\",\"dateModified\":\"2025-09-15T13:38:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/blog\\\/pentesting-xamarin-android-apps-dlls-and-root-check-bypass\\\/\"},\"wordCount\":779,\"publisher\":{\"@id\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/blog\\\/pentesting-xamarin-android-apps-dlls-and-root-check-bypass\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/hnsecurity.it\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/XAMARIN.jpg\",\"keywords\":[\"pentest\",\"xamarin\",\"mobile\",\"reverse engineering\",\"android\",\"assemblies\",\"dll\"],\"articleSection\":[\"Articles\"],\"inLanguage\":\"it-IT\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/blog\\\/pentesting-xamarin-android-apps-dlls-and-root-check-bypass\\\/\",\"url\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/blog\\\/pentesting-xamarin-android-apps-dlls-and-root-check-bypass\\\/\",\"name\":\"HN Security - Pentesting Xamarin Android apps: DLLs and root check bypass -\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/blog\\\/pentesting-xamarin-android-apps-dlls-and-root-check-bypass\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/blog\\\/pentesting-xamarin-android-apps-dlls-and-root-check-bypass\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/hnsecurity.it\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/XAMARIN.jpg\",\"datePublished\":\"2023-06-13T07:38:52+00:00\",\"dateModified\":\"2025-09-15T13:38:19+00:00\",\"description\":\"This article shows how to detect and bypass some basic security checks in the application's DLLs, such as the root check, when pentesting an android application written in Xamarin.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/blog\\\/pentesting-xamarin-android-apps-dlls-and-root-check-bypass\\\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/hnsecurity.it\\\/it\\\/blog\\\/pentesting-xamarin-android-apps-dlls-and-root-check-bypass\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/blog\\\/pentesting-xamarin-android-apps-dlls-and-root-check-bypass\\\/#primaryimage\",\"url\":\"https:\\\/\\\/hnsecurity.it\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/XAMARIN.jpg\",\"contentUrl\":\"https:\\\/\\\/hnsecurity.it\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/XAMARIN.jpg\",\"width\":1600,\"height\":836,\"caption\":\"Xamarin logo\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/blog\\\/pentesting-xamarin-android-apps-dlls-and-root-check-bypass\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Pentesting Xamarin Android apps: DLLs and root check bypass\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/#website\",\"url\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/\",\"name\":\"HN Security\",\"description\":\"Offensive Security Specialists\",\"publisher\":{\"@id\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/#organization\",\"name\":\"HN Security\",\"url\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/hnsecurity.it\\\/wp-content\\\/uploads\\\/2026\\\/01\\\/hn-libellula.jpg\",\"contentUrl\":\"https:\\\/\\\/hnsecurity.it\\\/wp-content\\\/uploads\\\/2026\\\/01\\\/hn-libellula.jpg\",\"width\":696,\"height\":696,\"caption\":\"HN Security\"},\"image\":{\"@id\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/x.com\\\/hnsec\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/hnsecurity\\\/\",\"https:\\\/\\\/github.com\\\/hnsecurity\",\"https:\\\/\\\/infosec.exchange\\\/@hnsec\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/#\\\/schema\\\/person\\\/c809fbdd2c70f06ab4734141c100bce4\",\"name\":\"Ema Srdoc\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e58803e1fbf913b6cee10213206443c97b7571e6cd25f91c2f9d0ba910d6cb87?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e58803e1fbf913b6cee10213206443c97b7571e6cd25f91c2f9d0ba910d6cb87?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e58803e1fbf913b6cee10213206443c97b7571e6cd25f91c2f9d0ba910d6cb87?s=96&d=mm&r=g\",\"caption\":\"Ema Srdoc\"},\"url\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/blog\\\/author\\\/ema-srdoc\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"HN Security - Pentesting Xamarin Android apps: DLLs and root check bypass -","description":"This article shows how to detect and bypass some basic security checks in the application's DLLs, such as the root check, when pentesting an android application written in Xamarin.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/hnsecurity.it\/it\/blog\/pentesting-xamarin-android-apps-dlls-and-root-check-bypass\/","og_locale":"it_IT","og_type":"article","og_title":"HN Security - Pentesting Xamarin Android apps: DLLs and root check bypass -","og_description":"This article shows how to detect and bypass some basic security checks in the application's DLLs, such as the root check, when pentesting an android application written in Xamarin.","og_url":"https:\/\/hnsecurity.it\/it\/blog\/pentesting-xamarin-android-apps-dlls-and-root-check-bypass\/","og_site_name":"HN Security","article_published_time":"2023-06-13T07:38:52+00:00","article_modified_time":"2025-09-15T13:38:19+00:00","og_image":[{"width":1600,"height":836,"url":"https:\/\/hnsecurity.it\/wp-content\/uploads\/2025\/09\/XAMARIN.jpg","type":"image\/jpeg"}],"author":"Ema Srdoc","twitter_card":"summary_large_image","twitter_creator":"@hnsec","twitter_site":"@hnsec","twitter_misc":{"Scritto da":"Ema Srdoc","Tempo di lettura stimato":"5 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/hnsecurity.it\/it\/blog\/pentesting-xamarin-android-apps-dlls-and-root-check-bypass\/#article","isPartOf":{"@id":"https:\/\/hnsecurity.it\/it\/blog\/pentesting-xamarin-android-apps-dlls-and-root-check-bypass\/"},"author":{"name":"Ema Srdoc","@id":"https:\/\/hnsecurity.it\/it\/#\/schema\/person\/c809fbdd2c70f06ab4734141c100bce4"},"headline":"Pentesting Xamarin Android apps: DLLs and root check bypass","datePublished":"2023-06-13T07:38:52+00:00","dateModified":"2025-09-15T13:38:19+00:00","mainEntityOfPage":{"@id":"https:\/\/hnsecurity.it\/it\/blog\/pentesting-xamarin-android-apps-dlls-and-root-check-bypass\/"},"wordCount":779,"publisher":{"@id":"https:\/\/hnsecurity.it\/it\/#organization"},"image":{"@id":"https:\/\/hnsecurity.it\/it\/blog\/pentesting-xamarin-android-apps-dlls-and-root-check-bypass\/#primaryimage"},"thumbnailUrl":"https:\/\/hnsecurity.it\/wp-content\/uploads\/2025\/09\/XAMARIN.jpg","keywords":["pentest","xamarin","mobile","reverse engineering","android","assemblies","dll"],"articleSection":["Articles"],"inLanguage":"it-IT"},{"@type":"WebPage","@id":"https:\/\/hnsecurity.it\/it\/blog\/pentesting-xamarin-android-apps-dlls-and-root-check-bypass\/","url":"https:\/\/hnsecurity.it\/it\/blog\/pentesting-xamarin-android-apps-dlls-and-root-check-bypass\/","name":"HN Security - Pentesting Xamarin Android apps: DLLs and root check bypass -","isPartOf":{"@id":"https:\/\/hnsecurity.it\/it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/hnsecurity.it\/it\/blog\/pentesting-xamarin-android-apps-dlls-and-root-check-bypass\/#primaryimage"},"image":{"@id":"https:\/\/hnsecurity.it\/it\/blog\/pentesting-xamarin-android-apps-dlls-and-root-check-bypass\/#primaryimage"},"thumbnailUrl":"https:\/\/hnsecurity.it\/wp-content\/uploads\/2025\/09\/XAMARIN.jpg","datePublished":"2023-06-13T07:38:52+00:00","dateModified":"2025-09-15T13:38:19+00:00","description":"This article shows how to detect and bypass some basic security checks in the application's DLLs, such as the root check, when pentesting an android application written in Xamarin.","breadcrumb":{"@id":"https:\/\/hnsecurity.it\/it\/blog\/pentesting-xamarin-android-apps-dlls-and-root-check-bypass\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/hnsecurity.it\/it\/blog\/pentesting-xamarin-android-apps-dlls-and-root-check-bypass\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/hnsecurity.it\/it\/blog\/pentesting-xamarin-android-apps-dlls-and-root-check-bypass\/#primaryimage","url":"https:\/\/hnsecurity.it\/wp-content\/uploads\/2025\/09\/XAMARIN.jpg","contentUrl":"https:\/\/hnsecurity.it\/wp-content\/uploads\/2025\/09\/XAMARIN.jpg","width":1600,"height":836,"caption":"Xamarin logo"},{"@type":"BreadcrumbList","@id":"https:\/\/hnsecurity.it\/it\/blog\/pentesting-xamarin-android-apps-dlls-and-root-check-bypass\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/hnsecurity.it\/it\/"},{"@type":"ListItem","position":2,"name":"Pentesting Xamarin Android apps: DLLs and root check bypass"}]},{"@type":"WebSite","@id":"https:\/\/hnsecurity.it\/it\/#website","url":"https:\/\/hnsecurity.it\/it\/","name":"HN Security","description":"Offensive Security Specialists","publisher":{"@id":"https:\/\/hnsecurity.it\/it\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/hnsecurity.it\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/hnsecurity.it\/it\/#organization","name":"HN Security","url":"https:\/\/hnsecurity.it\/it\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/hnsecurity.it\/it\/#\/schema\/logo\/image\/","url":"https:\/\/hnsecurity.it\/wp-content\/uploads\/2026\/01\/hn-libellula.jpg","contentUrl":"https:\/\/hnsecurity.it\/wp-content\/uploads\/2026\/01\/hn-libellula.jpg","width":696,"height":696,"caption":"HN Security"},"image":{"@id":"https:\/\/hnsecurity.it\/it\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/hnsec","https:\/\/www.linkedin.com\/company\/hnsecurity\/","https:\/\/github.com\/hnsecurity","https:\/\/infosec.exchange\/@hnsec"]},{"@type":"Person","@id":"https:\/\/hnsecurity.it\/it\/#\/schema\/person\/c809fbdd2c70f06ab4734141c100bce4","name":"Ema Srdoc","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/secure.gravatar.com\/avatar\/e58803e1fbf913b6cee10213206443c97b7571e6cd25f91c2f9d0ba910d6cb87?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/e58803e1fbf913b6cee10213206443c97b7571e6cd25f91c2f9d0ba910d6cb87?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e58803e1fbf913b6cee10213206443c97b7571e6cd25f91c2f9d0ba910d6cb87?s=96&d=mm&r=g","caption":"Ema Srdoc"},"url":"https:\/\/hnsecurity.it\/it\/blog\/author\/ema-srdoc\/"}]}},"jetpack_featured_media_url":"https:\/\/hnsecurity.it\/wp-content\/uploads\/2025\/09\/XAMARIN.jpg","_links":{"self":[{"href":"https:\/\/hnsecurity.it\/it\/wp-json\/wp\/v2\/posts\/2233","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hnsecurity.it\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hnsecurity.it\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hnsecurity.it\/it\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/hnsecurity.it\/it\/wp-json\/wp\/v2\/comments?post=2233"}],"version-history":[{"count":1,"href":"https:\/\/hnsecurity.it\/it\/wp-json\/wp\/v2\/posts\/2233\/revisions"}],"predecessor-version":[{"id":160142,"href":"https:\/\/hnsecurity.it\/it\/wp-json\/wp\/v2\/posts\/2233\/revisions\/160142"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hnsecurity.it\/it\/wp-json\/wp\/v2\/media\/159963"}],"wp:attachment":[{"href":"https:\/\/hnsecurity.it\/it\/wp-json\/wp\/v2\/media?parent=2233"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hnsecurity.it\/it\/wp-json\/wp\/v2\/categories?post=2233"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hnsecurity.it\/it\/wp-json\/wp\/v2\/tags?post=2233"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}