MCPcopy
hub / github.com/APKLab/APKLab / parseSmaliParams

Function parseSmaliParams

src/tools/frida.ts:61–83  ·  view source on GitHub ↗

* Parse smali method parameter list. * e.g. "ILjava/lang/String;Z" -> ["I", "Ljava/lang/String;", "Z"]

(paramStr: string)

Source from the content-addressed store, hash-verified

59 * e.g. "ILjava/lang/String;Z" -> ["I", "Ljava/lang/String;", "Z"]
60 */
61function parseSmaliParams(paramStr: string): string[] {
62 const params: string[] = [];
63 let i = 0;
64 while (i < paramStr.length) {
65 let arrayPrefix = "";
66 while (i < paramStr.length && paramStr[i] === "[") {
67 arrayPrefix += "[";
68 i++;
69 }
70 if (i >= paramStr.length) break;
71
72 if (paramStr[i] === "L") {
73 const semi = paramStr.indexOf(";", i);
74 if (semi === -1) break;
75 params.push(arrayPrefix + paramStr.slice(i, semi + 1));
76 i = semi + 1;
77 } else {
78 params.push(arrayPrefix + paramStr[i]);
79 i++;
80 }
81 }
82 return params;
83}
84
85/**
86 * Parse a .method directive line and class context into SmaliMethod.

Callers 2

parseMethodFromLineFunction · 0.85
frida.test.tsFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected