wifi.js 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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. log(Java.classFactory.loader)
  33. Java.enumerateClassLoadersSync().forEach((loader) => {
  34. log(loader)
  35. })
  36. // const SystemServiceManager = Java.use('com.android.server.SystemServiceManager')
  37. // log(SystemServiceManager.class.getClassLoader())
  38. // const SystemServerClassLoaderFactory = Java.use('com.android.internal.os.SystemServerClassLoaderFactory')
  39. // const classLoader = SystemServerClassLoaderFactory.getOrCreateClassLoader(
  40. // '/apex/com.android.wifi/javalib/service-wifi.jar',
  41. // SystemServiceManager.class.getClassLoader(),
  42. // false
  43. // )
  44. // log(classLoader)
  45. // Java.classFactory.loader = classLoader
  46. // // Java.enumerateLoadedClasses({
  47. // // onMatch: function (className) {
  48. // // if (className == 'com.android.server.wifi.WifiServiceImpl') {
  49. // // const WifiService = Java.use('com.android.server.wifi.WifiService')
  50. // // }
  51. // // },
  52. // // onComplete: function () {
  53. // // console.log('枚举结束')
  54. // // }
  55. // // })
  56. // const WifiServiceImpl = Java.use('com.android.server.wifi.WifiServiceImpl')
  57. // log(WifiServiceImpl)
  58. // WifiServiceImpl.getFactoryMacAddresses.overload().implementation = function () {
  59. // const original = this.getFactoryMacAddresses()
  60. // const spoof = ['00:00:00:00:00:00']
  61. // log(`WifiServiceImpl.getFactoryMacAddresses() called, returning: ${spoof}, original: ${original}`)
  62. // return spoof
  63. // }
  64. })
  65. })