mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-29 22:43:11 +00:00
152 lines
7.3 KiB
Markdown
152 lines
7.3 KiB
Markdown
# Frida Tutorial 3
|
||
|
||
<details>
|
||
|
||
<summary><strong>HackTricks in </strong><a href="https://twitter.com/carlospolopm"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch</strong></a> <strong>Wed - 18.30(UTC) 🎙️</strong> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||
|
||
* Do you work in a **cybersecurity company**? Do you want to see your **company advertised in HackTricks**? or do you want to have access to the **latest version of the PEASS or download HackTricks in PDF**? Check the [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||
* Discover [**The PEASS Family**](https://opensea.io/collection/the-peass-family), our collection of exclusive [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||
* Get the [**official PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||
* **Join the** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** me on **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||
* **Share your hacking tricks by submitting PRs to the [hacktricks repo](https://github.com/carlospolop/hacktricks) and [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||
|
||
</details>
|
||
|
||
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FwdlXOpyZOVGNzyhOiiFK%2Fimage%20(1).png?alt=media&token=13f4d279-7d3f-47ce-a68e-35f9a906973f" alt=""><figcaption></figcaption></figure>
|
||
|
||
If you are interested in **hacking carer** and hack the unhackable - **we are hiring!** (_fluent polish written and spoken required_).
|
||
|
||
{% embed url="https://www.stmcyber.com/careers" %}
|
||
|
||
\
|
||
|
||
|
||
****
|
||
|
||
**From**: [https://joshspicer.com/android-frida-1](https://joshspicer.com/android-frida-1)\
|
||
**APK**: [https://github.com/OWASP/owasp-mstg/blob/master/Crackmes/Android/Level\_01/UnCrackable-Level1.apk](https://github.com/OWASP/owasp-mstg/blob/master/Crackmes/Android/Level\_01/UnCrackable-Level1.apk)
|
||
|
||
## Solution 1
|
||
|
||
Based in [https://joshspicer.com/android-frida-1](https://joshspicer.com/android-frida-1)
|
||
|
||
**Hook the \_exit()**\_ function and **decrypt function** so it print the flag in frida console when you press verify:
|
||
|
||
```javascript
|
||
Java.perform(function () {
|
||
send("Starting hooks OWASP uncrackable1...");
|
||
|
||
function getString(data){
|
||
var ret = "";
|
||
for (var i=0; i < data.length; i++){
|
||
ret += "#" + data[i].toString();
|
||
}
|
||
return ret
|
||
}
|
||
|
||
var aes_decrypt = Java.use("sg.vantagepoint.a.a");
|
||
aes_decrypt.a.overload("[B","[B").implementation = function(var_0,var_1) {
|
||
send("sg.vantagepoint.a.a.a([B[B)[B doFinal(enc) // AES/ECB/PKCS7Padding");
|
||
send("Key : " + getString(var_0));
|
||
send("Encrypted : " + getString(var_1));
|
||
var ret = this.a.overload("[B","[B").call(this,var_0,var_1);
|
||
send("Decrypted : " + getString(ret));
|
||
|
||
var flag = "";
|
||
for (var i=0; i < ret.length; i++){
|
||
flag += String.fromCharCode(ret[i]);
|
||
}
|
||
send("Decrypted flag: " + flag);
|
||
return ret; //[B
|
||
};
|
||
|
||
var sysexit = Java.use("java.lang.System");
|
||
sysexit.exit.overload("int").implementation = function(var_0) {
|
||
send("java.lang.System.exit(I)V // We avoid exiting the application :)");
|
||
};
|
||
|
||
send("Hooks installed.");
|
||
});
|
||
```
|
||
|
||
## Solution 2
|
||
|
||
Based in [https://joshspicer.com/android-frida-1](https://joshspicer.com/android-frida-1)
|
||
|
||
**Hook rootchecks** and decrypt function so it print the flag in frida console when you press verify:
|
||
|
||
```javascript
|
||
Java.perform(function () {
|
||
send("Starting hooks OWASP uncrackable1...");
|
||
|
||
function getString(data){
|
||
var ret = "";
|
||
for (var i=0; i < data.length; i++){
|
||
ret += "#" + data[i].toString();
|
||
}
|
||
return ret
|
||
}
|
||
|
||
var aes_decrypt = Java.use("sg.vantagepoint.a.a");
|
||
aes_decrypt.a.overload("[B","[B").implementation = function(var_0,var_1) {
|
||
send("sg.vantagepoint.a.a.a([B[B)[B doFinal(enc) // AES/ECB/PKCS7Padding");
|
||
send("Key : " + getString(var_0));
|
||
send("Encrypted : " + getString(var_1));
|
||
var ret = this.a.overload("[B","[B").call(this,var_0,var_1);
|
||
send("Decrypted : " + getString(ret));
|
||
|
||
var flag = "";
|
||
for (var i=0; i < ret.length; i++){
|
||
flag += String.fromCharCode(ret[i]);
|
||
}
|
||
send("Decrypted flag: " + flag);
|
||
return ret; //[B
|
||
};
|
||
|
||
var rootcheck1 = Java.use("sg.vantagepoint.a.c");
|
||
rootcheck1.a.overload().implementation = function() {
|
||
send("sg.vantagepoint.a.c.a()Z Root check 1 HIT! su.exists()");
|
||
return false;
|
||
};
|
||
|
||
var rootcheck2 = Java.use("sg.vantagepoint.a.c");
|
||
rootcheck2.b.overload().implementation = function() {
|
||
send("sg.vantagepoint.a.c.b()Z Root check 2 HIT! test-keys");
|
||
return false;
|
||
};
|
||
|
||
var rootcheck3 = Java.use("sg.vantagepoint.a.c");
|
||
rootcheck3.c.overload().implementation = function() {
|
||
send("sg.vantagepoint.a.c.c()Z Root check 3 HIT! Root packages");
|
||
return false;
|
||
};
|
||
|
||
var debugcheck = Java.use("sg.vantagepoint.a.b");
|
||
debugcheck.a.overload("android.content.Context").implementation = function(var_0) {
|
||
send("sg.vantagepoint.a.b.a(Landroid/content/Context;)Z Debug check HIT! ");
|
||
return false;
|
||
};
|
||
|
||
send("Hooks installed.");
|
||
});
|
||
```
|
||
|
||
|
||
|
||
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FwdlXOpyZOVGNzyhOiiFK%2Fimage%20(1).png?alt=media&token=13f4d279-7d3f-47ce-a68e-35f9a906973f" alt=""><figcaption></figcaption></figure>
|
||
|
||
If you are interested in **hacking carer** and hack the unhackable - **we are hiring!** (_fluent polish written and spoken required_).
|
||
|
||
{% embed url="https://www.stmcyber.com/careers" %}
|
||
|
||
<details>
|
||
|
||
<summary><strong>HackTricks in </strong><a href="https://twitter.com/carlospolopm"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch</strong></a> <strong>Wed - 18.30(UTC) 🎙️</strong> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||
|
||
* Do you work in a **cybersecurity company**? Do you want to see your **company advertised in HackTricks**? or do you want to have access to the **latest version of the PEASS or download HackTricks in PDF**? Check the [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||
* Discover [**The PEASS Family**](https://opensea.io/collection/the-peass-family), our collection of exclusive [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||
* Get the [**official PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||
* **Join the** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** me on **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||
* **Share your hacking tricks by submitting PRs to the [hacktricks repo](https://github.com/carlospolop/hacktricks) and [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
||
|
||
</details>
|