Pular para o conteúdo principal

Hookando um Método em Swift

Para hookar um método em Swift, primeiro é preciso conhecer o nome mangled do método e a assinatura da classe. Depois de encontrar esses valores, usando ferramentas como o frida-discover ou o frida-trace, o Frida pode ser usado para hookar o método diretamente.

O exemplo abaixo hooka um método de detecção de jailbreak do DVIA-v2:

var myMethod = Module.findExportByName(null, "$s7DVIA_v232JailbreakDetectionViewControllerC12isJailbrokenSbyF");

if (myMethod) {
Interceptor.attach(myMethod, {
onEnter: function (args) {
console.log("Hooked Swift method: JailbreakDetectionViewController +isJailbroken");
// é possível inspecionar ou modificar args aqui
},
onLeave: function (retval) {
console.log("Returned Swift value:", retval);
// é possível inspecionar ou modificar retval aqui
}
});
} else {
console.log("Hooking Swift method failed!");
}

Para rodar o script no DVIA-v2:

frida -U -n DVIA-v2 -l ios_hook_swift.js

O mesmo princípio se aplica a outros alvos comuns em Swift, como o hook de NSURLSession para bypass de SSL pinning, útil para interceptar tráfego de rede e analisar chamadas de API que deveriam estar protegidas.