Frida Tutorial 1

Jifunze AWS hacking kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks:

Mwongozo wa tuzo ya mdudu: jiandikishe kwa Intigriti, jukwaa la tuzo za mdudu za malipo lililoundwa na wadukuzi, kwa wadukuzi! Jiunge nasi kwenye https://go.intigriti.com/hacktricks leo, na anza kupata tuzo hadi $100,000!

Hii ni muhtasari wa chapisho: https://medium.com/infosec-adventures/introduction-to-frida-5a3f51595ca1 APK: https://github.com/t0thkr1s/frida-demo/releases Msimbo wa Chanzo: https://github.com/t0thkr1s/frida-demo

Python

Frida inakuruhusu kuweka msimbo wa JavaScript ndani ya kazi za programu inayotumika. Lakini unaweza kutumia python kuita vifungo na hata kutumia na vifungo.

Hii ni hati rahisi ya python unayoweza kutumia na mifano yote iliyopendekezwa katika mafunzo haya:

#hooking.py
import frida, sys

with open(sys.argv[1], 'r') as f:
jscode = f.read()
process = frida.get_usb_device().attach('infosecadventures.fridademo')
script = process.create_script(jscode)
print('[ * ] Running Frida Demo application')
script.load()
sys.stdin.read()

Ita skripti:

python hooking.py <hookN.js>

Ni muhimu kujua jinsi ya kutumia python na frida, lakini kwa mifano hii unaweza pia kuita moja kwa moja Frida kwa kutumia zana za amri ya mstari wa frida:

frida -U --no-pause -l hookN.js -f infosecadventures.fridademo

Kitanzi 1 - Kupuuza Boolean

Hapa unaweza kuona jinsi ya kukitanza njia ya boolean (checkPin) kutoka darasani: infosecadventures.fridademo.utils.PinUtil

//hook1.js
Java.perform(function() {
console.log("[ * ] Starting implementation override...")
var MainActivity = Java.use("infosecadventures.fridademo.utils.PinUtil");
MainActivity.checkPin.implementation = function(pin){
console.log("[ + ] PIN check successfully bypassed!")
return true;
}
});
python hooking.py hook1.js

Kanzu 2 - Kazi ya Kufurahisha

Kazi Isiyo ya Stetiki

Ikiwa unataka kuita kazi isiyo ya stetiki ya darasa, kwanza unahitaji kipengele cha darasa hilo. Kisha, unaweza kutumia kipengele hicho kuita kazi. Ili kufanya hivyo, unaweza kupata kipengele kilichopo na kutumia:

Java.perform(function() {
console.log("[ * ] Starting PIN Brute-force, please wait...");
Java.choose("infosecadventures.fridademo.utils.PinUtil", {
onMatch: function(instance) {
console.log("[ * ] Instance found in memory: " + instance);
for(var i = 1000; i < 9999; i++){
if(instance.checkPin(i + "") == true){
console.log("[ + ] Found correct PIN: " + i);
break;
}
}
},
onComplete: function() { }
});
});

Kazi ya Stesheni

Ikiwa kazi ni stesheni, unaweza tu kuipiga:

//hook2.js
Java.perform(function () {
console.log("[ * ] Starting PIN Brute-force, please wait...")
var PinUtil = Java.use("infosecadventures.fridademo.utils.PinUtil");

for(var i=1000; i < 9999; i++)
{
if(PinUtil.checkPin(i+"") == true){
console.log("[ + ] Found correct PIN: " + i);
}
}
});

Kitanzi 3 - Kupata hoja na thamani ya kurudi

Unaweza kitanzi kazi na kufanya iwe chapisha thamani ya hoja zilizopitishwa na thamani ya thamani ya kurudi:

//hook3.js
Java.perform(function() {
console.log("[ * ] Starting implementation override...")

var EncryptionUtil = Java.use("infosecadventures.fridademo.utils.EncryptionUtil");
EncryptionUtil.encrypt.implementation = function(key, value){
console.log("Key: " + key);
console.log("Value: " + value);
var encrypted_ret = this.encrypt(key, value); //Call the original function
console.log("Encrypted value: " + encrypted_ret);
return encrypted_ret;
}
});

Muhimu

Katika mafunzo haya umefunga njia za kutumia jina la njia na .utekelezaji. Lakini ikiwa kulikuwa na zaidi ya njia moja yenye jina sawa, utahitaji kuainisha njia unayotaka kufunga ukiashiria aina ya hoja.

Unaweza kuona hilo katika mafunzo yajayo.

Mwongozo wa tuzo ya mdudu: jiandikishe kwa Intigriti, jukwaa la tuzo la mdudu la malipo lililoanzishwa na wadukuzi, kwa wadukuzi! Jiunge nasi kwenye https://go.intigriti.com/hacktricks leo, na anza kupata tuzo hadi $100,000!

Jifunze AWS hacking kutoka sifuri hadi shujaa na htARTE (HackTricks AWS Red Team Expert)!

Njia nyingine za kusaidia HackTricks:

Last updated