hacktricks/mobile-pentesting/android-app-pentesting/frida-tutorial/README.md

220 lines
13 KiB
Markdown
Raw Normal View History

# फ्रिडा ट्यूटोरियल
2022-04-28 16:01:33 +00:00
<details>
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
2022-04-28 16:01:33 +00:00
HackTricks का समर्थन करने के अन्य तरीके:
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live) पर **फॉलो** करें।
* **हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
2022-04-28 16:01:33 +00:00
2022-10-27 23:22:18 +00:00
</details>
2022-04-28 16:01:33 +00:00
<figure><img src="../../../.gitbook/assets/i3.png" alt=""><figcaption></figcaption></figure>
2022-04-28 16:01:33 +00:00
**बग बाउंटी टिप**: **साइन अप करें** Intigriti के लिए, एक प्रीमियम **बग बाउंटी प्लेटफॉर्म जो हैकर्स द्वारा बनाई गई है**! आज हमारे साथ शामिल हों [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks), और शुरू करें बाउंटी अप तक **$100,000** तक कमाना!
2022-04-28 16:01:33 +00:00
2022-10-27 23:22:18 +00:00
{% embed url="https://go.intigriti.com/hacktricks" %}
2022-04-28 16:01:33 +00:00
## स्थापना
**फ्रिडा टूल्स** स्थापित करें:
2020-09-09 15:07:39 +00:00
```bash
pip install frida-tools
pip install frida
```
**एंड्रॉइड में डाउनलोड और इंस्टॉल करें** फ्रिडा सर्वर ([नवीनतम रिलीज़ डाउनलोड करें](https://github.com/frida/frida/releases))।\
एक-लाइनर एडीबी को रूट मोड में पुनः आरंभ करने, इससे कनेक्ट करने, फ्रिडा-सर्वर अपलोड करने, एक्ज़ेक्यूशन अनुमतियाँ देने और बैकग्राउंड में चलाने के लिए:
2020-09-09 15:07:39 +00:00
```bash
2023-11-06 08:38:02 +00:00
adb root; adb connect localhost:6000; sleep 1; adb push frida-server /data/local/tmp/; adb shell "chmod 755 /data/local/tmp/frida-server"; adb shell "/data/local/tmp/frida-server &"
```
{% endcode %}
**जांचें** कि क्या यह **काम कर रहा है**:
2020-09-09 15:07:39 +00:00
```bash
frida-ps -U #List packages and processes
frida-ps -U | grep -i <part_of_the_package_name> #Get all the package name
```
## ट्यूटोरियल
2023-11-06 08:38:02 +00:00
### [ट्यूटोरियल 1](frida-tutorial-1.md)
**स्रोत**: [https://medium.com/infosec-adventures/introduction-to-frida-5a3f51595ca1](https://medium.com/infosec-adventures/introduction-to-frida-5a3f51595ca1)\
**APK**: [https://github.com/t0thkr1s/frida-demo/releases](https://github.com/t0thkr1s/frida-demo/releases)\
**स्रोत कोड**: [https://github.com/t0thkr1s/frida-demo](https://github.com/t0thkr1s/frida-demo)
**[इसे पढ़ने के लिए लिंक पर जाएं](frida-tutorial-1.md).**
2023-11-06 08:38:02 +00:00
### [ट्यूटोरियल 2](frida-tutorial-2.md)
**स्रोत**: [https://11x256.github.io/Frida-hooking-android-part-2/](https://11x256.github.io/Frida-hooking-android-part-2/) (भाग 2, 3 और 4)\
**APK और स्रोत कोड**: [https://github.com/11x256/frida-android-examples](https://github.com/11x256/frida-android-examples)
**[इसे पढ़ने के लिए लिंक पर जाएं.](frida-tutorial-2.md)**
2023-11-06 08:38:02 +00:00
### [ट्यूटोरियल 3](owaspuncrackable-1.md)
**स्रोत**: [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)
**[इसे पढ़ने के लिए लिंक पर जाएं](owaspuncrackable-1.md).**
**आप यहाँ अधिक शानदार फ्रिडा स्क्रिप्ट पा सकते हैं:** [**https://codeshare.frida.re/**](https://codeshare.frida.re)
## त्वरित उदाहरण
### कमांड लाइन से फ्रिडा को कॉल करना
```bash
frida-ps -U
#Basic frida hooking
frida -l disableRoot.js -f owasp.mstg.uncrackable1
#Hooking before starting the app
frida -U --no-pause -l disableRoot.js -f owasp.mstg.uncrackable1
#The --no-pause and -f options allow the app to be spawned automatically,
#frozen so that the instrumentation can occur, and the automatically
#continue execution with our modified code.
```
### मूल Python स्क्रिप्ट
```python
import frida, sys
jscode = open(sys.argv[0]).read()
process = frida.get_usb_device().attach('infosecadventures.fridademo')
script = process.create_script(jscode)
print('[ * ] Running Frida Demo application')
script.load()
sys.stdin.read()
```
### पैरामीटर बिना फ़ंक्शन हुक करना
कक्षा `sg.vantagepoint.a.c` के फ़ंक्शन `a()` को हुक करें
```javascript
Java.perform(function () {
; rootcheck1.a.overload().implementation = function() {
2023-11-06 08:38:02 +00:00
rootcheck1.a.overload().implementation = function() {
send("sg.vantagepoint.a.c.a()Z Root check 1 HIT! su.exists()");
return false;
};
});
```
### Translate to Hindi:
### Hook java `exit()`
### जावा `exit()` को हुक करें
```javascript
var sysexit = Java.use("java.lang.System");
2023-11-06 08:38:02 +00:00
sysexit.exit.overload("int").implementation = function(var_0) {
send("java.lang.System.exit(I)V // We avoid exiting the application :)");
};
```
### Translate to Hindi:
### Hook MainActivity `.onStart()` & `.onCreate()`
एमेन एक्टिविटी के `.onStart()` और `.onCreate()` को हुक करें
```javascript
2023-11-06 08:38:02 +00:00
var mainactivity = Java.use("sg.vantagepoint.uncrackable1.MainActivity");
mainactivity.onStart.overload().implementation = function() {
send("MainActivity.onStart() HIT!!!");
var ret = this.onStart.overload().call(this);
};
mainactivity.onCreate.overload("android.os.Bundle").implementation = function(var_0) {
send("MainActivity.onCreate() HIT!!!");
var ret = this.onCreate.overload("android.os.Bundle").call(this,var_0);
};
```
### Frida Tutorial: Hook android `.onCreate()`
एंड्रॉयड `.onCreate()` को हुक करें
2023-11-06 08:38:02 +00:00
```javascript
var activity = Java.use("android.app.Activity");
activity.onCreate.overload("android.os.Bundle").implementation = function(var_0) {
send("Activity HIT!!!");
var ret = this.onCreate.overload("android.os.Bundle").call(this,var_0);
};
```
### पैरामीटर के साथ फंक्शन को हुक करना और मान प्राप्त करना
एक डिक्रिप्शन फंक्शन को हुक करना। इनपुट प्रिंट करें, मूल फंक्शन को कॉल करें, इनपुट को डिक्रिप्ट करें और अंत में, प्लेन डेटा प्रिंट करें:
2023-11-06 08:38:02 +00:00
```javascript
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 : " + ret);
var flag = "";
for (var i=0; i < ret.length; i++){
flag += String.fromCharCode(ret[i]);
}
send("Decrypted flag: " + flag);
return ret; //[B
};
```
### फ़ंक्शन को हुक करना और हमारे इनपुट को उसमें कॉल करना
एक फ़ंक्शन को हुक करें जो एक स्ट्रिंग प्राप्त करता है और उसे दूसरी स्ट्रिंग के साथ कॉल करें ([यहाँ से](https://11x256.github.io/Frida-hooking-android-part-2/))
```javascript
var string_class = Java.use("java.lang.String"); // get a JS wrapper for java's String class
my_class.fun.overload("java.lang.String").implementation = function(x){ //hooking the new function
2023-11-06 08:38:02 +00:00
var my_string = string_class.$new("My TeSt String#####"); //creating a new String by using `new` operator
console.log("Original arg: " +x );
var ret = this.fun(my_string); // calling the original function with the new String, and putting its return value in ret variable
console.log("Return value: "+ret);
return ret;
};
```
### किसी क्लास के पहले से बनाए गए ऑब्ज
```javascript
Java.choose("com.example.a11x256.frida_test.my_activity" , {
2023-11-06 08:38:02 +00:00
onMatch : function(instance){ //This function will be called for every instance found by frida
console.log("Found instance: "+instance);
console.log("Result of secret func: " + instance.secret());
},
onComplete:function(){}
});
```
## अन्य फ्रिडा ट्यूटोरियल
* [https://github.com/DERE-ad2001/Frida-Labs](https://github.com/DERE-ad2001/Frida-Labs)
* [एडवांस्ड फ्रिडा उपयोग ब्लॉग सीरीज का भाग 1: IOS एन्क्रिप्शन लाइब्रेरी](https://8ksec.io/advanced-frida-usage-part-1-ios-encryption-libraries-8ksec-blogs/)
<figure><img src="../../../.gitbook/assets/i3.png" alt=""><figcaption></figcaption></figure>
2022-04-28 16:01:33 +00:00
**बग बाउंटी टिप**: **Intigriti** में **साइन अप** करें, एक प्रीमियम **बग बाउंटी प्लेटफॉर्म जो हैकर्स द्वारा बनाया गया है**! हमारे साथ जुड़ें [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) आज ही, और शुरू करें बाउंटी कमाना जो तकनीकी त्रुटियों तक **$100,000** तक हो सकता है!
2022-04-28 16:01:33 +00:00
2022-10-27 23:22:18 +00:00
{% embed url="https://go.intigriti.com/hacktricks" %}
2022-04-28 16:01:33 +00:00
2022-10-27 23:22:18 +00:00
<details>
2022-04-28 16:01:33 +00:00
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
HackTricks का समर्थन करने के अन्य तरीके:
2022-04-28 16:01:33 +00:00
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) का खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** पर फॉलो** करें।
* **अपने हैकिंग ट्रिक्स साझा करें, HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके।
2022-04-28 16:01:33 +00:00
</details>