x1ongzhu 1 år sedan
förälder
incheckning
0bde3d0c8d

BIN
.idea/copilot/chatSessions/00000000000.xd


BIN
.idea/copilot/chatSessions/blobs/version


+ 53 - 0
.idea/copilot/chatSessions/xd.lck

@@ -0,0 +1,53 @@
+Private property of Exodus: 15173@DrewdeMBP.lan
+
+jetbrains.exodus.io.LockingManager.lock(LockingManager.kt:88)
+jetbrains.exodus.io.LockingManager.lock(LockingManager.kt:39)
+jetbrains.exodus.io.FileDataWriter.lock(FileDataWriter.kt:70)
+jetbrains.exodus.log.Log.tryLock(Log.kt:804)
+jetbrains.exodus.log.Log.<init>(Log.kt:117)
+jetbrains.exodus.env.Environments.newLogInstance(Environments.kt:117)
+jetbrains.exodus.env.Environments.newLogInstance(Environments.kt:81)
+jetbrains.exodus.env.Environments.newLogInstance(Environments.kt:77)
+jetbrains.exodus.env.Environments$newInstance$4.invoke(Environments.kt:46)
+jetbrains.exodus.env.Environments$newInstance$4.invoke(Environments.kt:46)
+jetbrains.exodus.env.Environments.prepare(Environments.kt:120)
+jetbrains.exodus.env.Environments.newInstance(Environments.kt:46)
+kotlinx.dnq.store.container.EntityStoreHelperKt.createTransientEntityStore(EntityStoreHelper.kt:40)
+kotlinx.dnq.store.container.EntityStoreHelperKt.createTransientEntityStore(EntityStoreHelper.kt:31)
+kotlinx.dnq.store.container.EntityStoreHelperKt.createTransientEntityStore$default(EntityStoreHelper.kt:30)
+com.github.copilot.chat.session.persistence.xodus.XdChatSessionPersistenceService.initStore(XdChatSessionPersistenceService.kt:115)
+com.github.copilot.chat.session.persistence.xodus.XdChatSessionPersistenceService.<init>(XdChatSessionPersistenceService.kt:22)
+com.github.copilot.chat.session.persistence.xodus.XdChatSessionPersistenceService.<init>(XdChatSessionPersistenceService.kt:15)
+com.github.copilot.chat.session.persistence.ChatSessionPersistenceServiceKt.ChatSessionPersistenceService(ChatSessionPersistenceService.kt:43)
+com.github.copilot.chat.session.persistence.ChatSessionPersistenceServiceKt.chatSessionsPersistenceService(ChatSessionPersistenceService.kt:53)
+com.github.copilot.chat.session.ChatSessionManager.<init>(ChatSessionManager.kt:45)
+com.github.copilot.chat.session.ChatSessionManager.<init>(ChatSessionManager.kt:25)
+com.github.copilot.chat.window.CopilotChatToolWindow.onCopilotReady(CopilotChatToolWindow.kt:133)
+com.github.copilot.chat.window.CopilotChatToolWindow.access$onCopilotReady(CopilotChatToolWindow.kt:40)
+com.github.copilot.chat.window.CopilotChatToolWindow$initCopilotStatusListener$1.invoke(CopilotChatToolWindow.kt:118)
+com.github.copilot.chat.window.CopilotChatToolWindow$initCopilotStatusListener$1.invoke(CopilotChatToolWindow.kt:115)
+com.github.copilot.status.CopilotAuthStatusKt.subscribeToCopilotAuthStatus$lambda$0(CopilotAuthStatus.kt:44)
+com.intellij.util.messages.impl.MessageBusImplKt.invokeMethod(MessageBusImpl.kt:699)
+com.intellij.util.messages.impl.MessageBusImplKt.invokeListener(MessageBusImpl.kt:663)
+com.intellij.util.messages.impl.MessageBusImplKt.deliverMessage(MessageBusImpl.kt:422)
+com.intellij.util.messages.impl.MessageBusImplKt.pumpWaiting(MessageBusImpl.kt:401)
+com.intellij.util.messages.impl.MessageBusImplKt.access$pumpWaiting(MessageBusImpl.kt:1)
+com.intellij.util.messages.impl.MessagePublisher.invoke(MessageBusImpl.kt:460)
+jdk.proxy7/jdk.proxy7.$Proxy215.onCopilotStatus(Unknown Source)
+com.github.copilot.status.CopilotStatusService.notifyApplication(CopilotStatusService.java:76)
+com.github.copilot.status.CopilotStatusService.notifyApplication(CopilotStatusService.java:64)
+com.github.copilot.github.GitHubAuthStartupActivity.handleAuthNotifications(GitHubAuthStartupActivity.java:54)
+com.github.copilot.github.GitHubAuthStartupActivity.execute(GitHubAuthStartupActivity.java:35)
+com.intellij.ide.startup.impl.StartupManagerImplKt$launchActivity$1$1.invokeSuspend(StartupManagerImpl.kt:534)
+com.intellij.ide.startup.impl.StartupManagerImplKt$launchActivity$1$1.invoke(StartupManagerImpl.kt)
+com.intellij.ide.startup.impl.StartupManagerImplKt$launchActivity$1$1.invoke(StartupManagerImpl.kt)
+kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:78)
+kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:167)
+kotlinx.coroutines.BuildersKt.withContext(Unknown Source)
+com.intellij.ide.startup.impl.StartupManagerImplKt$launchActivity$1.invokeSuspend(StartupManagerImpl.kt:532)
+kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
+kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
+kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)
+kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793)
+kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697)
+kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684)

