Compare commits

...

20 Commits

Author SHA1 Message Date
Ole André Vadla Ravnås 582c2860c0 subprojects: Prepare for release 2024-07-13 00:34:10 +02:00
Ole André Vadla Ravnås 7c7947ee7c subprojects: Bump outdated 2024-07-13 00:07:05 +02:00
Ole André Vadla Ravnås 0f68038a10 subprojects: Prepare for release 2024-07-08 14:27:12 +02:00
Ole André Vadla Ravnås e9a3a37ea1 subprojects: Bump outdated 2024-07-08 14:25:25 +02:00
Ole André Vadla Ravnås f642de8a6b subprojects: Prepare for release 2024-07-06 00:07:34 +02:00
Ole André Vadla Ravnås c541ac027c subprojects: Bump outdated 2024-07-06 00:06:46 +02:00
Ole André Vadla Ravnås facd6756b2 subprojects: Prepare for release 2024-07-05 15:32:51 +02:00
Ole André Vadla Ravnås f29f486c0d subprojects: Bump outdated 2024-07-05 15:32:13 +02:00
Ole André Vadla Ravnås 2135414777 subprojects: Bump outdated 2024-07-05 15:26:38 +02:00
Ole André Vadla Ravnås ba032180c6 subprojects: Bump outdated 2024-07-04 13:51:07 +02:00
Ole André Vadla Ravnås b29cbcd499 subprojects: Bump outdated 2024-07-04 11:27:12 +02:00
Ole André Vadla Ravnås 55cdadea6a subprojects: Bump outdated 2024-07-03 23:20:23 +02:00
Ole André Vadla Ravnås 17d39c725c submodules: Bump releng 2024-07-03 23:20:23 +02:00
Ole André Vadla Ravnås 72f1d651b6 examples: Add XPC application launching example
Co-authored-by: Håvard Sørbø <havard@hsorbo.no>
2024-07-03 22:33:48 +02:00
Ole André Vadla Ravnås 6d5c64d215 examples: Rename xpc.py to xpc/listprocesses.py
Co-authored-by: Håvard Sørbø <havard@hsorbo.no>
2024-07-03 22:33:44 +02:00
Ole André Vadla Ravnås 2b5f6492a2 extension: Support unmarshaling tuples to GVariant
Co-authored-by: Håvard Sørbø <havard@hsorbo.no>
2024-07-03 22:33:40 +02:00
Ole André Vadla Ravnås 316f88974d extension: Fix unmarshaling of bool to GVariant
A bool also satisfies PyLong_Check(), so we need to PyBool_Check() first.

Co-authored-by: Håvard Sørbø <havard@hsorbo.no>
2024-07-03 22:33:40 +02:00
Ole André Vadla Ravnås fee73e852b extension: Drop PyFrida_is_string()
Now that it does nothing special as we no longer support Python 2.

Co-authored-by: Håvard Sørbø <havard@hsorbo.no>
2024-07-03 22:33:40 +02:00
Ole André Vadla Ravnås 37847fd8c9 subprojects: Prepare for release 2024-06-04 14:14:47 +02:00
Ole André Vadla Ravnås 7158638eb9 subprojects: Bump outdated 2024-06-04 14:12:52 +02:00
5 changed files with 82 additions and 19 deletions
@@ -0,0 +1,64 @@
import pprint
import sys
from threading import Thread
import frida
def main():
device = frida.get_usb_device()
stdout_uuid, stdout_stream = create_stdio_socket(device)
stderr_uuid, stderr_stream = create_stdio_socket(device)
appservice = device.open_service("xpc:com.apple.coredevice.appservice")
response = appservice.request(
{
"CoreDevice.featureIdentifier": "com.apple.coredevice.feature.launchapplication",
"CoreDevice.action": {},
"CoreDevice.input": {
"applicationSpecifier": {
"bundleIdentifier": {"_0": "no.oleavr.HelloIOS"},
},
"options": {
"arguments": [],
"environmentVariables": {},
"standardIOUsesPseudoterminals": True,
"startStopped": False,
"terminateExisting": True,
"user": {"active": True},
"platformSpecificOptions": b'<?xml version="1.0" encoding="UTF-8"?><plist version="1.0"><dict/></plist>',
},
"standardIOIdentifiers": {
"standardOutput": ("uuid", stdout_uuid),
"standardError": ("uuid", stderr_uuid),
},
},
}
)
pprint.pp(response)
workers = set()
for stream, sink in {(stdout_stream, sys.stdout), (stderr_stream, sys.stderr)}:
t = Thread(target=process_console_output, args=(stream, sink))
t.start()
workers.add(t)
for worker in workers:
worker.join()
def create_stdio_socket(device):
stream = device.open_channel("tcp:com.apple.coredevice.openstdiosocket")
return (stream.read_all(16), stream)
def process_console_output(stream, sink):
while True:
chunk = stream.read(4096)
if not chunk:
break
sink.write(chunk.decode("utf-8"))
if __name__ == "__main__":
main()
+16 -17
View File
@@ -546,7 +546,6 @@ static void PyCancellable_destroy_callback (PyObject * callback);
static PyObject * PyCancellable_cancel (PyCancellable * self);
static PyObject * PyFrida_raise (GError * error);
static gboolean PyFrida_is_string (PyObject * obj);
static gchar * PyFrida_repr (PyObject * obj);
static guint PyFrida_get_max_argument_count (PyObject * callable);
@@ -1722,7 +1721,7 @@ PyGObject_marshal_variant_array (GVariant * variant)
static gboolean
PyGObject_unmarshal_variant (PyObject * value, GVariant ** variant)
{
if (PyFrida_is_string (value))
if (PyUnicode_Check (value))
{
gchar * str;
@@ -1733,6 +1732,13 @@ PyGObject_unmarshal_variant (PyObject * value, GVariant ** variant)
return TRUE;
}
if (PyBool_Check (value))
{
*variant = g_variant_new_boolean (value == Py_True);
return TRUE;
}
if (PyLong_Check (value))
{
PY_LONG_LONG l;
@@ -1753,13 +1759,6 @@ PyGObject_unmarshal_variant (PyObject * value, GVariant ** variant)
return TRUE;
}
if (PyBool_Check (value))
{
*variant = g_variant_new_boolean (value == Py_True);
return TRUE;
}
if (PyBytes_Check (value))
{
char * buffer;
@@ -1836,11 +1835,14 @@ propagate_error:
static gboolean
PyGObject_unmarshal_variant_from_sequence (PyObject * sequence, GVariant ** variant)
{
gboolean is_tuple;
GVariantBuilder builder;
Py_ssize_t n, i;
PyObject * val = NULL;
g_variant_builder_init (&builder, G_VARIANT_TYPE ("av"));
is_tuple = PyTuple_Check (sequence);
g_variant_builder_init (&builder, is_tuple ? G_VARIANT_TYPE_TUPLE : G_VARIANT_TYPE ("av"));
n = PySequence_Length (sequence);
if (n == -1)
@@ -1857,7 +1859,10 @@ PyGObject_unmarshal_variant_from_sequence (PyObject * sequence, GVariant ** vari
if (!PyGObject_unmarshal_variant (val, &raw_value))
goto propagate_error;
g_variant_builder_add (&builder, "v", raw_value);
if (is_tuple)
g_variant_builder_add_value (&builder, raw_value);
else
g_variant_builder_add (&builder, "v", raw_value);
Py_DECREF (val);
}
@@ -5351,12 +5356,6 @@ PyFrida_raise (GError * error)
return NULL;
}
static gboolean
PyFrida_is_string (PyObject * obj)
{
return PyUnicode_Check (obj);
}
static gchar *
PyFrida_repr (PyObject * obj)
{
+1 -1
Submodule releng updated: b0e46f7b69...54cc29651c
+1 -1
View File
@@ -1,6 +1,6 @@
[wrap-git]
url = https://github.com/frida/frida-core.git
revision = 16.3.2
revision = 16.4.3
depth = 1
[provide]