wifi.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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 classLoaders = Java.enumerateClassLoadersSync()
  33. classLoaders.forEach((classLoader) => {
  34. log(classLoader)
  35. })
  36. const wifiClassLoader = classLoaders.find((i) => i.toString().includes('wifi'))
  37. Java.classFactory.loader = wifiClassLoader
  38. const WifiServiceImpl = Java.use('com.android.server.wifi.WifiServiceImpl')
  39. log(WifiServiceImpl)
  40. WifiServiceImpl.getFactoryMacAddresses.overload().implementation = function () {
  41. const original = this.getFactoryMacAddresses()
  42. const spoof = ['00:00:00:00:00:00']
  43. log(`WifiServiceImpl.getFactoryMacAddresses() called, returning: ${spoof}, original: ${original}`)
  44. return spoof
  45. }
  46. WifiServiceImpl.getConnectionInfo.overload('int').implementation = function (arg) {}
  47. })
  48. })