system_server_child.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. function trace(tag) {
  2. Log.e((tag || '') + Java.use('android.util.Log').getStackTraceString(Java.use('java.lang.Throwable').$new()))
  3. }
  4. function readFile(path) {
  5. var FileOutputStream = Java.use('java.io.FileOutputStream')
  6. var FileInputStream = Java.use('java.io.FileInputStream')
  7. var File = Java.use('java.io.File')
  8. var InputStreamReader = Java.use('java.io.InputStreamReader')
  9. var BufferedReader = Java.use('java.io.BufferedReader')
  10. var ByteArrayOutputStream = Java.use('java.io.ByteArrayOutputStream')
  11. var file = File.$new(path)
  12. var fileInputStream = FileInputStream.$new(file)
  13. var inputStreamReader = InputStreamReader.$new(Java.cast(fileInputStream, Java.use('java.io.InputStream')))
  14. var bufferedReader = BufferedReader.$new(inputStreamReader)
  15. var line
  16. var content = ''
  17. while ((line = bufferedReader.readLine()) !== null) {
  18. content += line + '\n'
  19. }
  20. bufferedReader.close()
  21. inputStreamReader.close()
  22. fileInputStream.close()
  23. return content
  24. }
  25. setImmediate(() => {
  26. Java.perform(function () {
  27. const Log = Java.use('android.util.Log')
  28. function log(msg) {
  29. console.log(`\x1b[30m[system_server] ${msg}\x1b[0m`)
  30. Log.d('frida-system_server', msg)
  31. }
  32. const WifiServiceImpl = Java.use('com.android.server.wifi.WifiServiceImpl')
  33. WifiServiceImpl.getFactoryMacAddresses.overload().implementation = function () {
  34. const original = this.getFactoryMacAddresses()
  35. const spoof = ['00:00:00:00:00:00']
  36. log(`WifiServiceImpl.getFactoryMacAddresses() called, returning: ${spoof}, original: ${original}`)
  37. return spoof
  38. }
  39. })
  40. })