Parcheando b.ne con FRIDA

 

Otra solución al Challenge 0xB de:

 https://github.com/DERE-ad2001/Frida-Labs/tree/main/Frida%200xB 



En el offset 00015248 parchear para que salte directamente a 00015250,

y nos muestre la bandera ( FLAG )

 

 Arrancamos script:

 


 

Con 

adb logcat | grep -i FLAG

 


 

El script que carga FRIDA versión 17:

//v.17 Process.getModuleByName('libc.so').base
var adr = Process.getModuleByName('libfrida0xb.so').base.add(0x15248);  // Addres of the b.ne instruction
Memory.protect(adr, 0x1000, "rwx");
var jump = Process.getModuleByName('libfrida0xb.so').base.add(0x15250);  // Jump where FLAG will be shown in logcat
var writer = new Arm64Writer(adr);  // ARM64 writer object

try {

  writer.putBranchAddress(jump);  
  writer.flush();

  console.log(`Branch instruction inserted at ${adr}`);
} finally {

  writer.dispose();

}

FRIDA versión <17:

 

//dere_challenge_0xb_1.js

var adr = Module.findBaseAddress("libfrida0xb.so").add(0x15248);  // b.ne
Memory.protect(adr, 0x1000, "rwx");
var jump = Module.findBaseAddress("libfrida0xb.so").add(0x15250);  // Salto al FLAG
var writer = new Arm64Writer(adr);  // ARM64 writer object
try {
  writer.putBranchAddress(jump);  
  writer.flush();
  console.log(`Branch instruction inserted at ${adr}`);
} finally {
  writer.dispose();



Entradas populares