UNPKG

rms-runtime-mobile-security

Version:

Runtime Mobile Security (RMS), powered by FRIDA, is a powerful web interface that helps you to manipulate Android and iOS Apps at Runtime

616 lines • 56.5 kB
šŸ“¦ 24747 /agent/RMS_core.js.map 31699 /agent/RMS_core.js āœ„ {"version":3,"file":"RMS_core.js","sourceRoot":"/Users/paul_1991/Desktop/RMS-Runtime-Mobile-Security/","sources":["agent/RMS_core.js"],"names":[],"mappings":"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"} āœ„ /****************************************************************************** * Exported APIs 1. loadclasses() 2. loadclasseswithfilter([filters], isRegex, isCase, isWhole) 3. loadmethods([loaded_classes]) 4. loadcustomfridascript(frida_script) 5. hookclassesandmethods([loaded_classes], [loaded_methods], template) 6. generatehooktemplate([loaded_classes], [loaded_methods], template) 7. heapsearchtemplate([loaded_classes], [loaded_methods], template) 8. apimonitor([api_to_monitor]) 9. getappenvinfo() 10. listfilesatpath(path) ******************************************************************************/ rpc.exports = { checkmobileos: function () { if (Java.available) return "Android"; if (ObjC.available) return "iOS"; return "N/A"; }, loadclasses: function () { if (Java.available) return load_classes_Android(); else return load_classes_iOS(); }, loadclasseswithfilter: function (filter, isRegex, isCase, isWhole) { if (Java.available) return load_classes_with_filter_Android(filter, isRegex, isCase, isWhole); else return load_classes_with_filter_iOS(filter, isRegex, isCase, isWhole); }, loadmethods: function (loaded_classes) { if (Java.available) return load_methods_Android(loaded_classes); else return load_methods_iOS(loaded_classes); }, loadcustomfridascript: function (frida_script) { if (Java.available) load_frida_custom_script_Android(frida_script); else load_frida_custom_script_iOS(frida_script); }, hookclassesandmethods: function (loaded_classes, loaded_methods, template) { if (Java.available) hook_classes_and_methods_Android(loaded_classes, loaded_methods, template); else hook_classes_and_methods_iOS(loaded_classes, loaded_methods, template); }, generatehooktemplate: function (loaded_classes, loaded_methods, template) { if (Java.available) return generate_hook_template_Android(loaded_classes, loaded_methods, template); else return generate_hook_template_iOS(loaded_classes, loaded_methods, template); }, heapsearchtemplate: function (loaded_classes, loaded_methods, template) { if (Java.available) return heap_search_template_Android(loaded_classes, loaded_methods, template); else return heap_search_template_iOS(loaded_classes, loaded_methods, template); }, apimonitor: function (api_to_monitor) { if (Java.available) api_monitor_Android(api_to_monitor); else api_monitor_iOS(api_to_monitor); }, getappenvinfo: function () { if (Java.available) return get_app_env_info_Android(); else return get_app_env_info_iOS(); }, listfilesatpath: function (path) { if (Java.available) return list_files_at_path_Android(path); else return list_files_at_path_iOS(path); } }; /* *********************************************************************** *************************** Android - Stuff *************************** *********************************************************************** */ function load_classes_Android() { var loaded_classes = []; Java.perform(function () { Java.enumerateLoadedClasses({ onMatch: function (className) { //Remove too generics if (className.length > 5 && //skip androidx stuff !className.includes("androidx")) loaded_classes.push(className); } }); }); return loaded_classes; } function load_classes_with_filter_Android(filter, isRegex, isCase, isWhole) { var loaded_classes = []; Java.perform(function () { Java.enumerateLoadedClasses({ onMatch: function (className) { //lowercase if not case sensitive var originalClassName = className; className = isCase ? className : className.toLowerCase(); filter = isCase ? filter : filter.toLowerCase(); //check if a filter exists if (filter != null) { //Regex if (isRegex) { if (className.search(filter) > -1) { loaded_classes.push(originalClassName); } //Not regex } else { //check if we have multiple filters (comma separated list) var filter_array = filter.split(","); filter_array.forEach(function (f) { if (isWhole) { //f.trim() is needed to remove possibile spaces after the comma if (className == f.trim()) { loaded_classes.push(originalClassName); } } else { //f.trim() is needed to remove possibile spaces after the comma if (className.startsWith(f.trim())) { loaded_classes.push(originalClassName); } } }); } } } }); }); return loaded_classes; } function load_methods_Android(loaded_classes) { var loaded_methods = {}; Java.perform(function () { loaded_classes.forEach(function (className, index) { var jClass; var classMethods_dirty; var classMethods = []; //catch possible issues try { jClass = Java.use(className); classMethods_dirty = jClass.class.getDeclaredMethods(); } catch (err) { send("Exception while loading methods for " + className); //skip current loop loaded_methods[className] = classMethods; //is empty return; } classMethods_dirty.forEach(function (m) { var method_and_args = {}; //Cleaning up m = m.toString(); //add info for the UI method_and_args["ui_name"] = m.replace(className + ".", ""); // Remove generics from the method while (m.includes("<")) { m = m.replace(/<.*?>/g, ""); } // remove "Throws" if (m.indexOf(" throws ") !== -1) { m = m.substring(0, m.indexOf(" throws ")); } // remove scope and return type declarations m = m.slice(m.lastIndexOf(" ")); // remove the class name m = m.replace(className + ".", ""); // remove the signature (args) method_and_args["name"] = m.split("(")[0].trim(); // get the args var args_dirty = ((/\((.*?)\)/.exec(m)[1]).trim()); // add quotes between every arg var args_array = args_dirty.split(","); var args_srt = ""; for (var i = 0; i < args_array.length; i++) { // check if the current arg is an array var arg = args_array[i]; if (arg.includes("[]")) { // arg is an array --> smali notation conversion if (arg.includes(".")) arg = "L" + arg + ";"; else if ((/boolean/i).test(arg)) arg = "Z" + arg.replace(/boolean/i, ""); else if ((/byte/i).test(arg)) arg = "B" + arg.replace(/byte/i, ""); else if ((/char/i).test(arg)) arg = "C" + arg.replace(/char/i, ""); else if ((/double/i).test(arg)) arg = "D" + arg.replace(/double/i, ""); else if ((/float/i).test(arg)) arg = "F" + arg.replace(/float/i, ""); else if ((/int/i).test(arg)) arg = "I" + arg.replace(/int/i, ""); else if ((/long/i).test(arg)) arg = "J" + arg.replace(/long/i, ""); else if ((/short/i).test(arg)) arg = "S" + arg.replace(/short/i, ""); else arg = "L" + arg + ";"; } while (arg.includes("[]")) { arg = arg.replace("[]", ""); arg = "[" + arg; } args_srt = args_srt + ("\"" + arg + "\""); //add a comma if the current item is not the last one if (i + 1 < args_array.length) args_srt = args_srt + ","; } method_and_args["args"] = args_srt; classMethods.push(method_and_args); }); loaded_methods[className] = classMethods; }); }); //DEBUG console.log("loaded_classes.length: " + loaded_classes.length) //DEBUG console.log("loaded_methods.length: " + Object.keys(loaded_methods).length) return loaded_methods; } function load_frida_custom_script_Android(frida_script) { Java.perform(function () { console.log("FRIDA script LOADED"); eval(frida_script); }); } function hook_classes_and_methods_Android(loaded_classes, loaded_methods, template) { Java.perform(function () { console.log("Hook Template setup"); loaded_classes.forEach(function (clazz) { loaded_methods[clazz].forEach(function (dict) { var t = template; //template1 // replace className t = t.replace("{className}", clazz); // replace classMethod x3 t = t.replace("{classMethod}", dict["name"]); t = t.replace("{classMethod}", dict["name"]); t = t.replace("{classMethod}", dict["name"]); // replace methodSignature t = t.replace("{methodSignature}", dict["ui_name"]); //check if the method has args if (dict["args"] != "\"\"") { //check if the method has overloads t = t.replace("{overload}", "overload(" + dict["args"] + ")."); // Check args length var args_len = (dict["args"].split(",")).length; //args creation (method inputs) - v[i] to N var args = ""; for (var i = 0; i < args_len; i++) { if (i + 1 == args_len) args = args + "v" + i; else args = args + "v" + i + ","; } //replace args x2 t = t.replace("{args}", args); t = t.replace("{args}", args); } else { //Current methods has NO args // no need to overload t = t.replace("{overload}", "overload()."); //replace args x2 t = t.replace("{args}", ""); t = t.replace("{args}", ""); } //Debug - print FRIDA template //send(t); console.log(clazz + " " + dict["name"] + " hooked!"); // ready to eval! eval(t); }); }); }); } function generate_hook_template_Android(loaded_classes, loaded_methods, template) { var hto = ""; //hto stands for hooks template output Java.perform(function () { loaded_classes.forEach(function (clazz) { loaded_methods[clazz].forEach(function (dict) { var t = template; //template2 // replace className t = t.replace("{className}", clazz); // replace classMethod x3 t = t.replace("{classMethod}", dict["name"]); t = t.replace("{classMethod}", dict["name"]); t = t.replace("{classMethod}", dict["name"]); // replace methodSignature x2 t = t.replace("{methodSignature}", dict["ui_name"]); t = t.replace("{methodSignature}", dict["ui_name"]); //check if the method has args if (dict["args"] != "\"\"") { //check if the method has overloads t = t.replace("{overload}", "overload(" + dict["args"] + ")."); // Check args length var args_len = (dict["args"].split(",")).length; //args creation (method inputs) - v[i] to N var args = ""; for (var i = 0; i < args_len; i++) { if (i + 1 == args_len) args = args + "v" + i; else args = args + "v" + i + ","; } //replace args x3 t = t.replace("{args}", args); t = t.replace("{args}", args); t = t.replace("{args}", args); } else { //Current methods has NO args // no need to overload t = t.replace("{overload}", "overload()."); //replace args x3 t = t.replace("{args}", ""); t = t.replace("{args}", ""); t = t.replace("{args}", "\"\""); } //Debug - print FRIDA template //send(t); // hooks concat hto = hto + t; }); }); }); // return HOOK template return hto; } function heap_search_template_Android(loaded_classes, loaded_methods, template) { var hto = ""; //hto stands for heap template output Java.perform(function () { loaded_classes.forEach(function (clazz) { loaded_methods[clazz].forEach(function (dict) { var t = template; //template2 // replace className t = t.replace("{className}", clazz); // replace classMethod x2 t = t.replace("{classMethod}", dict["name"]); t = t.replace("{classMethod}", dict["name"]); // replace methodSignature x2 t = t.replace("{methodSignature}", dict["ui_name"]); t = t.replace("{methodSignature}", dict["ui_name"]); //check if the method has args if (dict["args"] != "\"\"") { // Check args length var args_len = (dict["args"].split(",")).length; //args creation (method inputs) - v[i] to N var args = ""; for (var i = 0; i < args_len; i++) { if (i + 1 == args_len) args = args + "v" + i; else args = args + "v" + i + ","; } //replace args t = t.replace("{args}", args); } else { //Current methods has NO args //replace args t = t.replace("{args}", ""); } //Debug - print FRIDA template //send(t); // heap search templates concat hto = hto + t; }); }); }); // return Heap Search template return hto; } function get_app_env_info_Android() { var env; Java.perform(function () { var context = null; var ActivityThread = Java.use('android.app.ActivityThread'); var targetApp = ActivityThread.currentApplication(); if (targetApp != null) { context = targetApp.getApplicationContext(); env = { mainDirectory: context.getFilesDir().getParent(), filesDirectory: context.getFilesDir().getAbsolutePath().toString(), cacheDirectory: context.getCacheDir().getAbsolutePath().toString(), externalCacheDirectory: context.getExternalCacheDir().getAbsolutePath().toString(), codeCacheDirectory: 'getCodeCacheDir' in context ? context.getCodeCacheDir().getAbsolutePath().toString() : 'N/A', obbDir: context.getObbDir().getAbsolutePath().toString(), packageCodePath: context.getPackageCodePath().toString().replace("/base.apk", ""), }; } else env = null; }); return env; } function list_files_at_path_Android(path) { var listResult; Java.perform(function () { var file = Java.use("java.io.File"); var currentPath = file.$new(path); var files; listResult = { files: {}, path: path, readable: currentPath.canRead(), writable: currentPath.canWrite(), }; files = currentPath.listFiles(); files.forEach(function (f) { listResult.files[f.getName()] = { attributes: { isDirectory: f.isDirectory(), isFile: f.isFile(), isHidden: f.isHidden(), lastModified: new Date(f.lastModified()).toISOString().replace(/T/, ' ').replace(/\..+/, ''), size: f.length() }, fileName: f.getName(), readable: f.canRead(), writable: f.canWrite() }; }); //console.log(JSON.stringify(listResult)) }); return listResult; } function api_monitor_Android(api_to_monitor) { Java.perform(function () { /* DEBUG api_to_monitor.forEach(function (e) { console.log(e["Category"]); e["hooks"].forEach(function (hook) { console.log("--> "+hook["clazz"]+" - "+hook["method"]); }); }); */ api_to_monitor.forEach(function (e) { e["hooks"].forEach(function (hook) { // Java or Native Hook? // Native - File System only at the moment if (e["HookType"] == "Native") { nativedynamichook(hook, e["Category"]); } // Java if (e["HookType"] == "Java") { javadynamichook(hook, e["Category"], function (realRetval, to_print) { send('[API_Monitor]\n' + JSON.stringify(to_print, function (k, v) { if (v instanceof Array) return JSON.stringify(v); return v; }, 2) + "\n"); return realRetval; }); } // end javadynamichook }); }); }); } function nativedynamichook(hook, category) { // File System monitor only - libc.so Interceptor.attach(Module.findExportByName(hook["clazz"], hook["method"]), { onEnter: function (args) { var file = Memory.readCString(args[0]); //bypass ashem and prod if libc.so - open if (hook["clazz"] == "libc.so" && hook["method"] == "open" && !file.includes("/dev/ashmem") && !file.includes("/proc/")) send("[API_Monitor] - " + category + " - " + hook["clazz"] + " - " + hook["method"] + " - " + file + "\n"); } }); } function javadynamichook(hook, category, callback) { var Exception = Java.use('java.lang.Exception'); var toHook; try { var clazz = hook.clazz; var method = hook.method; try { if (hook.target && parseInt(Java.androidVersion, 10) < hook.target) { send('[API_Monitor] - Android Version not supported - Cannot hook - ' + clazz + '.' + method); return; } // Check if class and method is available toHook = Java.use(clazz)[method]; if (!toHook) { send('[API_Monitor] - Cannot find ' + clazz + '.' + method); return; } } catch (err) { send('[API_Monitor] - Cannot find ' + clazz + '.' + method); return; } for (var i = 0; i < toHook.overloads.length; i++) { toHook.overloads[i].implementation = function () { var args = [].slice.call(arguments); // Call original method var retval = this[method].apply(this, arguments); if (callback) { var calledFrom = Exception.$new().getStackTrace().toString().split(',')[1]; var to_print = { category: category, class: clazz, method: method, args: args, returnValue: retval ? retval.toString() : "N/A", calledFrom: calledFrom }; retval = callback(retval, to_print); } return retval; }; } } catch (err) { send('[API_Monitor] - ERROR: ' + clazz + "." + method + " [\"Error\"] => " + err); } } /* *********************************************************************** ***************************** iOS - Stuff ***************************** *********************************************************************** */ function load_classes_iOS() { var loaded_classes = []; for (var className in ObjC.classes) { if (ObjC.classes.hasOwnProperty(className) && className.length > 5) loaded_classes.push(className); } return loaded_classes; } function load_classes_with_filter_iOS(filter, isRegex, isCase, isWhole) { var loaded_classes = []; for (var className in ObjC.classes) { //lowercase if not case sensitive var originalClassName = className; className = isCase ? className : className.toLowerCase(); filter = isCase ? filter : filter.toLowerCase(); //check if a filter exists if (filter != null) { //Regex if (isRegex) { if (className.search(filter) > -1) { loaded_classes.push(originalClassName); } //Not regex } else { //check if we have multiple filters (comma separated list) var filter_array = filter.split(","); filter_array.forEach(function (f) { if (isWhole) { //f.trim() is needed to remove possibile spaces after the comma if (className == f.trim()) { loaded_classes.push(originalClassName); } } else { //f.trim() is needed to remove possibile spaces after the comma if (className.startsWith(f.trim())) { loaded_classes.push(originalClassName); } } }); } } } return loaded_classes; } function load_methods_iOS(loaded_classes) { var loaded_methods = {}; loaded_classes.forEach(function (className, index) { var classMethods_dirty; var classMethods = []; try { if (ObjC.classes.hasOwnProperty(className)) classMethods_dirty = ObjC.classes[className].$ownMethods; } catch (err) { send("Exception while loading methods for " + className); //skip current loop loaded_methods[className] = classMethods; //is empty return; } classMethods_dirty.forEach(function (m) { var method_and_args = {}; var retValue = null; var args = null; try { retValue = ObjC.classes[className][m].returnType; } catch (err) { retValue = null; } try { args = (ObjC.classes[className][