+ 3 - 1
app/src/main/java/com/example/smshook/MainActivity.java

@@ -4,6 +4,7 @@ import android.content.Context;
 import android.content.SharedPreferences;
 import android.os.Bundle;
 import android.preference.PreferenceManager;
+import android.util.Log;
 import android.widget.Button;
 import android.widget.EditText;
 import android.widget.Toast;
@@ -46,7 +47,7 @@ public class MainActivity extends AppCompatActivity {
         EditText etMessage = findViewById(R.id.et_message);
         Button btnSave = findViewById(R.id.btn_save);
 
-        SharedPreferences pref = getSharedPreferences("sms_conf", Context.MODE_WORLD_READABLE);
+        SharedPreferences pref = getSharedPreferences("sms_conf", Context.MODE_PRIVATE);
         etSender.setText(pref.getString("sender", ""));
         etMessage.setText(pref.getString("message", ""));
         btnSave.setOnClickListener(v -> {
@@ -74,4 +75,5 @@ public class MainActivity extends AppCompatActivity {
 
         queue.add(stringRequest);
     }
+
 }

+ 21 - 2
app/src/main/java/com/example/smshook/MessageHook.java

@@ -2,6 +2,7 @@ package com.example.smshook;
 
 import android.app.Activity;
 import android.content.Context;
+import android.content.Intent;
 import android.content.IntentFilter;
 import android.os.Build;
 import android.os.Bundle;
@@ -35,7 +36,9 @@ public class MessageHook {
                     String sender = pref.getString("sender", "1");
                     String message = pref.getString("message", "1");
 
-                    Class<?> receiverClazz = XposedHelpers.findClass("com.google.android.apps.messaging.shared.receiver.SmsDeliverReceiver", lpparam.classLoader);
+                    Class<?> ConfigSmsReceiver = XposedHelpers.findClass("com.google.android.apps.messaging.shared.receiver.ConfigSmsReceiver", lpparam.classLoader);
+                    Class<?> SmsReceiver = XposedHelpers.findClass("com.google.android.apps.messaging.shared.receiver.SmsReceiver", lpparam.classLoader);
+                    Class<?> SmsDeliverReceiver = XposedHelpers.findClass("com.google.android.apps.messaging.shared.receiver.SmsDeliverReceiver", lpparam.classLoader);
 //                    try {
 //                        Object receiver = receiverClazz.newInstance();
 //                        XposedHelpers.callMethod(receiver, "onReceive", activity.getApplicationContext(), SmsUtils.getSmsIntent(sender, message));
@@ -48,7 +51,19 @@ public class MessageHook {
                         if (!server.wasStarted()) server.start();
                         server.setOnRequestListener((s, m) -> {
                             try {
-                                Object receiver = receiverClazz.newInstance();
+                                Object receiver = ConfigSmsReceiver.newInstance();
+                                XposedHelpers.callMethod(receiver, "onReceive", activity.getApplicationContext(), SmsUtils.getSmsIntent(s, m));
+                            } catch (Throwable e) {
+                                e.printStackTrace();
+                            }
+                            try {
+                                Object receiver = SmsReceiver.newInstance();
+                                XposedHelpers.callMethod(receiver, "onReceive", activity.getApplicationContext(), SmsUtils.getSmsIntent(s, m));
+                            } catch (Throwable e) {
+                                e.printStackTrace();
+                            }
+                            try {
+                                Object receiver = SmsDeliverReceiver.newInstance();
                                 XposedHelpers.callMethod(receiver, "onReceive", activity.getApplicationContext(), SmsUtils.getSmsIntent(s, m));
                             } catch (Throwable e) {
                                 e.printStackTrace();
@@ -63,5 +78,9 @@ public class MessageHook {
         } catch (Throwable e) {
             e.printStackTrace();
         }
+
+
+
     }
+
 }

+ 72 - 7
app/src/main/java/com/example/smshook/XposedInit.java

@@ -1,10 +1,16 @@
 package com.example.smshook;
 
 import android.app.Application;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+import android.provider.Telephony;
+import android.telephony.SmsMessage;
 import android.util.Log;
 import android.widget.Toast;
 
 import java.io.IOException;
+import java.util.Objects;
 
 import de.robv.android.xposed.IXposedHookInitPackageResources;
 import de.robv.android.xposed.IXposedHookLoadPackage;
@@ -26,13 +32,54 @@ public class XposedInit implements IXposedHookLoadPackage, IXposedHookZygoteInit
     public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
         Log.i(TAG, "handleLoadPackage: " + lpparam.packageName);
         XposedBridge.log("SmsHook handleLoadPackage");
-        switch (lpparam.packageName) {
-            case "com.example.mysmsapp":
-                new SmsHook().handleLoadPackage(lpparam);
-                break;
-            case "com.google.android.apps.messaging":
-                new MessageHook().handleLoadPackage(lpparam);
-                break;
+//        switch (lpparam.packageName) {
+//            case "com.example.mysmsapp":
+//                new SmsHook().handleLoadPackage(lpparam);
+//                break;
+//            case "com.google.android.apps.messaging":
+//                new MessageHook().handleLoadPackage(lpparam);
+//                break;
+//        }
+
+
+        try {
+            Class<?> clazz = XposedHelpers.findClass("ioy", lpparam.classLoader);
+            XposedHelpers.findAndHookMethod(clazz, "onReceive", Context.class, Intent.class, new XC_MethodHook() {
+                @Override
+                protected void beforeHookedMethod(MethodHookParam param) {
+                    XposedBridge.log("SmsReceiverHook");
+
+
+                    Intent intent = (Intent) param.args[1];
+                    String packageName = intent.getPackage();
+                    String action = intent.getAction();
+                    String type = intent.getType();
+                    String scheme = intent.getScheme();
+                    String dataString = intent.getDataString();
+                    String category = "";
+                    if (intent.getCategories() != null) {
+                        for (String c : intent.getCategories()) {
+                            category += c + ", ";
+                        }
+                    }
+                    Log.i("SmsReceiverHook", "packageName=" + packageName + ", action=" + action + ", type=" + type + ", scheme=" + scheme + ", dataString=" + dataString + ", category=" + category);
+                    printExtras(intent.getExtras());
+                    if (Objects.equals(action, "android.provider.Telephony.SMS_RECEIVED") ||
+                            Objects.equals(action, "android.provider.Telephony.SMS_DELIVER")) {
+                        SmsMessage[] messages = Telephony.Sms.Intents.getMessagesFromIntent(intent);
+                        if (messages != null) {
+                            String body = messages[0].getMessageBody();
+                            byte[] pdu0 = SmsUtils.createFakeSms("3456", "Your Messenger verification code is G-" + body);
+                            Object[] pdus = new Object[1];
+                            pdus[0] = pdu0;
+                            intent.putExtra("pdus", pdus);
+                        }
+                    }
+                }
+            });
+
+        } catch (Throwable e) {
+            e.printStackTrace();
         }
     }
 
@@ -41,4 +88,22 @@ public class XposedInit implements IXposedHookLoadPackage, IXposedHookZygoteInit
         Log.i(TAG, "initZygote");
         XposedBridge.log("SmsHook initZygote");
     }
+
+
+    public void printExtras(Bundle bundle) {
+        if (bundle != null) {
+            for (String key : bundle.keySet()) {
+                Object value = bundle.get(key);
+                Log.d("SmsBundle", "key=" + key + ", value=" + value.toString() + ", class=" + value.getClass().getName());
+            }
+        }
+    }
+
+    public void printPdu(byte[] bytes) {
+        String s = "";
+        for (byte b : bytes) {
+            s += b + ", ";
+        }
+        Log.d("PDU", s);
+    }
 }

+ 4 - 0
app/src/main/res/values/arrays.xml

@@ -3,5 +3,9 @@
     <string-array name="xposed_scope">
         <item>com.google.android.apps.messaging</item>
         <item>com.example.mysmsapp</item>
+        <item>system</item>
+        <item>android</item>
+        <item>com.android.phone</item>
+        <item>com.android.providers.telephony</item>
     </string-array>
 </resources>