# Hooking

## Objection

Obtener clases de la aplicación.

```shell
ios hooking list classes

objection --gadget <app-package-name> run "ios hooking list classes" > clasess.txt
objection --gadget <app-package-name> run "ios hooking list classes" | grep -Ei "<word-1>|<word-2>|<word-3>"
```

Buscar clases en la aplicación.

```shell
ios hooking search classes <class-name>
```

Obtener métodos de una clase.

```shell
ios hooking list class_methods <class-name>
```

Monitorear ejecución de una clase.

```
ios hooking watch class <class-name>
```

Monitorear ejecución de un método (argumentos, traza y valor de retorno).

```shell
ios hooking watch method "-[<class-name> <method-name>]" --dump-args --dump-backtrace --dump-return
```

Modificar el valor de retorno (booleano) de una función.

```shell
ios hooking set return_value "-[<class-name> <method-name>]" <true/false>
```

Generar hooking template de una clase.

```shell
ios hooking generate simple <class-name>

objection --gadget <app-package-name> run "ios hooking generate simple <class-name>" > template.js
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://mobile.mrw0l05zyn.cl/ios/analisis-dinamico/hooking.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
