Skip to content

Commit aac4e8a

Browse files
committed
Simplify Frida script launch & logging code
1 parent 2c9457b commit aac4e8a

File tree

2 files changed

+20
-30
lines changed

2 files changed

+20
-30
lines changed

src/interceptors/frida/frida-android-integration.ts

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -206,12 +206,20 @@ export async function interceptAndroidFridaTarget(
206206

207207
const scriptSession = await session.createScript(interceptionScript);
208208

209+
let scriptLoaded = false;
209210
await new Promise((resolve, reject) => {
210211
session.onMessage((message) => {
211212
if (message.type === 'error') {
212213
const error = new Error(message.description);
213214
error.stack = message.stack;
214-
reject(error);
215+
216+
if (!scriptLoaded) {
217+
reject(error);
218+
} else {
219+
console.warn('Frida Android injection error:', error);
220+
}
221+
} else if (message.type === 'log') {
222+
console.log(`Frida Android [${message.level}]: ${message.payload}`);
215223
} else {
216224
console.log(message);
217225
}
@@ -222,20 +230,7 @@ export async function interceptAndroidFridaTarget(
222230
.catch(reject);
223231
});
224232

225-
// Script started successfully - now replace the message listener, and resume the app
226-
227-
session.onMessage((message) => {
228-
if (message.type === 'error') {
229-
const error = new Error(message.description);
230-
error.stack = message.stack;
231-
console.warn('Frida Android injection error:', error);
232-
} else if (message.type === 'log') {
233-
console.log(`Frida Android [${message.level}]: ${message.payload}`);
234-
} else {
235-
console.log(message);
236-
}
237-
});
238-
233+
scriptLoaded = true;
239234
await session.resume();
240235
} catch (e) {
241236
// If anything goes wrong, just make sure we shut down the app again

src/interceptors/frida/frida-ios-integration.ts

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -123,12 +123,20 @@ export async function interceptIosFridaTarget(
123123

124124
const scriptSession = await session.createScript(interceptionScript);
125125

126+
let scriptLoaded = false;
126127
await new Promise((resolve, reject) => {
127128
session.onMessage((message) => {
128129
if (message.type === 'error') {
129130
const error = new Error(message.description);
130131
error.stack = message.stack;
131-
reject(error);
132+
133+
if (!scriptLoaded) {
134+
reject(error);
135+
} else {
136+
console.warn('Frida iOS injection error:', error);
137+
}
138+
} else if (message.type === 'log') {
139+
console.log(`Frida iOS [${message.level}]: ${message.payload}`);
132140
} else {
133141
console.log(message);
134142
}
@@ -139,20 +147,7 @@ export async function interceptIosFridaTarget(
139147
.catch(reject);
140148
});
141149

142-
// Script started successfully - now replace the message listener, and resume the app
143-
144-
session.onMessage((message) => {
145-
if (message.type === 'error') {
146-
const error = new Error(message.description);
147-
error.stack = message.stack;
148-
console.warn('Frida iOS injection error:', error);
149-
} else if (message.type === 'log') {
150-
console.log(`Frida iOS [${message.level}]: ${message.payload}`);
151-
} else {
152-
console.log(message);
153-
}
154-
});
155-
150+
scriptLoaded = true;
156151
await session.resume();
157152
} catch (e) {
158153
// If anything goes wrong, just make sure we shut down the app again

0 commit comments

Comments
 (0)